#c #stm32 #stm32f4discovery
#c #stm32 #обнаружение stm32f4
Вопрос:
Мне нужно измерить частоту входного сигнала с помощью stm32f407-Discovery и отправлять его один раз в секунду. Частота контроллера составляет 168 МГц. Максимальная входная частота составляет 6 МГц. Если я использую EXTI, я могу измерить максимум 4 МГц. По мере увеличения частоты изменяющиеся значения больше похожи на шум. Хотя расчетная максимальная частота прерываний составляет приблизительно 13 МГц. Каков наилучший способ решения этой проблемы?
Комментарии:
1. Здесь задействованы две темы: 1) Не используйте EXIT . Это вызовет миллионы обработчиков прерываний в секунду. засорите свой MCU и ограничьте частоту. Вместо этого используйте счетчик с внешним триггером. Я думаю, что STM называет это таймером с внешними часами. 2) Достижение хорошего качества сигнала, вероятно, заслуживает отдельного вопроса. При более низкой частоте полезен триггер Шмитта. На более высоких частотах полезны другие измерения. Получение хороших результатов в широком диапазоне частот требует дополнительных умственных способностей.
Ответ №1:
Используйте этот сигнал в качестве сигнала блокировки для одного из таймеров.
Используйте другой таймер для запуска передачи DMA через регулярные промежутки времени. Изменение регистра CNT будет пропорционально частоте сигнала.
Остальное — очень простая математика.