Ruslan1 17 17 июля, 2015 Опубликовано 17 июля, 2015 · Жалоба Здравствуйте, К сожалению, в 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 (да и это может быть даже недостижимый предел), да еще и огород городить. конкретно здесь и сейчас влеплю аппаратный компаратор на плату. Но вопрос остается, хочу понять чего же можно с помощью АЦП достичь :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 17 июля, 2015 Опубликовано 17 июля, 2015 · Жалоба К сожалению, в STM32 компараторы заканчиваются на "RAM=80k"(STM32L151), А серию STM32F3xx не пропустили? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 17 июля, 2015 Опубликовано 17 июля, 2015 · Жалоба Другой подход- просто валить в RAM семплы через DMA и потом уже разбираться ручками. Но как-то много семплов получается, памяти не хватит. То есть нужно маленькое DMA-кольцо (точнее, два) и разбирать на лету с одним пока другое заполняется. Именно так - валить. А потом фильтровать. И только после считать частоту (с гистерезисом) если хотите получать более-менее верные значения. Почему не хватит? Вы собираетесь "валить" от включения устройства и до выключения? :smile3009: Тогда точно - не хватит. Но если обрабатывать периодически накопленный DMA буфер - нормально. Хотя гораздо лучше для такой задачи подходит DSP. Но даже для STM32 8кГц - не проблема. Даже непрерывным потоком, не говоря уже о кратковременном измерении. Фильтр только правда можно будет не сильно крутой сделать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 17 17 июля, 2015 Опубликовано 17 июля, 2015 · Жалоба А серию STM32F3xx не пропустили? У кого из имеющих компаратор есть больше чем 80к RAM на борту? Я проверил в Кубе- если выбираю чтоб был хоть 1 компаратор и сортирую оставшиеся по RAM, то сразу вижу максимум 80 килобайт ОЗУ. Хотя гораздо лучше для такой задачи подходит DSP. Но даже для STM32 8кГц - не проблема. Даже непрерывным потоком, не говоря уже о кратковременном измерении. Фильтр только правда можно будет не сильно крутой сделать. угу. ясно. DSP потому что компаратор нужен . у кого там из DSP набортного RAM много стало и аналоговые компараторы есть? :) Я, правда, на BF533 остановился, дальше и не применял ничего, может действительно глянуть чтобы понять что пропустил.... Но не сейчас, пожалуйста. Не готов я еще и ВижуалДСП вспоминать.... :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 17 июля, 2015 Опубликовано 17 июля, 2015 · Жалоба У кого из имеющих компаратор есть больше чем 80к RAM на борту? Действительно, нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 17 июля, 2015 Опубликовано 17 июля, 2015 · Жалоба угу. ясно. DSP потому что компаратор нужен . у кого там из DSP набортного RAM много стало и аналоговые компараторы есть? :) Компаратор в DSP - Ваш код. Хоть компаратор хоть что другое - ресурса производительности гораздо больше чем у M3. А зачем Вам много ОЗУ? Для описанной Вами задачи хватит 2-4 кБ. Но врочем если нужно - в семействе C55 (имхо - достаточном для Вашей задачи) до 320кБ внутренней. А можете даже что-нить типа TMS320C6747 впендюрить - почти полмегабайта внутренней ОЗУ. А уж на 450МГц на 1-тактной double плавучке как можно развернуться! Несколько десятка таких потоков по 8кГц можете параллельно обрабатывать ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 17 17 июля, 2015 Опубликовано 17 июля, 2015 · Жалоба Компаратор в DSP - Ваш код. Хоть компаратор хоть что другое - ресурса производительности гораздо больше чем у M3. А зачем Вам много ОЗУ? Для описанной Вами задачи хватит 2-4 кБ. Но врочем если нужно - в семействе C55 (имхо - достаточном для Вашей задачи) до 320кБ внутренней. А можете даже что-нить типа TMS320C6747 впендюрить - почти полмегабайта внутренней ОЗУ. А уж на 450МГц на 1-тактной double плавучке как можно развернуться! Несколько десятка таких потоков по 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 :) неэффективна мне эта ракетная техника. Все воробьи разбегутся пока я прицелюсь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 18 июля, 2015 Опубликовано 18 июля, 2015 · Жалоба Я понимаю, что аж целых два таймера и аж семь (или даже 8) конфигурируемых GPIO в 144-ногом корпусе - это звучит гордо, но я лучше тут с STM32 в песочнице поковыряюсь. пока что не готов я к DSP :). Как-то Вы странно смотрели... ни McBSP/McASP многоканальных не заметили к которым хоть гроздь АЦП хоть по SPI цепляй, ни прочей стандартной периферии не заметили.... Как бы они (DSP) вообще бы могли обрабатывать какие-то данные, если бы связи с внешним миром не имели бы?? Не задумывались? Ни C6745/47/48 в LQFP не заметили. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 17 18 июля, 2015 Опубликовано 18 июля, 2015 · Жалоба Как-то Вы странно смотрели... ни McBSP/McASP многоканальных не заметили к которым хоть гроздь АЦП хоть по SPI цепляй, ни прочей стандартной периферии не заметили.... Как бы они (DSP) вообще бы могли обрабатывать какие-то данные, если бы связи с внешним миром не имели бы?? Не задумывались? Ни C6745/47/48 в LQFP не заметили. Связи с внешним миром у них навалом, это понятно. Но убило наличие столь малого количества GPIO, не привязанных к интерфейсам. Я просто в Дижикее залез в раздел "Embedded - DSP (Digital Signal Processors)". В нем выбрал имеющиеся в наличии, имеющие 128к и более, не-BGA, и отсортировал по цене. Значит есть и достойные, просто они сильно дороже и более многоногие, я до них не досмотрел. Спасибо, буду знать, они таки есть более хорошие чем я думал. Но это действительно для более других задачь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 18 июля, 2015 Опубликовано 18 июля, 2015 · Жалоба Семейство C674x для Вашей задачи действительно - из пушки по воробьям. Хотя... если не трёт бюджет.... Хоть спектр в реальном времени считай. :-) Лучше всего было-бы С55х, но все новые чипы (C551x, C553x) там почему-то только в BGA. :( Только старые есть в LQFP. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться