Перейти к содержанию
    

Здравствуйте, уважаемые формучане.

Задача следующая. Имеем 3 АЦП по 2 канала с одновременной выборкой в 500 ksps. Итого 6 каналов одновременной выборки в 500 ksps c параллельным интерфейсом 14 бит (2 байта). Никакой обработки не будет. Надо просто всё сваливать в память по нажатию кнопки СТАРТ до её заполнения и потом и памяти перекачать на комп по USB. Память внешняя с параллельным интерфейсом. Заполняться будет примерно 20 сек. По расчётам это так:

2 байта (16 бит) * 6 каналов = 96 бит (12 байт)

96 * 500 000 (sps) = 48 000 000 бит (6 000 000 байт) - за 1 сек

48 000 000 * 20 = 960 000 000 бит (120 000 000 байт) - за 20 сек.

Вопрос. Справиться ли с этой задачей STM32F7 серии с её 200 МГц? Если нет, то кто сможет справиться?

С уважением, Евгений.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос. Справиться ли с этой задачей STM32F7 серии с её 200 МГц? Если нет, то кто сможет справиться?

А чего именно Вы думаете может не хватить? Ну всё зависит конечно от интерфейса подключения внешней памяти и АЦП.

Но всё-же: у меня например LPC4370 (Cortex-M4) на тактовой 160МГц вполне себе справляется с подобной задачей, только АЦП (встроенное) на 80MS/s и во внутреннюю память. А у Вас всего-то каких-то жалких 3MS/s... Так что - если грамотно подключите АЦП (в первую очередь), то никаких проблем быть не должно.

 

Да, кстати: если нет никакой обработки и нужно просто передать в комп, то зачем тогда Cortex-M? Может будет достаточно CY7C68013A? Она заточена под работу с различными параллельными интерфейсами. И внешняя память не нужна - гнать напрямую в комп можно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Имеем 3 АЦП по 2 канала с одновременной выборкой в 500 ksps. Итого 6 каналов одновременной выборки в 500 ksps c параллельным интерфейсом 14 бит (2 байта).

Внешние АЦП с параллельным выходом? Три штуки? Как планируете подключать к МК? Или пока никак?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как планируете подключать к МК?

АЦП MAX1322ECM. У него 14 бит данные + 9 управляющих выводов. Всё объединить через логику, а вывод CS у каждого свой.

 

Может будет достаточно CY7C68013A?

8051 Core не знаком. Имею опыт только у STM32 и MSP430.

А у Вас всего-то каких-то жалких 3MS/s... Так что - если грамотно подключите АЦП (в первую очередь), то никаких проблем быть не должно.

Хорошо. если так. Благодарю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

АЦП MAX1322ECM. У него 14 бит данные + 9 управляющих выводов. Всё объединить через логику, а вывод CS у каждого свой.

Вопрос - не как объединять, а на какой интерфейс МК подключать. Если будете работать через GPIO - могут быть и проблемы со скоростью.

Если подключите к параллельному интерфейсу МК (как он в STM32 зовётся? FSMC?), то тогда не должно быть проблем.

Хотя - не указали как именно собираетесь формировать сигналы запуска преобразования АЦП. От МК? Как формировать этот сигнал? И какие требования к стабильности частоты сэмплирования?

 

8051 Core не знаком.

Там такой-же си как и везде. Для запуска работы достаточно взять готовый пример и чуть его подкорректировать под себя.

 

И зачем вообще нужна внешняя память для такой задачи? USB HS вполне хватит для потока 3МБ/с, значит достаточно внутренней памяти.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Много-много лет назад представитель одной "конкурирующей фирмы" на совещании с заказчиком, на конкретный вопрос "а может ли Ваше устройство..." сказал фразу, ставшую у нас частоупоминаемой: "Процессор может всё!"

в Вашем случае "процессор может все" много раз :)

 

P.S. А я бы наверно про ПЛМ подумал, но требование использовать USB сразу делает систему непонятной для моего уровня владения ПЛМ, а зоопарк "ПЛМ+МК" в данном случае не нужен. вроде бы не нужен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

АЦП MAX1322ECM. У него 14 бит данные + 9 управляющих выводов. Всё объединить через логику, а вывод CS у каждого свой.

Скорее всего не получится через FMC и принять все эти данные, и переправить их во внешнюю память.

