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

STM32: использование АЦП в качестве компаратора

Здравствуйте,

 

К сожалению, в STM32 компараторы заканчиваются на "RAM=80k"(STM32L151), а в более пузатых камнях- только АЦП.

А я собираюсь использовать STM32F411RCT6 (много ресурсов и недорого, но аналогового компаратора нет).

 

Одна из задач у меня - измерить период синусоидального сигнала методом подсчета пересечений нуля. Речь идет о коротком измерении (не более чем 250 ms), частота измеряемого сигнала - ниже 8 кГц.

 

В майкрочипе это делается легко (там аналоговые копараторы есть), а тут, получается, внешний компаратор ставить?

 

Насколько я понял, можно использовать "Analog watchdog" и получить точность срабатывания, близкую к частоте семплов АЦП, так ли это? В даташите написано про "ADC sampling time 0.1 us min", если можно с подобной точностью регистрировать - меня это устраивает.

 

В Майкрочипе использовал Capture Module - он сам защелкивал содержимое таймера по, например, каждому четвертому переключению компаратора из High в Low. Можно ли что-то подобное на STM32F организовать?

 

Другой подход- просто валить в RAM семплы через DMA и потом уже разбираться ручками. Но как-то много семплов получается, памяти не хватит. То есть нужно маленькое DMA-кольцо (точнее, два) и разбирать на лету с одним пока другое заполняется. Но мне больше бы понравилось использовать опцию "Analog watchdog".

 

Подозреваю, что не мне первому понадобилось период сигнала измерять, может уже где-то аппноты есть на эту тему? И какие подводные камни есть при использовании ADC & Analog watchdog ?

 

Upd: пересчитал: все-таки мало мне тут разрешения 100ns (да и это может быть даже недостижимый предел), да еще и огород городить. конкретно здесь и сейчас влеплю аппаратный компаратор на плату.

Но вопрос остается, хочу понять чего же можно с помощью АЦП достичь :)

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


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

К сожалению, в STM32 компараторы заканчиваются на "RAM=80k"(STM32L151),

А серию STM32F3xx не пропустили?

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


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

Другой подход- просто валить в RAM семплы через DMA и потом уже разбираться ручками. Но как-то много семплов получается, памяти не хватит. То есть нужно маленькое DMA-кольцо (точнее, два) и разбирать на лету с одним пока другое заполняется.

Именно так - валить. А потом фильтровать. И только после считать частоту (с гистерезисом) если хотите получать более-менее верные значения.

Почему не хватит? Вы собираетесь "валить" от включения устройства и до выключения? :smile3009: Тогда точно - не хватит. Но если обрабатывать периодически накопленный DMA буфер - нормально.

Хотя гораздо лучше для такой задачи подходит DSP. Но даже для STM32 8кГц - не проблема. Даже непрерывным потоком, не говоря уже о кратковременном измерении. Фильтр только правда можно будет не сильно крутой сделать.

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


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

А серию STM32F3xx не пропустили?

У кого из имеющих компаратор есть больше чем 80к RAM на борту?

Я проверил в Кубе- если выбираю чтоб был хоть 1 компаратор и сортирую оставшиеся по RAM, то сразу вижу максимум 80 килобайт ОЗУ.

 

 

Хотя гораздо лучше для такой задачи подходит DSP. Но даже для STM32 8кГц - не проблема. Даже непрерывным потоком, не говоря уже о кратковременном измерении. Фильтр только правда можно будет не сильно крутой сделать.

угу. ясно. DSP потому что компаратор нужен . у кого там из DSP набортного RAM много стало и аналоговые компараторы есть? :)

Я, правда, на BF533 остановился, дальше и не применял ничего, может действительно глянуть чтобы понять что пропустил....

Но не сейчас, пожалуйста. Не готов я еще и ВижуалДСП вспоминать.... :)

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


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

У кого из имеющих компаратор есть больше чем 80к RAM на борту?

Действительно, нет.

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


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

угу. ясно. DSP потому что компаратор нужен . у кого там из DSP набортного RAM много стало и аналоговые компараторы есть? :)

Компаратор в DSP - Ваш код. Хоть компаратор хоть что другое - ресурса производительности гораздо больше чем у M3.

А зачем Вам много ОЗУ? Для описанной Вами задачи хватит 2-4 кБ.

Но врочем если нужно - в семействе C55 (имхо - достаточном для Вашей задачи) до 320кБ внутренней.

А можете даже что-нить типа TMS320C6747 впендюрить - почти полмегабайта внутренней ОЗУ. А уж на 450МГц на 1-тактной double плавучке как можно развернуться! :biggrin:

Несколько десятка таких потоков по 8кГц можете параллельно обрабатывать ;)

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


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

Компаратор в DSP - Ваш код. Хоть компаратор хоть что другое - ресурса производительности гораздо больше чем у M3.

А зачем Вам много ОЗУ? Для описанной Вами задачи хватит 2-4 кБ.

Но врочем если нужно - в семействе C55 (имхо - достаточном для Вашей задачи) до 320кБ внутренней.

А можете даже что-нить типа TMS320C6747 впендюрить - почти полмегабайта внутренней ОЗУ. А уж на 450МГц на 1-тактной double плавучке как можно развернуться! :biggrin:

Несколько десятка таких потоков по 8кГц можете параллельно обрабатывать ;)

Спасибо. Посмотрел. Применить BGA-256 вместо LQFP-48 и заплатить 26 долларов вместо 6 (хотя реально переплата будет сильно больше из-за появления BGA на плате), и все это ради компаратора- я пока что морально не готов. :)

 

Посмотрел более доступные DSP с RAM 128к и больше- есть любопытные, но все начинаются с QFP-100/144 (терпимо) и 15 долларов (хм...)

Но, например, фраза из даташита TMS320VC5506 как-то не впечатлила.

• Two 20-bit timers

• Seven (LQFP) or Eight (BGA) configurable general-purpose I/O pins

Я понимаю, что аж целых два таймера и аж семь (или даже 8) конфигурируемых GPIO в 144-ногом корпусе - это звучит гордо, но я лучше тут с STM32 в песочнице поковыряюсь. пока что не готов я к DSP :)

 

неэффективна мне эта ракетная техника. Все воробьи разбегутся пока я прицелюсь.

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


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

Я понимаю, что аж целых два таймера и аж семь (или даже 8) конфигурируемых GPIO в 144-ногом корпусе - это звучит гордо, но я лучше тут с STM32 в песочнице поковыряюсь. пока что не готов я к DSP :).

Как-то Вы странно смотрели... ни McBSP/McASP многоканальных не заметили к которым хоть гроздь АЦП хоть по SPI цепляй, ни прочей стандартной периферии не заметили.... :wacko:

Как бы они (DSP) вообще бы могли обрабатывать какие-то данные, если бы связи с внешним миром не имели бы?? Не задумывались?

Ни C6745/47/48 в LQFP не заметили.

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


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

Как-то Вы странно смотрели... ни McBSP/McASP многоканальных не заметили к которым хоть гроздь АЦП хоть по SPI цепляй, ни прочей стандартной периферии не заметили.... :wacko:

Как бы они (DSP) вообще бы могли обрабатывать какие-то данные, если бы связи с внешним миром не имели бы?? Не задумывались?

Ни C6745/47/48 в LQFP не заметили.

Связи с внешним миром у них навалом, это понятно. Но убило наличие столь малого количества GPIO, не привязанных к интерфейсам.

 

Я просто в Дижикее залез в раздел "Embedded - DSP (Digital Signal Processors)". В нем выбрал имеющиеся в наличии, имеющие 128к и более, не-BGA, и отсортировал по цене. Значит есть и достойные, просто они сильно дороже и более многоногие, я до них не досмотрел.

 

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

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


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

Семейство C674x для Вашей задачи действительно - из пушки по воробьям. Хотя... если не трёт бюджет.... Хоть спектр в реальном времени считай. :-)

Лучше всего было-бы С55х, но все новые чипы (C551x, C553x) там почему-то только в BGA. :(

Только старые есть в LQFP.

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


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

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

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

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

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

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

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

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

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

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