Добрый день! Понадобилось, значит, мне оцифровать сигнал с частотой эдак мегагерц 40-60. Выбор пал на stm32F205 (системная частота 120, ДМА можно запустить на 60, если ничего не путаю ), АЦП соответственно внешнее, собираюсь прикручивать через FSMC ну и ДМА, на него натравленное. Кроме этого планируется запуск еще одного ДМА (правда с частотой порядка 100 КГц) для управления усилением оцифровываемого си гнала. Вопрос заключается в следующем: Насколько может порвать временную диаграмму и как с этим бороться?
Для оцифровки УЗ эхо-последовательности (2.5 мгц) Плис это хорошо, но я остановился на МК, так как там еще доп. функции будут.
Вот что что, а УСБ на плис собирать мне не улыбается ну никак, собственно как и разбираться со встраиваемым МК (там будет нетривиальная ЦОС. хотя можно и свой обрезанный процессор своять)
Вариант, где и МК и ПЛИС вместе не проходит по габаритам (скорее всего).
P.S. и пожалуйста, не надо мне напоминать про товарища Котельникова
Вот это то и пугает! Вопрос в том как это отразится на полученном результате! На счет приоритетов: Да, решается, но как не крути, а память то у МК однопортовая, соответственно будет коллизия временной диаграммы и ктото в очереди да постоит .
И вот еще вопрос (для знатоков архитектуры шины): если ДМА тактируется 60ю МГцами, и соотвтственоо 1 цикл представляет из себя операцию чтения и записи, то это будет 30 МГц, или же в 1м такте шины предусмотрена фаза чтения и фаза записи? или же все запутанней ?
И вот еще вопрос в догонку: Можно ли ядру (STM32) сказать HALT! (тормозни свой счетчик команд и жди прерывания по окончанию ДМА) что бы пустой цикл шину не тиранил ?? Если дыры во временной диаграмме будут выражаться в потере 1го измерения, и при этом процесс "проглатывания" будет стационарным (т.е. повторяться от последовательности к последовательности), то такой расклад вполне приемлем.
Не успеешь обработать входящие данные. Я на STM32F303 (частота 72 МГц) обрабатывал сигнал 2 канала по 3 MSps (суммарно 6 MSps). Уже получается впритык по скорости.
К томуже. DMA то успеет тебе нормально передать данные на частоте 50 МГц, но! Не забываем что процессору тоже нужно обращаться к памяти, и при такой загрузке шины процессор будет работать не очень быстро. Будет постоянно ожидать данных из памяти.
Так, что если хочется обрабатывать подобный сигнал - нужен чип с частотой порядка 1 ГГц и LVDS интерфейс до ADC.
Open писал(а):
И вот еще вопрос в догонку: Можно ли ядру (STM32) сказать HALT! (тормозни свой счетчик команд и жди прерывания по окончанию ДМА) что бы пустой цикл шину не тиранил ??
Можно. В сэмпликах от STM32L Discovery полно такого кода.
Кроме ПЛИС есть еще и DSP процессоры. Там есть LVDS входы. Так то и стандартному гигагерцовому процессору хватает мощи, но вот как туда данные от быстрого ADC завести - непонятно.
Вы, видимо невнимательно смотрели первый пост. Имеется ввиду совместная работа DMA и FSMC. Процессор в этом не участвует. И вообще ему в это время вообще нежелательно что либо делать(обращаться к памяти или еще как ни будь загружать шину)
Логика работы выглядит так: АЦП физически вешается на FSMC_D0..FSMC_D11 и FSMC_CLK. Запускается ДМА, читающее из адресного пространства FSMC и складывает в стопочку в обычной памяти. Сразу после старта ДМА процессор уходит в HALT и ждет, когда все кончится.
На счет ПЛИС - я почти смерился, и даже доказал себе массу плюсов вот только ЮСБ напрягает...
balmer писал(а):
но вот как туда данные от быстрого ADC завести - непонятно.
старый, проверенный способ - внешнее FIFO . Правда в последнее время на рынке чейто такие микрухи не попадаются...
Последний раз редактировалось Open Вт авг 26, 2014 17:13:18, всего редактировалось 1 раз.
ну так в чём проблема??? Вы ж не на прикупе... вам и карты в руки... Строб пина до и после транзакции ДМА... узнаете время транзакции... а следовательно и скорость... у ДМА приоритет...
_________________ "Я не даю готовых решений, я заставляю думать!"(С)
А вот и на нем Надо шефа трясти на раскошелится (100ногих корпусов нет) Потом, после неудачного эксперимента руками разводить не хочется
holomen писал(а):
60msps лучше на плис делать
Видимо придется, тем более, что там доп задачи как раз под плис будут... Микропроцессор под свои нужды я уже накидал. Хотя УСБ контроллер какой ни будь таки придется напаивать, или на месяц уйти в астрал и самому поднять^^
Вы, видимо невнимательно смотрели первый пост. Имеется ввиду совместная работа DMA и FSMC. Процессор в этом не участвует.
Ну если данные сначала сэмплируются, а потом останавливается сэмплирование и идет обработка продолжительное время - тогда проблем нет, вполне может заработать. Только берите лучше сразу STM32F405, стоят столько же (порядка 300 руб/шт), а частота повыше.
Видимо придется, тем более, что там доп задачи как раз под плис будут...
Тем более. Все быстрое железом, а неспешную обработку процом.
Цитата:
Микропроцессор под свои нужды я уже накидал.
Зачем свой? Неужели из трех ниосов ни один не подходит?
Цитата:
Хотя УСБ контроллер какой ни будь таки придется напаивать, или на месяц уйти в астрал и самому поднять^^
Да вроде ведь есть на опенкоресах USB корки. Хотя да, приходится допиливать. В крайнем случае можно поставить народную CY68013, но там тоже нужно покурить маны. А можно быстро и дорого поставить че-нить от FTDI и не париться с дровами на ББ, а прикинуться компортом. В общем, путей более чем достаточно.
Скорее всего будут правки. Есть "старые" STM32F1xx, STM32F2xx. И "новые" STM32L1xx, STM32F3xx, STM32F4xx. У них много периферии немного по другому настраивается.
Зачем свой? Неужели из трех ниосов ни один не подходит?
Свой ближе, тем более у него будет 4 адресных пространства. А система команд очень обрезанная и специфическая (программа больше похожа на временную диаграмму для окружающей архитектуры + переходы условные и не очень). Никаких стэков, прерываний, ДМА и прочего. Делается за день, за неделю отлаживается. Тем более я в конюшне ксилинса До альтеры руки никак не дойдут
balmer писал(а):
Скорее всего будут правки.
Ну по крайней мере библиотека OTG от STM идет под 205 и 405. Остальное если срастаться не будет - это уже мелочи
Да, религиозные предпочтения - они такие... Впрочем... Неужели у ксилинксов нет готовых процессорных корок?
Да собственно предпочтение обусловлено только ограниченностью свободного времени (и в некотором смысле ленью ). Ибо что первое попалось под руку то и юзаю. Есть у них корки: пикоблэйз халявный, но 8 бит. И микроблэйз 32бита, но надо покупать лицензию..
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения