Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Re: STM32 - частотомер.

Ср ноя 28, 2012 17:55:14

HHIMERA писал(а):Для Reciprocal Counting понадобится PWM input mode, PWM mode/One-pulse mode (Gate) и Slave timer in Gated mode... никаких прерываний...

Что то не очень прозрачно.
PWM INPIT: Таймер тактируется опорным сигналом. На него на два входа захвата, настроенных на противоположные полярности, приходит измеряемый сигнал. В оригинале этот таймер настроен также на сброс по одному из уровней входного сигнала. Таким образом измеряется период сигнала и величина например положительной части периода.
PWM mode: Выходной сигнал генерируется с периодом, заданным регистром автозагрузки. Скважность определяется содержимым регистра захвата-сравнения.
One-pulse mode: Означает что таймер досчитывает до значения регистра автозагрузки и останавливается.
Slave timer in Gated mode: Означает, что тот таймер что делает PWM может включать и выключать второй таймер, который считает входной сигнал.

Один таймер будет просто считать входные импульсы, второй таймер захватит фронт первого импульса сигнала в gate, третий таймер захватит последний фронт (первый фронт после окончания gate) а четвертый таймер будет формировать этот самый gate с помощью PWM для первых двух таймеров в положительной полярности а для последнего в отрицательной. Правильно?
Первый таймер будет показывать количесво периодов входного сигнала за интервал gate.
Второй таймер в регистре захвата будет содержать время фронта первого импульса сигнала. Третий таймер в регистре захвата будет содержать время последнего, не посчитанного по причине окнчания gate фронта входного сигнала. Разница захватов второго и третьего таймеров даст точное время между первым и последним фронтом входного сигнала в периодах опорного сигнала. Количество периодов сигнала нужно будет увеличить на 1, поскольку последний период не посчитался. Все данные для подстановки в формулу есть.
Теперь как сделать таким образом, что бы один таймер управлят сразу тремя? Внешние соединения?

Re: STM32 - частотомер.

Ср ноя 28, 2012 18:23:11

Не... так никаких таймеров не хватит...
Да и не все таймера, что надо помнить, могут в цепочку выстраиваться...

Re: STM32 - частотомер.

Ср ноя 28, 2012 18:30:03

Galizin писал(а):как сделать таким образом, что бы один таймер управлят сразу тремя?


Вот и я думаю ,что никак. HHIMERA гонит, не разобравшись в вопросе.

Re: STM32 - частотомер.

Ср ноя 28, 2012 18:42:08

Танунах!!! :)))
Леонид Иванович... ну от вас я этого не ожидал!!! :)))
Спорить "гоню" я или "не гоню" может только компетентный в STM32 человек... и это, увы, не Вы!!!
Так, что... сами Вы гоните... беспросветно!!! :)))

P.S: За "вброс говна на вентилятор" - отдельное спасибо!!! :)))

Re: STM32 - частотомер.

Ср ноя 28, 2012 19:07:38

Galizin писал(а):
HHIMERA писал(а):Для Reciprocal Counting понадобится PWM input mode, PWM mode/One-pulse mode (Gate) и Slave timer in Gated mode... никаких прерываний...

Что то не очень прозрачно.

Всё прозрачно...
Или PWM mode... или One-pulse mode... или-или... зависит от реализации... (Gate)...
Один 32-ух разрядный таймер и два 16-ти разрядных(как один 32-ух разрядный)... всё !!!
На 1хх можно попытаться обойтись тремя 16-ти разрядными... но не уверен...
Вся остальная тягомотина, с бОльшим количеством таймеров, просто лишена смысла... хотя... и имеет право на жизнь...

P.S: Вы мне ещё попробуйте доказать, для смеха, что непрерывный 9-ти битный SPI на PIC24F и STM32F1xx невозможен (хотя по даташиту, действительно, только 8 и 16bit)... :)))

Re: STM32 - частотомер.

Ср ноя 28, 2012 20:42:23

HHIMERA писал(а):У этих есть один 32bit таймер... другой можно набрать из двух других...

И налететь на те же грабли, что и в
http://we.easyelectronics.ru/STM32/chas ... mment87310
Из-за "плавания" опорного кварца "плавают" младшие разряды. Оно тебе надо?

Леонид Иванович писал(а):Если нет желания что-то изучать, то никто Вас не заставит. А я себе частотмер уже сделал, нет повода дальше заниматься этой проблемой. http://www.youtube.com/watch?v=VNKCnef-ynU

