В описанной реализации мне не очень нравится формирование интервала измерения через число периодов Fin.
Это чем... интересно??? Предложите что получше... если что ещё из этого получится... в чём я очень сомневаюсь... Здесь мы заведомо имеем целое число полных периодов входного сигнала... и полностью хардварный старт/стоп... Хотя... я никому ничего не навязываю...
Цитата:
Пытался сделать через Output Compare (в начале интервала настраиваем на set, в конце - на clear), но пока ничего не получается.
Вот-вот...
_________________ "Я не даю готовых решений, я заставляю думать!"(С)
Хотелось бы реализовать это всё на STM32F100, а там нет 32-разрядного таймера.
Там есть прескалер. Коэффициент деления можно подстраивать под входную частоту. Например по периоду. можно выбрать всего несколько фиксировнных делителей. Например 1 - 20 - 400. Соответвует частотам до 64 кгц 1,2Мгц, 12 мГц. Оценить делитель можно за несколько миллисекунд. Отдельным таймером либо тем же самым. Все это о измеряемой частоте. Таймер, считающий опорный сигнал, работает аналогично так же как описал HHIMERA.
Каскадировать - это от бессилия. Зачем вообще нужны аппратные таймеры? Чтобы разгрузить процессор. Но даже если с тактовой частотой процессора будет работать 8-разрядный таймер, то нагрузка на процессор будет минимльная.
Не спорьте, господа!!! Кто хочет - каскадирует... кто не хочет - не каскадирует... полная анархия демократия... Тема "STM32 - частотомер.", можно сказать, раскрыта полностью... даже на уровне STM32F100C4... Пора браться за LPC1111/1114... для полного комплекта...
_________________ "Я не даю готовых решений, я заставляю думать!"(С)
А делать такие выводы - от невежества. Таймеры тут каскадируются включением внутренних связей, и сделано это специально для расширения возможностей, в т.ч. для получения почти полноценного 32-разрядного таймера
Gate достаточно делать для первого таймера в цепочке. В LowDensity ValueLine МК есть по крайней мере 6 таймеров, часть из которых вполне может каскадироваться
В том-то и дело... В low-density value line неразрывно каскадироваться могут только TIM1/2/3... из шести... всё!!! И каскадировать таймер для Gate просто нет никакого смысла... А ЛИ простительно... он честно признал, что в STM32 "не бум-бум"... Просто у него "ломка" от широких возможностей STM32... после Атмэла... ---------- Всё, как всегда... работает и на STM32F100... проверено... И Gate - один 16-бит таймер!!! И два 16-бит (как один 32-бит) на счётчик... естественно...
_________________ "Я не даю готовых решений, я заставляю думать!"(С)
Спасибо, HHIMERA за поддержку! STM32 - это какой-то заговор, целью которого является отсеять не очень умных радилюбителей, которые не могут в нем разобраться. Я прошу прощения за свои слова "гонит".
Плата STM32VLDISCOVERY STM32F100RBT6B@24MHz ... Метод Reciprocal Counter... По входу TIM2_CH1_ETR - 90MHz с точностью +-10Hz влёгкую!!! Без внешних навесов и соединений!!!
Дальнейшие изыскания, для себя, считаю бесполезными, ввиду пропадания интереса к данной теме...
_________________ "Я не даю готовых решений, я заставляю думать!"(С)
Зарегистрирован: Пн мар 17, 2014 10:37:29 Сообщений: 28
Рейтинг сообщения:0
Himera писал(а):
Так... информация для размышления...
Плата STM32VLDISCOVERY STM32F100RBT6B@24MHz ... Метод Reciprocal Counter... По входу TIM2_CH1_ETR - 90MHz с точностью +-10Hz влёгкую!!! Без внешних навесов и соединений!!!
Дальнейшие изыскания, для себя, считаю бесполезными, ввиду пропадания интереса к данной теме...
Зарегистрирован: Пн мар 17, 2014 10:37:29 Сообщений: 28
Рейтинг сообщения:0
У меня похожая задачка. Есть датчик - на выходе ЧМ сигнал (30..100кГц). За 1с нужно снять порядка 10'000..12'000 показаний. Период измерений 100 мкс. Контроллер STM32F4 168MHz. Подскажите как посчитать точность измерений, и можно ли ее повысить например с помощью внешнего тактирования таймера.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения