KARLSON 1 19 сентября, 2016 Опубликовано 19 сентября, 2016 · Жалоба Здравствуйте, уважаемые формучане. Задача следующая. Имеем 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 МГц? Если нет, то кто сможет справиться? С уважением, Евгений. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 19 сентября, 2016 Опубликовано 19 сентября, 2016 · Жалоба Вопрос. Справиться ли с этой задачей STM32F7 серии с её 200 МГц? Если нет, то кто сможет справиться? А чего именно Вы думаете может не хватить? Ну всё зависит конечно от интерфейса подключения внешней памяти и АЦП. Но всё-же: у меня например LPC4370 (Cortex-M4) на тактовой 160МГц вполне себе справляется с подобной задачей, только АЦП (встроенное) на 80MS/s и во внутреннюю память. А у Вас всего-то каких-то жалких 3MS/s... Так что - если грамотно подключите АЦП (в первую очередь), то никаких проблем быть не должно. Да, кстати: если нет никакой обработки и нужно просто передать в комп, то зачем тогда Cortex-M? Может будет достаточно CY7C68013A? Она заточена под работу с различными параллельными интерфейсами. И внешняя память не нужна - гнать напрямую в комп можно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 19 сентября, 2016 Опубликовано 19 сентября, 2016 · Жалоба Имеем 3 АЦП по 2 канала с одновременной выборкой в 500 ksps. Итого 6 каналов одновременной выборки в 500 ksps c параллельным интерфейсом 14 бит (2 байта). Внешние АЦП с параллельным выходом? Три штуки? Как планируете подключать к МК? Или пока никак? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KARLSON 1 20 сентября, 2016 Опубликовано 20 сентября, 2016 · Жалоба Как планируете подключать к МК? АЦП MAX1322ECM. У него 14 бит данные + 9 управляющих выводов. Всё объединить через логику, а вывод CS у каждого свой. Может будет достаточно CY7C68013A? 8051 Core не знаком. Имею опыт только у STM32 и MSP430. А у Вас всего-то каких-то жалких 3MS/s... Так что - если грамотно подключите АЦП (в первую очередь), то никаких проблем быть не должно. Хорошо. если так. Благодарю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 20 сентября, 2016 Опубликовано 20 сентября, 2016 · Жалоба АЦП MAX1322ECM. У него 14 бит данные + 9 управляющих выводов. Всё объединить через логику, а вывод CS у каждого свой. Вопрос - не как объединять, а на какой интерфейс МК подключать. Если будете работать через GPIO - могут быть и проблемы со скоростью. Если подключите к параллельному интерфейсу МК (как он в STM32 зовётся? FSMC?), то тогда не должно быть проблем. Хотя - не указали как именно собираетесь формировать сигналы запуска преобразования АЦП. От МК? Как формировать этот сигнал? И какие требования к стабильности частоты сэмплирования? 8051 Core не знаком. Там такой-же си как и везде. Для запуска работы достаточно взять готовый пример и чуть его подкорректировать под себя. И зачем вообще нужна внешняя память для такой задачи? USB HS вполне хватит для потока 3МБ/с, значит достаточно внутренней памяти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 17 20 сентября, 2016 Опубликовано 20 сентября, 2016 · Жалоба Много-много лет назад представитель одной "конкурирующей фирмы" на совещании с заказчиком, на конкретный вопрос "а может ли Ваше устройство..." сказал фразу, ставшую у нас частоупоминаемой: "Процессор может всё!" в Вашем случае "процессор может все" много раз :) P.S. А я бы наверно про ПЛМ подумал, но требование использовать USB сразу делает систему непонятной для моего уровня владения ПЛМ, а зоопарк "ПЛМ+МК" в данном случае не нужен. вроде бы не нужен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 20 сентября, 2016 Опубликовано 20 сентября, 2016 · Жалоба АЦП MAX1322ECM. У него 14 бит данные + 9 управляющих выводов. Всё объединить через логику, а вывод CS у каждого свой. Скорее всего не получится через FMC и принять все эти данные, и переправить их во внешнюю память. Посмотрите на DCMI. Вполне вероятно, с его помощью можно захватить данные из АЦП, если их подготовить логикой правильным образом. Если справитесь с этой задачей, то выбросить эти данные через FMC будет совсем не трудно. Запас по тактовой частоте там большой. Скорее всего, и 100 МГц хватит - STM32F4 с поддержкой SDRAM. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 20 сентября, 2016 Опубликовано 20 сентября, 2016 · Жалоба Скорее всего не получится через FMC и принять все эти данные, и переправить их во внешнюю память. Посмотрите на DCMI. Вполне вероятно, с его помощью можно захватить данные из АЦП, если их подготовить логикой правильным образом. Если справитесь с этой задачей, то выбросить эти данные через FMC будет совсем не трудно. Запас по тактовой частоте там большой. Скорее всего, и 100 МГц хватит - STM32F4 с поддержкой SDRAM. Подозреваю что ТС вообще толком не представляет как он собирается АЦП подключать к МК. Да и необходимость внешней памяти сомнительна. Также подозреваю, что, если внешняя память по каким-то причинам всё-же нужна, что-нить из LPC43xx справится с данной задачей много лучше: одно ядро можно вообще отдать чисто под управление АЦП через GPIO, без прерываний, по тактам, может даже на асм и тем самым реализовать требуемую времянку; другим ядром делать прочую работу (USB, ...). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 20 сентября, 2016 Опубликовано 20 сентября, 2016 · Жалоба Да и необходимость внешней памяти сомнительна. Накопить 120 мегабайт без внешней памяти? Именно так написано в задании. Или хотите выплёвывать в USB на лету? Тут ТС виднее - вполне возможно, что у него просто нет такой возможности. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 50 20 сентября, 2016 Опубликовано 20 сентября, 2016 · Жалоба Никакой обработки не будет. Надо просто всё сваливать в память по нажатию кнопки СТАРТ до её заполнения и потом и памяти перекачать на комп по USB. Память внешняя с параллельным интерфейсом. Заполняться будет примерно 20 сек. Я порекомендовал бы nuvoton с памятью на борту. У него очень много памяти для данной задачи и нормальный усб порт без всяких 3300 в довесок. все на одном чипе, кроме АЦП, разумеется. Недостаток - ядро АРМ9, но с поставленной задачей должно справится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KARLSON 1 20 сентября, 2016 Опубликовано 20 сентября, 2016 · Жалоба Переливать в реальном времени 6 Мб/ сек по USB, что бы никакие тайминги, задержки, флаги готовности не помешали не представляю как. Подключать АЦП думал просто на GPIO, задействовать DMA. если их подготовить логикой правильным образом. Можно по подробнее? Приложил схему АЦП Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 20 сентября, 2016 Опубликовано 20 сентября, 2016 · Жалоба Переливать в реальном времени 6 Мб/ сек по USB, что бы никакие тайминги, задержки, флаги готовности не помешали не представляю как. Зато USB HS - это представляет. У Вас узкое место не USB (здесь никаких проблем с 6МБ/сек быть не должно), а подключение АЦП. Подключать АЦП думал просто на GPIO, задействовать DMA. Видно что Вы совершенно не представляете как это сделать. И с какими проблемами столкнётесь... Вобщем - внешняя память тут не нужна, сосредоточьтесь на подключении АЦП. И МК подойдёт любой имеющий USB HS и удобный для подключения этого АЦП. PS: А может и внешний АЦП не нужен? Может вся Ваша задача решается одним МК со встроенным АЦП и без внешней памяти? :) Если не боитесь BGA и достаточно 12бит точности АЦП, советую LPC4370. Он в корпусе LBGA256 имеет как раз 6 каналов АЦП. А сливать в комп - в реальном времени по USB HS. И никакой возни с внешней логикой и кучи мелкосхем - всё в одном чипе. Да и по производительности (если надо) он пошустрее STM32F7xx будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KARLSON 1 20 сентября, 2016 Опубликовано 20 сентября, 2016 · Жалоба PS: А может и внешний АЦП не нужен? Может вся Ваша задача решается одним МК со встроенным АЦП и без внешней памяти? :) Внешний АЦП нужен, т.к. надо иметь 3 измерителя по 2 канала гальванически развязанных между собой и USB. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 20 сентября, 2016 Опубликовано 20 сентября, 2016 · Жалоба Можно по подробнее? Увы, нет. Своих дел хватает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 20 сентября, 2016 Опубликовано 20 сентября, 2016 · Жалоба Внешний АЦП нужен, т.к. надо иметь 3 измерителя по 2 канала гальванически развязанных между собой и USB. Раз нужна гальваническая изоляция, то думаю стОит поискать внешние АЦП с SPI-шиной: подключать их проще будет к МК и изоляторов меньше ставить. Если не изолировать МК от USB, а только изоляторы между МК и АЦП, то - USB HS и внешняя память не нужна. Вот например целая пачка 16разрядных 2+ -канальных АЦП на требуемый samplerate с SPI-интерфейсом: http://www.ti.com/lsds/ti/data-converters/...&p1028=2;21 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться