Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: stm32f4 external parallel ADC
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
spirit_1
Есть необходимость привинтить к контроллеру внешний ацп с паралельным интерфейсом .
Есть вариант adc1410s080 если удасться достать или более доступный LTC2246
Оба 14 битные с похожими простыми паралельными интерфейсами. Считывает данные по перепаду на клоке
Хочу привинтить их к FSMC как внешнюю SRAM
CS использовать как клок
Может у кого то есть подобный практический опыт подключения АЦП или других устройств? Так же интересует стабильность такого клока от СТМ32.
Forger
Цитата(spirit_1 @ Jun 26 2018, 12:22) *
Хочу привинтить их к FSMC как внешнюю SRAM
CS использовать как клок

Подсказка есть тут:
https://www.st.com/content/ccc/resource/tec....CD00201397.pdf


Цитата
Так же интересует стабильность такого клока от СТМ32.

Зависит от кода - CS (точнее NEx) дергается лишь при обращении к соотв. региону внешней памяти. Это вам не DDR.
khach
14бит и менее к DCMI ( параллельному интерфейсу камеры) легко прикручиваются. Сбор данных по DMA. Синхронизации строчные и кадровые отключить.
spirit_1
Цитата(khach @ Jun 26 2018, 21:36) *
14бит и менее к DCMI ( параллельному интерфейсу камеры) легко прикручиваются. Сбор данных по DMA. Синхронизации строчные и кадровые отключить.


Спасибо.
Вчера все просто получилось
Поднял в кубе SRAM с одним битом адреса . О не дает, ругаеться
Попробовал считать . Затем поднял DMA mem to mem
тоже без особых проблем все завелось .
Покак просто попробовал подавать напряжения на ноги и смотрел что читает в отладчике
Ну и осцилографом клок посмотрел тот что NE1 у меня.
Единсьвенная проблемка это была небольшая задержка между байтами что для ацп неприемлемо
Пропала после того как в кубе ДМА аоменял значение thкуырщдв на любое кроме full-
теперь всевь пакет идет равномерно

Цитата(Forger @ Jun 26 2018, 20:58) *
Подсказка есть тут:
https://www.st.com/content/ccc/resource/tec....CD00201397.pdf



Зависит от кода - CS (точнее NEx) дергается лишь при обращении к соотв. региону внешней памяти. Это вам не DDR.


Насколько я понимаю CS в SRAM дергаеться всегда не зависимо от того к какому участку памяти обращаемся. Он так и называпеться -чип селект выбор кристалл.?
Forger
Цитата(spirit_1 @ Jun 27 2018, 09:37) *
Насколько я понимаю CS в SRAM дергаеться всегда не зависимо от того к какому участку памяти обращаемся. Он так и называпеться -чип селект выбор кристалл.?

Обычно линий CS несколько (у ST они называются NE0, NE1 и т. д.). Каждая из них привязана к своему региону памяти.
Разумеется, когда идет обращение к одному и тому же региону, то дергается только один соотв. NE.
Подробности см. в даташите. Не ленитесь по-чаще это делать wink.gif
jcxz
Цитата(Forger @ Jun 27 2018, 10:27) *
Подробности см. в даташите. Не ленитесь по-чаще это делать wink.gif

Тут налицо типичное кубокодерство, а Вы про какие-то даташиты.... smile3046.gif
Вообще сомневаюсь, что там реально нужен внешний АЦП.
Forger
Цитата(jcxz @ Jun 27 2018, 10:31) *
Вообще сомневаюсь, что там реально нужен внешний АЦП.

Безусловно в реальности такие АЦП с таким потоком данных обычно вешают на толстую ПЛИС (буферы, цифровые фильтры).
ПЛИС "цепляется" к соотв. и достаточно "злобному" МК.

А причина, почему в данном случае используется АЦП, который тут как из пушки по воробьям, скорее выходит за рамки этой темы.
Ждем новой темы в стиле "как заставить stm32f4 обрабатывать поток данных с внешнего АЦП под 50 мегасэмплов в сек без тормозов?" sm.gif
jcxz
Цитата(Forger @ Jun 27 2018, 10:43) *
Ждем новой темы в стиле "как заставить stm32f4 обрабатывать поток данных с внешнего АЦП под 50 мегасэмплов в сек без тормозов?" sm.gif

Насколько понимаю, там проблема возникнет гораздо раньше обработки, при сопряжении МК<->АЦП: принять по внешнему FSMC в STM32F4 на достаточной скорости поток данных от АЦП ой как непросто! А без умения читать даташиты вообще невозможно.
С какой реально частотой можно принимать сэмплы с такого АЦП через FSMC? Уверен на 90%, что когда это выяснится, то окажется, что LPC4370 с его внутренним АЦП много шустрее. И дешевле.
Forger
Цитата(jcxz @ Jun 27 2018, 10:49) *
окажется, что LPC4370 с его внутренним АЦП много шустрее. И дешевле.

Возможно, у ТС "в ящике стола" нашлись только эти микросхемы. Зачастую именно и возникают попытки скрестить "ежа с ужом" sm.gif
spirit_1
Цитата(Forger @ Jun 27 2018, 08:43) *
Безусловно в реальности такие АЦП с таким потоком данных обычно вешают на толстую ПЛИС (буферы, цифровые фильтры).
ПЛИС "цепляется" к соотв. и достаточно "злобному" МК.

А причина, почему в данном случае используется АЦП, который тут как из пушки по воробьям, скорее выходит за рамки этой темы.
Ждем новой темы в стиле "как заставить stm32f4 обрабатывать поток данных с внешнего АЦП под 50 мегасэмплов в сек без тормозов?" sm.gif


Здесь все очень просто. Это НЕ ПОТОК ДАННЫХ поэтому и применяеться контроллер . Мы оцифровываем короткий участок с обьемом до сотни выборок и потом можем достаточно долго его обрабатывать
Пэтому выполнить преобразование например Герцеля для длока из 50-100 точек можно и на ф4 без всяких проблемм
По поводу скорости то FMC f4 по датащиту обеспечивает скорость работы с памятью до 90 мгц. Хотелось бы это посмотреть так как мне 25 вполне хватит
Forger
Цитата(spirit_1 @ Jun 27 2018, 12:16) *
Хотелось бы это посмотреть так как мне 25 вполне хватит

Это легко проверить без создания тем и проектирования плат, для этого под руками должны быть даташиты.
jcxz
Цитата(spirit_1 @ Jun 27 2018, 12:16) *
По поводу скорости то FMC f4 по датащиту обеспечивает скорость работы с памятью до 90 мгц. Хотелось бы это посмотреть так как мне 25 вполне хватит

Это с памятью. С определённым интерфейсом и сигналами. У АЦП они немного другие и такой скорости там можно и не получить, а получить раза в 2 меньше.
А тогда получается, что LPC4370 однозначно лучше связки из STM32F4+внешний_АЦП. Ну если конечно младшие 2 бита слова данных АЦП не критичны.
Тем более если хватит 80MSPS - то на LPC4370 это без проблем, а через FSMC 80MSPS - вряд-ли.
khach
По FSMC очень нерегулярно обмен происходит. Данные с АЦП будут терятся. Можно конечно поставить FIFO, но мелких микросхем FIFO сейчас найти трудно, да и обвязки логикой они требуют. Поэтому получается FPGA. Если FIFO все таки удалось найти, то там получается сложная система прерываний и запросов DMA, чтобы не было ни переполнения, ни опустошения FIFO. Заводили сигналы записи-чтения в FIFO на таймеры STM32 чтобы аппаратно считать обьем данных для обмена.
А на DCMI этих проблем нет. Скорость обмена до половины тактовой процессора, FIFO встроеное.
https://www.st.com/content/ccc/resource/tec....DM00373474.pdf
Собираем до 64 к выборок с АЦП, потом неспешно крутим фурье в оффлайне или еще какую цифровую обработку.
Проблема, если надо 2 и более АЦП на DCMI поставить или если вывыедены только 8 бит DCMI ( на многих макетных платах так сделано) . Тогда пришлось мультиплексор из мелкой CPLD делать.
spirit_1
Цитата(khach @ Jun 27 2018, 10:45) *
По FSMC очень нерегулярно обмен происходит. Данные с АЦП будут терятся. Можно конечно поставить FIFO, но мелких микросхем FIFO сейчас найти трудно, да и обвязки логикой они требуют. Поэтому получается FPGA. Если FIFO все таки удалось найти, то там получается сложная система прерываний и запросов DMA, чтобы не было ни переполнения, ни опустошения FIFO. Заводили сигналы записи-чтения в FIFO на таймеры STM32 чтобы аппаратно считать обьем данных для обмена.
А на DCMI этих проблем нет. Скорость обмена до половины тактовой процессора, FIFO встроеное.
https://www.st.com/content/ccc/resource/tec....DM00373474.pdf
Собираем до 64 к выборок с АЦП, потом неспешно крутим фурье в оффлайне или еще какую цифровую обработку.
Проблема, если надо 2 и более АЦП на DCMI поставить или если вывыедены только 8 бит DCMI ( на многих макетных платах так сделано) . Тогда пришлось мультиплексор из мелкой CPLD делать.



минимально надо 20м выборок, Поэтому шанс есть всетаки что потянет
Поясните пожалуйста фразу По FSMC очень нерегулярно обмен происходит. Данные с АЦП будут терятся.
Это происходит при каких то определенных скоростях ? В чем заключаеться потеря. ? Не высталяються сигналы на шину или наоборот сигналы выставляються но несчитываються при этом данные с внешнего устрройства
.
По поводу LPC4370 заказал сегодня для изучения демоплату ОМ13054
Буду паралельно узучать и пробовать но это думаю не очень быстрро будет. Подскажите пожалуйста по ней русорсы для начала. Особенно примеры конфигураций итд чтото живое
jcxz
Цитата(spirit_1 @ Jun 27 2018, 13:32) *
По поводу LPC4370 заказал сегодня для изучения демоплату ОМ13054
Буду паралельно узучать и пробовать но это думаю не очень быстрро будет. Подскажите пожалуйста по ней русорсы для начала. Особенно примеры конфигураций итд чтото живое

Не знаю, наверное какие-то примеры есть - не интересовался. Я делал всё по юзер-мануалу и даташиту.
Заказывал 2шт. ОМ13054 - в одну прошил J-Link. Хотя можно пользоваться и внешним J-Link если имеется соответствующий кабель для него.
В качестве бонусов отладки на данном МК есть ETB.

PS: В то время тоже сначала хотел STM32F4+внешний_АЦП_на_FSMC (типа AD9226). Но нужно было около 50MSPS. Но из юзермануала на STM32F4 неясно было - можно ли вообще осуществить сопряжение с данным АЦП (по его сигналам) хотя-бы на половинной частоте FSMC? Тоже нужно было сделать выборку в пару тысяч отсчётов непрерывно, а потом сравнительно неспеша их обработать.
А потом нашёл LPC4370 и все проблемы решились rolleyes.gif
spirit_1
Цитата(jcxz @ Jun 27 2018, 11:39) *
Не знаю, наверное какие-то примеры есть - не интересовался. Я делал всё по юзер-мануалу и даташиту.
Заказывал 2шт. ОМ13054 - в одну прошил J-Link. Хотя можно пользоваться и внешним J-Link если имеется соответствующий кабель для него.
В качестве бонусов отладки на данном МК есть ETB.

сейчас подня частоту HCLK до 100 мег. Делаю выборку из 24 штук. На осцилографе скорость чуть более 20 мвыборок . все стоит очень стабильно. Как реально будут сниматься данные с АЦП посмотрим . По даташиту скорость FMC 90m
максимальная. так что запас большой. Вобщем осталось практически проверить
khach
Цитата(spirit_1 @ Jun 27 2018, 12:32) *
Поясните пожалуйста фразу По FSMC очень нерегулярно обмен происходит. Данные с АЦП будут терятся.
Это происходит при каких то определенных скоростях ? В чем заключаеться потеря. ? Не высталяються сигналы на шину или наоборот сигналы выставляються но несчитываються при этом данные с внешнего устрройства

При обращении происходит процесс арбитража по доступу к шине. Это сильно зависит от того, какие устройства к FSMC шине подключены ( а их там может быть не одно). От режима программирования контроллера шины ( там куча параметров). Обьяснять все долго, самое простое= стать осциллографом на шину и посмотреть времянки при доступе к устройству с постоянной готовностью ( типа статическгй памяти хотя бы) при различных методах реализации начала обмена. Хотя программный обмен и по прерываниям тут вряд ли успеют. Только DMA.

spirit_1
Цитата(jcxz @ Jun 27 2018, 10:39) *
Не знаю, наверное какие-то примеры есть - не интересовался. Я делал всё по юзер-мануалу и даташиту.
Заказывал 2шт. ОМ13054 - в одну прошил J-Link. Хотя можно пользоваться и внешним J-Link если имеется соответствующий кабель для него.
В качестве бонусов отладки на данном МК есть ETB.

PS: В то время тоже сначала хотел STM32F4+внешний_АЦП_на_FSMC (типа AD9226). Но нужно было около 50MSPS. Но из юзермануала на STM32F4 неясно было - можно ли вообще осуществить сопряжение с данным АЦП (по его сигналам) хотя-бы на половинной частоте FSMC? Тоже нужно было сделать выборку в пару тысяч отсчётов непрерывно, а потом сравнительно неспеша их обработать.
А потом нашёл LPC4370 и все проблемы решились rolleyes.gif


Я не очень понял про ОМ13054 . Этот отладчик выплняет функции аналогичные Дискавери для СТМ ? Или только для прошивки и отладки других контроллеров. Коллега который должен заказать говорит что он исп только для отладки и прошивки.
Мне сейчас нужна отладочная плата типа Дискавери
jcxz
Цитата(spirit_1 @ Jun 27 2018, 14:41) *
Я не очень понял про ОМ13054 . Этот отладчик выплняет функции аналогичные Дискавери для СТМ ? Или только для прошивки и отладки других контроллеров. Коллега который должен заказать говорит что он исп только для отладки и прошивки.

В ОМ13054 можно залить прошивку J-Link-а (есть на сайте segger-a, бесплатная) и он станет J-Link-ом. Этим получившимся J-Link-ом можно отлаживать другую ОМ13054. Или можно использовать другой J-Link (сторонний). На Discovery ST-Link и не факт что им можно будет отлаживать LPC4370. Да и J-Link, имхо, однозначно лучше ST-Link-а.
spirit_1
Цитата(jcxz @ Jun 27 2018, 14:36) *
В ОМ13054 можно залить прошивку J-Link-а (есть на сайте segger-a, бесплатная) и он станет J-Link-ом. Этим получившимся J-Link-ом можно отлаживать другую ОМ13054. Или можно использовать другой J-Link (сторонний). На Discovery ST-Link и не факт что им можно будет отлаживать LPC4370. Да и J-Link, имхо, однозначно лучше ST-Link-а.


Спасибо.
Вчера разобрались с этим извращением и заказали две платы. Поглядим что за зверь
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.