И слава богу, что никто не заставит. А то ведь кое-кто (не буду показывать пальцем :) ) уже "изучил". В результате "за базар не отвечает", но пальцы по-прежнему раздвигает. Халява не прокатила :). Но до кой-кого это до сих пор не дошло :(.
Насчет "уже сделал частотмер": я себе в 1984-1985 частотомер на 176 серии сделал. До сих пор живой. А в позапрошлом году - еще 2 на PIC-ах. Они там правда бонусом идут, основное там - мерять L,C. Почему и повторялись неоднократно. Догоняйте со своим "уже" :). И этой проблемой не занимайтесь - результат предсказуем. По этим самым "частотмеру" и распальцовке про "современные технологии". Зато дарю бесплатно рекламную идею: "не знаете как из конфетки какашку сделать - обращайтесь! Результат гарантируется!" И ссылочку на этот "частотмер" приложить. Принципиальной схемы вполне хватит. Она же с "изюминками" :).

2All:
Ну задачу для себя хотя бы определите. Даю вводную: у легко покупаемых кварцев стабильность +- 30 ppm. Дальше продолжать?

Re: STM32 - частотомер.

Ср ноя 28, 2012 22:01:53

HHIMERA писал(а):Спорить "гоню" я или "не гоню" может только компетентный в STM32 человек... и это, увы, не Вы!!!


Все равно ничего не выйдет. Здесь два таймера должны работать от общего гейта. Без внешней логики не обойтись.

SergeBS писал(а):я себе в 1984-1985 частотомер на 176 серии сделал. До сих пор живой. А в позапрошлом году - еще 2 на PIC-ах.


Не сомневаюсь, что все частотомеры, которые Вы делали, примитивны и используют метод прямого счета.

Re: STM32 - частотомер.

Чт ноя 29, 2012 08:21:31

Леонид Иванович писал(а):
SergeBS писал(а):я себе в 1984-1985 частотомер на 176 серии сделал. До сих пор живой. А в позапрошлом году - еще 2 на PIC-ах.


Не сомневаюсь, что все частотомеры, которые Вы делали, примитивны и используют метод прямого счета.

"Телепат". Этот частотомер еще и период меряет. Я и тогда знал, когда частоту, а когда период мерять надо. :)

HHIMERA писал(а):Может и на STM32F1xx найдётся решение... сильно не вникал...

AN2592
Application note
How to achieve 32-bit timer resolution using the link system in STM32F10x microcontrollers
(Пример использования 2-х 16-разрядных таймеров как один 32-разрядный)

Re: STM32 - частотомер.

Чт ноя 29, 2012 09:05:52

Леонид Иванович писал(а):Все равно ничего не выйдет. Здесь два таймера должны работать от общего гейта. Без внешней логики не обойтись.

Таймер может работать от внешнего гейта. Так что нужно только правильно соединить снаружи выход PWM и вход гейта.

Я описал как это можно сделать на 4 таймерах. Это stm32 может себе позволить. Я буду признателен, если Химера поделится, как это сделать на 2 таймерах. А то я уж и так и так прикидывал - не получается. Уж умираю от любопытства.

Re: STM32 - частотомер.

Чт ноя 29, 2012 14:20:36

SergeBS писал(а):Этот частотомер еще и период меряет. Я и тогда знал, когда частоту, а когда период мерять надо. :)


Вот я и говорю, что примитивный, раз ручками режимы переключать надо было. Да еще потом на калькуляторе период в частоту переводить. В моем частотомере точность не зависит от частоты, ничего переключать не надо. К тому же, у него разрешение еще как минимум в 20 раз выше благодаря интерполятору. Да что тут спорить? Так строятся все современные частотомеры. Весь мир к этому пришел, кроме консервативных радиолюбителей.

Galizin писал(а):Таймер может работать от внешнего гейта.


А разве можно без внешней логики сделать так, чтобы сигнал гейта разрешал захват, а не счет таймера?

Кстати, гейт в данном частотомере не нужно формировать прецизионно, можно сформировать программно на любом порту, пользуясь системным таймером, например.

Re: STM32 - частотомер.

Чт ноя 29, 2012 14:55:52

Леонид Иванович писал(а):В моем частотомере точность не зависит от частоты, ничего переключать не надо.

А причём здесь Ваш допотопный частотомер с ограниченными функциями??? :))
Тема про "STM32 - частотомер"... если Вы ещё не забыли...
А разве можно без внешней логики сделать так, чтобы сигнал гейта разрешал захват, а не счет таймера?

Кстати, гейт в данном частотомере не нужно формировать прецизионно, можно сформировать программно на любом порту, пользуясь системным таймером, например.

:facepalm:
"И эти люди мне запрещают ковыряться в носу!" (С)

Re: STM32 - частотомер.

Чт ноя 29, 2012 15:00:59

Galizin писал(а): Я буду признателен, если Химера поделится, как это сделать на 2 таймерах. А то я уж и так и так прикидывал - не получается. Уж умираю от любопытства.

Уже всё написал...
HHIMERA писал(а):Для Reciprocal Counting понадобится PWM input mode, PWM mode/One-pulse mode (Gate) и Slave timer in Gated mode... никаких прерываний...

Думайте, пробуйте...

Re: STM32 - частотомер.

Чт ноя 29, 2012 15:43:50

HHIMERA писал(а):"И эти люди мне запрещают ковыряться в носу!" (С)
Где то я уже видел твои жалобы по этому поводу.....
Смотри ато проковыряеш до дыр.....

Re: STM32 - частотомер.

Чт ноя 29, 2012 15:57:58

Спасыба, "дарагой"!!! :)))
Иди... слушай лекции SWG "О вреде СИ и пользе Паскаля", "Нет такой задачи для одного STM32, которую нельзя было бы сделать на 20-ти PIC'ах или на 30-ти AVR'ах" и "Mein Kampf - РОБОТ"...
:)))

Re: STM32 - частотомер.

Чт ноя 29, 2012 17:13:52

HHIMERA писал(а):Уже всё написал...


Понятно. Получается, Вы тоже не знаете, как реализовать этот метод измерения частоты на STM32. Иначе разложили бы всё по полочкам. А так только общие слова и самоуверенность в речах.

Re: STM32 - частотомер.

Чт ноя 29, 2012 17:17:38

Леонид Иванович писал(а):
HHIMERA писал(а):Уже всё написал...


Понятно. Получается, Вы тоже не знаете, как реализовать этот метод измерения частоты на STM32. Иначе разложили бы всё по полочкам. А так только общие слова и самоуверенность в речах.

Знаю... и уже сказал как... "на 99% получится"...
А вот проверять в железе... пока желания нет... как, похоже, и у остальных... мне, ведь, частотомер не нужен...

Re: STM32 - частотомер.

Чт ноя 29, 2012 20:01:51

Из-за "плавания" опорного кварца "плавают" младшие разряды. Оно тебе надо?
накопление и усреднение никто не отменял

Re: STM32 - частотомер.

Чт ноя 29, 2012 20:21:50

HHIMERA писал(а):
Леонид Иванович писал(а):Понятно. Получается, Вы тоже не знаете, как реализовать этот метод измерения частоты на STM32. Иначе разложили бы всё по полочкам. А так только общие слова и самоуверенность в речах.

Знаю... и уже сказал как... "на 99% получится"...
А вот проверять в железе... пока желания нет... как, похоже, и у остальных... мне, ведь, частотомер не нужен...

Не бери в голову. "Крютой" опять пальцы раздвигает. С рекламой своего "супер-пупер частотомера" и своих "супер-пупер крютых способов". Один раз огреб за шведскую рекламку - видимо мало. Мазохист или тролль... Забить на это - самое правильное... Не лечится...

Re: STM32 - частотомер.

Чт ноя 29, 2012 20:25:22

polyname писал(а):
Из-за "плавания" опорного кварца "плавают" младшие разряды. Оно тебе надо?
накопление и усреднение никто не отменял

Систематическую ошибку тоже. Если уж глубже копать захотелось :)

Re: STM32 - частотомер.

Чт ноя 29, 2012 21:45:37

SergeBS писал(а):С рекламой своего "супер-пупер частотомера" и своих "супер-пупер крютых способов".


Способ крутой, но он разработан не мной, а известен уже много лет. Моя лишь реализация. Плохая или хорошая - решайте сами. Все схемы, платы, прошивки и даже исходники - в открытом доступе. Реализация этого способа на STM32 с минимальными затратами - очень интересная тема, причем она не является здесь офтопиком.
Ответить