Alexashka 0 2 мая, 2012 Опубликовано 2 мая, 2012 · Жалоба Доброго всем времени суток! Задачка следущая: требуется оцифровывать синхронно и непрерывно 8 каналов с частотой 100кгц на канал. Данные пишутся по кольцу в SDRAM (всего нужно не менее 32МБайт ОЗУ) как в видеорегистраторе, в момент "Ч" запись останавливается и данные из SDRAM сбрасывается во флешь. Пока идет проработка структурной схемы и можно еще все поменять, посему решил спросить совета у гуру :) Как лучше такую систему построить и на чем. Вариант с ПЛИСиной не хотелось бы применять, во-первых нужно экономить энергию, т.к устройство переносное, ну и не знаю я их. Тем более что какойто проц все равно ставить нужно - выставлять режим работы, выводить сопутствующую информацию на дисплей и т.д. Пока мысль поставить ARM9+SDRAM, плюс внешний АЦП (нужно минимум 12бит разрешения), но вот как быть с обменом между АЦП и ARM? По превываниям однозначно не прокатит -это нужно влезать в прерывания каждые 10мкс. ОСЬ тоже отпадает -задержки явно будут больше. Программный опрос АЦП и считывание? тогда никакой больше задачи в это время ARM выполнять уже не сможет. Напрашивается подключение АЦП на внешнюю шину ARMa и считывание его по ПДП. Но получится ли это на практике? Вот например имеется контроллер AT91SAM9G45, но так и не понял возможно ли организовать в нем пересылку память<->память. Как вообще строятся подобные системы? Буду благодарен за любую идею или где почитать. Спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 226 2 мая, 2012 Опубликовано 2 мая, 2012 · Жалоба Вариант — 8 одинаковых АЦП, например AD7453, управление подать одинаковое, 8 выходов завести на FIFO, обычную память, двухпортовую и т.п., из неё асинхронно переписывать пачками в более ёмкое, а системам потолще останется лишь разгребсти эту кучу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaslovVG 0 2 мая, 2012 Опубликовано 2 мая, 2012 · Жалоба Придется поставить 8 АЦП. Поскольку аналоговый комутатор обеспечивающий 10 битовую точность и время устаканивания данных меньше чем 1мксек не найдете. Встроенные в поцессоры комутаторы и АЦП нужную вам скорость не обеспечат. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 32 2 мая, 2012 Опубликовано 2 мая, 2012 · Жалоба Задачка следущая: требуется оцифровывать синхронно и непрерывно 8 каналов с частотой 100кгц на канал. 8-Channel Simultaneous Sampling ADC: AD7607, AD7606. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexashka 0 2 мая, 2012 Опубликовано 2 мая, 2012 · Жалоба 8-Channel Simultaneous Sampling ADC: AD7607, AD7606. Ага, только я аналогичный присмотрел у Тексаса ADS8528 Имеется выход параллельный и SDIO, так что проблем с одновременным захватом нет, проблема успеть перегнать это контроллер и оттуда сразу в SDRAM. Вариант — 8 одинаковых АЦП, например AD7453, управление подать одинаковое, 8 выходов завести на FIFO, обычную память, двухпортовую и т.п., из неё асинхронно переписывать пачками в более ёмкое, а системам потолще останется лишь разгребсти эту кучу. Т.е на жесткой логике сделать автомат который забирает из АЦП и записывает в двухпортовую память? А вообще интересная мысль, спасибо! Вот только 8 АЦП наверно лишнее? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 32 2 мая, 2012 Опубликовано 2 мая, 2012 (изменено) · Жалоба Имеется выход параллельный и SDIO, так что проблем с одновременным захватом нет, проблема успеть перегнать это контроллер и оттуда сразу в SDRAM. Для процессоров blackfin это как раз не проблема. У них для порта PPI предусмотрен выделенный канал DMA, который обычно и выполняет пересылку данных прямиком в SDRAM без участия процессора. Ага, только я аналогичный присмотрел у Тексаса ADS8528 Ага, только имейте ввиду, что AD7607 потребляет 80 mW at 200 kSPS, а ADS8528 150 mW at 200 kSPS. И кроме того, для питания AD7607 нужно два источника: AVCC = 4.75 V to 5.25 V, VDRIVE = 2.3 V to 5.25 V. А для питания ADS8528 нужно четыре источника: AVDD = 4.5 V to 5.5 V, DVDD = 2.7 V to 5.5 V, HVSS = -16.5 V to -5.0 V, HVDD = +5.0 V to +16.5 V. Изменено 2 мая, 2012 пользователем blackfin Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zöner 0 2 мая, 2012 Опубликовано 2 мая, 2012 · Жалоба зачет там промежуточное FIFO ? у АЦП есть вход перевода в третье состояние, выходы можно объединить в одну шину. переписать за 10мкс 8 каналов в SDRAM по-любому успеет даже без ПДП. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexashka 0 2 мая, 2012 Опубликовано 2 мая, 2012 · Жалоба Для процессоров blackfin это как раз не проблема. У них для порта PPI предусмотрен выделенный канал DMA, который обычно и выполняет пересылку данных прямиком в SDRAM без участия процессора. Ага, только имейте ввиду, что AD7607 потребляет 80 mW at 200 kSPS, а ADS8528 150 mW at 200 kSPS. И кроме того, для питания AD7607 нужно два источника: AVCC = 4.75 V to 5.25 V, VDRIVE = 2.3 V to 5.25 V. А для питания ADS8528 нужно четыре источника: AVDD = 4.5 V to 5.5 V, DVDD = 2.7 V to 5.5 V, HVSS = -16.5 V to -5.0 V, HVDD = +5.0 V to +16.5 V. Хорошо blackfin, будем иметь в виду blackfin :) Хотя этот PPI Насколько мне известно был заточен под видео АЦП, а там требования на порядки круче. Да и 2 ядра, у меня обработки как таковой не будет, есть ли смысл закладывать такого монстра? Про питание в курсе, аналог конечно молодцы во всем ребята, но не понравились антиалиайзинговые фильтры у него, которые режут аж от 15кГц, а мне надо хотя бы 35 полоску сделать (таково требование заказчика), и отключить его никак нельзя. А так АЦП просто сказка! зачет там промежуточное FIFO ? у АЦП есть вход перевода в третье состояние, выходы можно объединить в одну шину. переписать за 10мкс 8 каналов в SDRAM по-любому успеет даже без ПДП. ФИФО я так понимаю чтобы иметь запас по времени реакции, т.е у CPU появляется возможность параллельно обрабатывать другие потоки Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 226 2 мая, 2012 Опубликовано 2 мая, 2012 · Жалоба Т.е на жесткой логике сделать автомат который забирает из АЦП и записывает в двухпортовую память? Сперва решите, кто и как будет забирать данные из SDRAM, а уж обслуживать АЦП и собирать с них данные в 1К-пакеты для буфера SDRAM можно и 8-разрядным МК. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Артём__ 0 2 мая, 2012 Опубликовано 2 мая, 2012 · Жалоба А xmega128A1 вам не подойдёт? У неё два АЦП с возможностью мерять по 4 канала параллельно - итого 8 параллельных каналов. Можно подключить до 16МБ ОЗУ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Stanislav 0 2 мая, 2012 Опубликовано 2 мая, 2012 · Жалоба Доброго всем времени суток! Задачка следущая: требуется оцифровывать синхронно и непрерывно 8 каналов с частотой 100кгц на канал. Извините, не совсем понял. Вам требуется синхронный захват данных по 8-ми каналам с частотой 100 кВыб/с, верно? Всё остальное - вторично... Для процессоров blackfin это как раз не проблема. ............. Процессоры BlackFin не могут делать параллельный сэмплинг. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 17 2 мая, 2012 Опубликовано 2 мая, 2012 · Жалоба Извините, не совсем понял. Вам требуется синхронный захват данных по 8-ми каналам с частотой 100 кВыб/с, верно? Всё остальное - вторично... Процессоры BlackFin не могут делать параллельный сэмплинг. Подобные АЦП имеют буфер. То есть после измерения нужно вычитать все каналы из АЦП до окончания следующего измерения, само вычитывание может быть последовательным. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexashka 0 2 мая, 2012 Опубликовано 2 мая, 2012 · Жалоба Вам требуется синхронный захват данных по 8-ми каналам с частотой 100 кВыб/с, верно? Да, именно так. Каналы должны оцифровываться одновременно, вычитка данных -любым удобным способом. Я уже приводил тут АЦП ADS8528 - у него внутри как раз 8 независимых АЦП. Сперва решите, кто и как будет забирать данные из SDRAM... Предположительно вот эта штучка ...обслуживать АЦП и собирать с них данные в 1К-пакеты для буфера SDRAM можно и 8-разрядным МК Т.е в ОЗУ самого 8-битника? Иначе не вижу смысла ставить еще один тормоз в систему :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 32 3 мая, 2012 Опубликовано 3 мая, 2012 (изменено) · Жалоба Да, именно так. Каналы должны оцифровываться одновременно, вычитка данных -любым удобным способом. Я уже приводил тут АЦП ADS8528 - у него внутри как раз 8 независимых АЦП. Есть, в принципе, ещё вариант обойтись без glue-logic, если, опять же, процессор поддерживает передачу данных по SPI с участием канала DMA. Смысл в том, что у некоторых ADI-шных конвертеров, например AD7988-1, есть вход CNV (initiates a conversion) и, кроме того, есть возможность соединять несколько АЦП последовательно - в режиме "daisy-chain". В этом случае все ADC будут подключены к одному интерфейсу SPI и будут передавать данные последовательно, друг за другом (см. Figure 38 и Figure 39, DS). Это, ессно, требует от МК наличия скоростного SPI, так как для опроса восьми 16-битных АЦП на частоте 100 кГц нужен SPI с частотой работы не менее 8*16*0.1 МГц = 12.8 МГц. Преимущество этой схемы - малое потребление энергии, что для переносного прибора может быть решающим фактором. Вся эта схема из восьми АЦП потребляет от источника питания всего 8*0.7 mW = 5.6 mW мощности. Недостаток же схемы - высокая цена. Восемь таких АЦП стОят 8*$9.28 = $74.24, что почти в восемь раз дороже, чем один 14-битный ADS8528. Изменено 3 мая, 2012 пользователем blackfin Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexashka 0 3 мая, 2012 Опубликовано 3 мая, 2012 · Жалоба А xmega128A1 вам не подойдёт? У неё два АЦП с возможностью мерять по 4 канала параллельно - итого 8 параллельных каналов. Можно подключить до 16МБ ОЗУ. Да, не даром XMEGA пользуется такой популярностью. Так ведь ей можно закрыть сразу 8 АЦП и буфер для SDRAM! Скажем так АЦП пишет по DMA по очереди в 2 буфера ОЗУ, заполненный буфер обычным программным образом передается "большому брату" (ARM9). Если при этом ядро ничего больше делать не будет, должно наверно успеть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться