Например TDA7294

Форум РадиоКот • Просмотр темы - STM32 - частотомер.
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 23, 2024 12:22:09

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 144 ]  1, , , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: STM32 - частотомер.
СообщениеДобавлено: Сб июл 14, 2012 22:19:51 
Первый раз сказал Мяу!

Зарегистрирован: Вс дек 19, 2010 23:10:20
Сообщений: 21
Рейтинг сообщения: 0
Вообщем решил сделать что то типа частотомера.
1. Возможно ли более рациональное использование процессорного времени, нежели считать кол-во импульсов на 1 из входов, а раз в 1 сек делать прерывание и в этом прирывании считать кол-во импульсов?
2. Или возможно организовать заполнения таймеров импульсами, не забирая процессорного времени вообще и раз в 1 сек делать прирывание и считать частоту?
3. Или прерываниями инкрименировать кол-во импульсов (забирая немножко проц времени на прирывания) и так же рав 1 сек делать второе прирывание и считать частоту?

1 и 3 вариант я знаю точно можно реализовать, а вот второй возможно???

Заранее всем спасибо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - частотомер.
СообщениеДобавлено: Сб июл 14, 2012 22:37:15 
Друг Кота
Аватар пользователя

Карма: 82
Рейтинг сообщений: 1027
Зарегистрирован: Сб апр 02, 2011 12:40:46
Сообщений: 4779
Откуда: Минск
Рейтинг сообщения: 0
Для измерения частоты нужно использовать вход захвата. Разница захваченных значений (с учетом количества переполнений таймера, конечно) даст число импульсов заполнения. А число входных импульсов можно считать или в прерывании по захвату (но это сразу накладывает ограничение на измеряемую частоту), или считать их другим таймером (но я не знаю, есть ли такая возможность в STM32). Искомая частота = тактовая частота таймера * количество входных импульсов / количество импульсов заполнения.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - частотомер.
СообщениеДобавлено: Сб июл 14, 2012 22:58:56 
Первый раз сказал Мяу!

Зарегистрирован: Вс дек 19, 2010 23:10:20
Сообщений: 21
Рейтинг сообщения: 0
мне не алгоритм сам интересует, мне интересует реализация аппаратно. То есть возможности стм32 контроллеров, наиболее оптимизированные решения. Ведь если по прирываниям считать кол-во импульсов - то это уже затрат 2-3 такта*частоту MIPSов, а если есть возможность оптимизировать, то я её и хочу узнать. А алгоритм как вычислять - я знаю.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: STM32 - частотомер.
СообщениеДобавлено: Сб июл 14, 2012 23:37:31 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Цитата:
А алгоритм как вычислять - я знаю.
Странные какие-то вопросы тогда задаёте.
Открывайте документацию на Ваш контроллер и смотрите какой периферией он богат. Затем выбирайте любой подходящий вариант, который Вы знаете, и пишите программу.


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32 - частотомер.
СообщениеДобавлено: Вс июл 15, 2012 00:04:56 
Первый раз сказал Мяу!

Зарегистрирован: Вс дек 19, 2010 23:10:20
Сообщений: 21
Рейтинг сообщения: 0
я могу это и без преферии решить как в 1 варианте. Но это не рационально, вот я и спрашую знающих этот МК хорошо, может там есть какието особенности префирии, чтобы написать оптимальный код. А я просто не нашел их.


Последний раз редактировалось Аlex Вс июл 15, 2012 00:28:29, всего редактировалось 1 раз.
-


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32 - частотомер.
СообщениеДобавлено: Вс июл 15, 2012 01:03:42 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Вт окт 27, 2009 22:39:19
Сообщений: 672
Откуда: Москва
Рейтинг сообщения: 0
У STM есть приятная особенность. Описана в пункте PWM input mode.
Позволяет сразу измерить и период и длительность импульса.
Поддерживается всеми таймерами имеющими входы.

Поэтому оптимальный код будет - настроить таймер на PWM Input и по прерыванию "тупо" считывать измеренные значения...

Советую по внимательней изучить ту часть reference manual, которая таймеры описывает...
В STM много наворотили в режимах таймеров.

_________________
— Не говорите мне что делать и я не скажу куда Вам идти...


Последний раз редактировалось md5sum Вс июл 15, 2012 01:12:45, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - частотомер.
СообщениеДобавлено: Вс июл 15, 2012 01:10:30 
Первый раз сказал Мяу!

Зарегистрирован: Вс дек 19, 2010 23:10:20
Сообщений: 21
Рейтинг сообщения: 0
ну я почти что через неё сделал.

Код:
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
  TIM_SelectInputTrigger(TIM2, TIM_TS_ETRF);
  TIM_SelectMasterSlaveMode(TIM2, TIM_MasterSlaveMode_Enable);
  TIM_SelectSlaveMode(TIM2, TIM_SlaveMode_External1);
  TIM_SetCounter(TIM2, 0);
  TIM_Cmd(TIM2, ENABLE);


в итоге у меня получается что при каждом нажатии на кнопку возрастает счетчик таймера)) не тратя такты на обработку этих событий)))

Ага с таймерами тут что то ужасное))) но если разобраться - то таймеры будут простые и многофункциональные как я уже понимаю, и можно будет делать многопоточные задачи)))

ЗЫ а какой ресурс записи/стирания STM32 контроллеров? а то что то нигде не встречал.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - частотомер.
СообщениеДобавлено: Вс июл 15, 2012 01:17:17 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Вт окт 27, 2009 22:39:19
Сообщений: 672
Откуда: Москва
Рейтинг сообщения: 0
PWM Input - немного другое....
Таймер начинает счет по фронту входного импульса, по спаду сохраняется один счетчик, а по следующему фронту - второй. Итого за один период сигнала получаем сразу значение длительности импульса (в тиках таймера) и периода.

Перевести "тики" в частоту или время не составит проблем.

_________________
— Не говорите мне что делать и я не скажу куда Вам идти...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - частотомер.
СообщениеДобавлено: Вс июл 15, 2012 01:27:17 
Первый раз сказал Мяу!

Зарегистрирован: Вс дек 19, 2010 23:10:20
Сообщений: 21
Рейтинг сообщения: 0
Я легких путей не исчу) все делаю через ж...)) пока что мне продолжительность импульса не интересует, так что думаю мой вариант, тоже имеет смысл на жизнь.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - частотомер.
СообщениеДобавлено: Вс июл 15, 2012 09:11:58 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Вт окт 27, 2009 22:39:19
Сообщений: 672
Откуда: Москва
Рейтинг сообщения: 0
wiskas писал(а):
ЗЫ а какой ресурс записи/стирания STM32 контроллеров? а то что то нигде не встречал.


В даташите: "Operating conditions -> Flash memory endurance and data retention -> 10 kcycles"

_________________
— Не говорите мне что делать и я не скажу куда Вам идти...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - частотомер.
СообщениеДобавлено: Вс июл 15, 2012 13:36:14 
Открыл глаза

Зарегистрирован: Пт апр 24, 2009 11:25:34
Сообщений: 71
Откуда: Rus
Рейтинг сообщения: 0
Я тоже задавался вопросом создания частотомера на stm32, настроил 2 таймера для подсчета импульсов по входу ETR одного таймера, а другой каскадно за ним. Получился 32битный счетчик накопитель. Период счета задавался 3 таймером.
Результат не очень, даже при отключенной фильтрации частота входная не может быть большой, чем выше тем больше врет уменьшая значение. на дискавери при подаче 24МГц (тактовая на stm32f100rb тоже 24Мгц) Показания за счет 1 сек скакал от 3200-3400, явно сказывалась проблема синхронизации входа по тактовой.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - частотомер.
СообщениеДобавлено: Пн июл 16, 2012 10:44:06 
Друг Кота
Аватар пользователя

Карма: 82
Рейтинг сообщений: 1027
Зарегистрирован: Сб апр 02, 2011 12:40:46
Сообщений: 4779
Откуда: Минск
Рейтинг сообщения: 2
wiskas писал(а):
А алгоритм как вычислять - я знаю.


Нет. Всё, что Вы описываете, относится к методу прямого счета - самому примитивному методу измерения частоты. На низких частотах такой метод дает большую погрешность. А микроконтроллер как раз и позволит измерять только низкие частоты. Поэтому нужно использовать метод обратного счета (Reciprocal Counting), для этого понадобится использовать захват значения таймера и подсчет количества импульсов. Далее по формуле, которую я приводил выше. Погрешность этого метода не зависит от частоты. Немного по теме есть здесь: viewtopic.php?f=10&t=65025


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - частотомер.
СообщениеДобавлено: Пн июл 16, 2012 11:43:49 
Мучитель микросхем