Посмотрите на DCMI. Вполне вероятно, с его помощью можно захватить данные из АЦП, если их подготовить логикой правильным образом. Если справитесь с этой задачей, то выбросить эти данные через FMC будет совсем не трудно. Запас по тактовой частоте там большой. Скорее всего, и 100 МГц хватит - STM32F4 с поддержкой SDRAM.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скорее всего не получится через FMC и принять все эти данные, и переправить их во внешнюю память.

Посмотрите на DCMI. Вполне вероятно, с его помощью можно захватить данные из АЦП, если их подготовить логикой правильным образом. Если справитесь с этой задачей, то выбросить эти данные через FMC будет совсем не трудно. Запас по тактовой частоте там большой. Скорее всего, и 100 МГц хватит - STM32F4 с поддержкой SDRAM.

Подозреваю что ТС вообще толком не представляет как он собирается АЦП подключать к МК. Да и необходимость внешней памяти сомнительна.

Также подозреваю, что, если внешняя память по каким-то причинам всё-же нужна, что-нить из LPC43xx справится с данной задачей много лучше: одно ядро можно вообще отдать чисто под управление АЦП через GPIO, без прерываний, по тактам, может даже на асм и тем самым реализовать требуемую времянку; другим ядром делать прочую работу (USB, ...).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да и необходимость внешней памяти сомнительна.

Накопить 120 мегабайт без внешней памяти? Именно так написано в задании. Или хотите выплёвывать в USB на лету? Тут ТС виднее - вполне возможно, что у него просто нет такой возможности.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Никакой обработки не будет. Надо просто всё сваливать в память по нажатию кнопки СТАРТ до её заполнения и потом и памяти перекачать на комп по USB. Память внешняя с параллельным интерфейсом. Заполняться будет примерно 20 сек.

 

Я порекомендовал бы nuvoton с памятью на борту. У него очень много памяти для данной задачи и нормальный усб порт без всяких 3300 в довесок. все на одном чипе, кроме АЦП, разумеется. Недостаток - ядро АРМ9, но с поставленной задачей должно справится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Переливать в реальном времени 6 Мб/ сек по USB, что бы никакие тайминги, задержки, флаги готовности не помешали не представляю как.

Подключать АЦП думал просто на GPIO, задействовать DMA.

 

если их подготовить логикой правильным образом.

Можно по подробнее?

 

Приложил схему АЦП

post-16819-1474382443_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Переливать в реальном времени 6 Мб/ сек по USB, что бы никакие тайминги, задержки, флаги готовности не помешали не представляю как.

Зато USB HS - это представляет. У Вас узкое место не USB (здесь никаких проблем с 6МБ/сек быть не должно), а подключение АЦП.

Подключать АЦП думал просто на GPIO, задействовать DMA.

Видно что Вы совершенно не представляете как это сделать. И с какими проблемами столкнётесь...

Вобщем - внешняя память тут не нужна, сосредоточьтесь на подключении АЦП. И МК подойдёт любой имеющий USB HS и удобный для подключения этого АЦП.

 

PS: А может и внешний АЦП не нужен? Может вся Ваша задача решается одним МК со встроенным АЦП и без внешней памяти? :)

Если не боитесь BGA и достаточно 12бит точности АЦП, советую LPC4370. Он в корпусе LBGA256 имеет как раз 6 каналов АЦП. А сливать в комп - в реальном времени по USB HS. И никакой возни с внешней логикой и кучи мелкосхем - всё в одном чипе. Да и по производительности (если надо) он пошустрее STM32F7xx будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

PS: А может и внешний АЦП не нужен? Может вся Ваша задача решается одним МК со встроенным АЦП и без внешней памяти? :)

Внешний АЦП нужен, т.к. надо иметь 3 измерителя по 2 канала гальванически развязанных между собой и USB.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Внешний АЦП нужен, т.к. надо иметь 3 измерителя по 2 канала гальванически развязанных между собой и USB.

Раз нужна гальваническая изоляция, то думаю стОит поискать внешние АЦП с SPI-шиной: подключать их проще будет к МК и изоляторов меньше ставить.

Если не изолировать МК от USB, а только изоляторы между МК и АЦП, то - USB HS и внешняя память не нужна.

Вот например целая пачка 16разрядных 2+ -канальных АЦП на требуемый samplerate с SPI-интерфейсом:

http://www.ti.com/lsds/ti/data-converters/...&p1028=2;21

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...