Полная версия этой страницы:
FIFO буфер
bullit
Jan 12 2010, 18:20
Доброго времени суток!
Есть задача, с 20 МГц АЦП принимать данные (порядка 2-3,5 т. измерений), но так как таких "быстрых" мк "нет". Да и впринципе ради простого отсчёта данных использовать "быстрики" не охота. И тут добрые люди посоветовали взять FIFO буферы.
Принимают на высокой частоте в паралельном коде, а выдают (желательно, но не обязательно) в последовательном (SPI) на другой частоте "понятной" для МК частоте.
Внимание вопрос: может кто использовал такие буферы? посоветуйте...
- paralel вход, не менее 20 МГц
- serial выход
- 5V толерантный
- 12-14 бит, но можно и 16
- >4к на 16 бит
- желательно расширенный диапазон температур (-40..+125 С).
Нашел у IDT, но он всего на 1к, ставить 3-4 штуки как-то не айс...
Заранее большое спасибо!
Ozelot
Jan 13 2010, 06:14
Можете попробовать AL440B. К 5В толерантна, питание 3,3В, объем 512КБайт, доставабельна. Частоты до 40 или 80 МГц.
Если лишний корпус не помеха - то ПЛИС + микрушка памяти к ней снаружи будет значительно дешевле FIFO. Да и 64кбит FIFO (4K*16бит) внутри ПЛИС делается на раз вместе с SPI-доступом к нему. К примеру EP1C3T100C8 имеет в своем составе 13 блоков памяти по 4 кбит.
bullit
Jan 13 2010, 16:19
Насчёт плисины давно уже думаю... но я с ними не знаком, и насколько знаю принципиально отличаются от программирования мк.
Освоить не боюсь, но боюсь по времени не хватит.
Но этот вариант держу в уме.
А как насчёт внешней памяти? может писать на скорости АЦП, а читать на скорости мк. Т.е. шину данных памяти подключить к мк и ацп (у обоих есть Z состояние). Но тут либо память пишет в себя по клоку, либо её "заставлять запоминать" по клоку АЦП.
Как такой вариант? имеет место быть?
Т.е. есть ли внешнее ОЗУ с паралельным входом, с синхронизацией записи по клоку, 12-16 битная шина, ну и остальными характеристиками, описанными выше.
Насчёт AL440B он 8 битный, i2c интерфейс мне как-то не айс, и т.д. поэтому немного хуже чем IDT-шный. хотя..
Цитата(bullit @ Jan 13 2010, 19:19)

Насчёт плисины давно уже думаю... но я с ними не знаком, и насколько знаю принципиально отличаются от программирования мк.
Да не то слово, что принципиально. Их вообще не программируют. Зато разработка конфигурации ПЛИС ни чем не отличается от разработки цифровой схемы на дискретных элементах, лишь с той разницей, что она, как вариант, описывается при помощи языка описания аппаратуры (HDL).
Цитата(bullit @ Jan 13 2010, 19:19)

А как насчёт внешней памяти? может писать на скорости АЦП, а читать на скорости мк. Т.е. шину данных памяти подключить к мк и ацп (у обоих есть Z состояние). Но тут либо память пишет в себя по клоку, либо её "заставлять запоминать" по клоку АЦП.
Как такой вариант? имеет место быть?
А кто будет ей адрес инкрементировать при записи от АЦП? Дискретная логика? Опять же тогда, почему всю эту логику в ПЛИСку не убрать...
Хотя эти все IDT72141, IDT72125 легко каскадируются, можно было бы, даже поставить IDT72V245 + пару 74HC299 регистров, но послушайте SM - рано или поздно Вам все равно станут узки рамки обычной логики и придется переходить на ПЛИСы. Тем более, если у Вас не было опыта разводки плат на частоты 20 МГц и выше - грабли обязательно проявятся, а асинхронные, например, ФИФОшины это еще тот подарок - любую иголку готовы принять за импульс записи или чтения. Да и по цене, быстрей всего, будет выигрыш. Мы уже лет 10 как перешли и IDT70825 (SARAM), IDT70261(двухпортовка) вспоминаем как страшный сон. А там и от МК откажетесь...
bullit
Jan 14 2010, 10:06
хм...
Именно каскадирование фифо в плане разодки и настараживает. Опыта разодки на таких частотах нет конечно, но до этого граблей небыло даже в аналоговых цепях 3-5 МГц.
От плис не отказываюсь, но на изучение ПЛИС уйдёт некоторое время. А его не так много. Да и вычислительной мощности такой не требуется...(пока по крайней мере).
Будем смотреть!
Спасибо большое, за помощь!
Если хотите FIFO - возьмите SN74V245
http://focus.ti.com/lit/ds/symlink/sn74v245.pdf - удобная, доступная и относительно недорогая микросхема.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.