Карма: 4
Рейтинг сообщений: 9
Зарегистрирован: Пт июн 12, 2009 19:17:35
Сообщений: 487
Рейтинг сообщения: 0
Цитата:
Период счета задавался 3 таймером
а захват использовался аппаратный или программный ? если аппаратный - то странно что врет, на 24МГц до 12МГц можно мерять точно.
И почему бы не использовать накопление ? 3й таймер пусть работает с частотой 10Гц, счетные таймеры пусть считают непрерывно. При захвате по 3му таймеру сравнивается количество импульсов с предыдущим захватом. Если не сильно изменилось - можно суммировать с предыдущими отсчетами, таким образом получаем и быстрый результат, и постепенное увеличение точности измерения.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - частотомер.
СообщениеДобавлено: Пн июл 16, 2012 12:02:30 
Открыл глаза

Зарегистрирован: Пт апр 24, 2009 11:25:34
Сообщений: 71
Откуда: Rus
Рейтинг сообщения: 0
Нет никакого захвата, по прерыванию 3 таймера включается и выключается 2таймер. По идее да, до 12Мгц должен, но есть какая то загвоздка с проходом импульсов на таймер.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - частотомер.
СообщениеДобавлено: Пн июл 16, 2012 12:41:08 
Друг Кота
Аватар пользователя

Карма: 82
Рейтинг сообщений: 1027
Зарегистрирован: Сб апр 02, 2011 12:40:46
Сообщений: 4779
Откуда: Минск
Рейтинг сообщения: 0
makser писал(а):
Нет никакого захвата, по прерыванию 3 таймера включается и выключается 2таймер.


Мрак мрачный. Так Вы никогда точности не получите. Хотя бы из-за непостоянного значения interrupt latency. А если обработка прерывания будет задержана другим прерыванием? Используйте аппаратный захват и метод обратного счета.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - частотомер.
СообщениеДобавлено: Пн июл 16, 2012 12:43:28 
Мучитель микросхем

Карма: 4
Рейтинг сообщений: 9
Зарегистрирован: Пт июн 12, 2009 19:17:35
Сообщений: 487
Рейтинг сообщения: 0
так там вроде бы есть аппаратное управление таймера таймером


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - частотомер.
СообщениеДобавлено: Пн июл 16, 2012 13:28:31 
Друг Кота
Аватар пользователя

Карма: 82
Рейтинг сообщений: 1027
Зарегистрирован: Сб апр 02, 2011 12:40:46
Сообщений: 4779
Откуда: Минск
Рейтинг сообщения: 0
Возможно, что есть. Я STM32 совсем не знаю. Но, во-первых, тогда это делается не в прерывании, а во-вторых, это остается все тот же примитивный метод прямого счета.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - частотомер.
СообщениеДобавлено: Пн июл 16, 2012 13:56:04 
Мучитель микросхем

Карма: 4
Рейтинг сообщений: 9
Зарегистрирован: Пт июн 12, 2009 19:17:35
Сообщений: 487
Рейтинг сообщения: 0
Для косвенного счета можно вывести опорную 12МГц, и подать оба входа через И/ИЛИ элемент на вход таймера ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - частотомер.
СообщениеДобавлено: Пн июл 16, 2012 14:17:55 
Друг Кота
Аватар пользователя

Карма: 82
Рейтинг сообщений: 1027
Зарегистрирован: Сб апр 02, 2011 12:40:46
Сообщений: 4779
Откуда: Минск
Рейтинг сообщения: 0
Зачем? Пусть таймер работает на своей частоте, а по фронту входных импульсов производится захват.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - частотомер.
СообщениеДобавлено: Пн июл 16, 2012 14:21:59 
Мучитель микросхем

Карма: 4
Рейтинг сообщений: 9
Зарегистрирован: Пт июн 12, 2009 19:17:35
Сообщений: 487
Рейтинг сообщения: 0
Понятно. Я портирую проект известного LCF-метра на STM32 http://www.cqham.ru/lcmeter3.htm , заодно хочу прикрутить DDS-генератор на ЦАПе. Плюс управление по RS232. Посмотрим что получится...


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 144 ]  1, , , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y