1 (05-04-2026 15:57:06 отредактировано remont12.24rzn)

Тема: Определение частоты (длительности периода)

Требуется определять частоту вращения вала турбокомперсора, на выходе с датчика оборотов  меандр  5В и   при 120т.об/мин  3500Гц со скважностью 50%.
  При 120т об/мин  частота  с датчика 3500Гц это 286мкс.   
ЭБУ может определять частоту и скважность  сигнала  до 40 кГц с разрешением  16 BIT - 26 мкс,   периодом до 1.3 сек,  при разрешении 21 мкс шаг измерения  будет составлять около 8000 об/мин  на максимальных оборотах 120т., это очень грубо,  нужна более высокая точность.

  У CANNY  заявлено измерение ширины периода  с шагом 1мкс, что меня в принципе  устраивает,  значит можно измерить частоту, масштабировать ее и передать при помощи заполнения генератора ШИМ,

Попробовал    вариант диаграммы  измерения частоты предложенной тут , https://forum.canny.ru/viewtopic.php?id=826, добавил генератор ШИМ , и блок масштабирования,  подключил осциллограф и генератор импульсов для проверки, на выходе должен получится сигнал с шагом 1мс или 1000 об\мин,  в итоге при   входных 280Гц частота определяется  и масштабируется более менее точно,  и на выходе ровный сигнал, если  больше 280 Гц на входе,   начинаются скачки выходной частоты и скважности.


.

Вложений в сообщении

Иконка вложения rmp.cfd 5.86 кб, скачивался 9 раз, последний раз 2026-04-05 

2

Re: Определение частоты (длительности периода)

См.п."особенности" здесь: https://canny.ru/docs/fbd/timers_genera … generator/
См.п.9 здесь: https://canny.ru/docs/tips_tricks/solut … ents_tips/
См.приложенную диаграмму

Вложений в сообщении

Иконка вложения c3t_rmp_Rev_A.cfd 5.98 кб, скачивался 8 раз, последний раз 2026-04-06 

3

Re: Определение частоты (длительности периода)

Константин, CANNY пишет:

См.п."особенности" здесь: https://canny.ru/docs/fbd/timers_genera … generator/
См.п.9 здесь: https://canny.ru/docs/tips_tricks/solut … ents_tips/
См.приложенную диаграмму

Спасибо за подсказку!
Опробовал вашу диаграмму, скачки и сбои пропали, но  есть особенность, до 1250 Гц точность  заполнения выходного сигнала +- 1мс,    приближаясь к 3500 Гц,   заполнение плавает +- 10мс, что равно 12000 об\мин.

4 (07-04-2026 12:59:13 отредактировано Денис, CANNY)

Re: Определение частоты (длительности периода)

Вы взяли за основу мой пример. В данном примере, для упрощения вычислений было заложено некоторое загрубление, в следствие чего значение измеренной ширины импульса бралось в расчет с точностью не 1 микросекунда, а 32 микросекунды.
Вы могли бы исследовать алгоритм расчета в симуляторе ( https://canny.ru/docs/cannylab/simulator/ ) и изменить его в соответствии с условиями вашей задачи. Например так, как на приложенной ниже диаграмме.

Вложений в сообщении

Иконка вложения c3t_rmp_Rev_B.cfd 5.89 кб, скачивался 6 раз, последний раз 2026-04-07 

5

Re: Определение частоты (длительности периода)

Денис, CANNY пишет:

Вы взяли за основу мой пример. В данном примере, для упрощения вычислений было заложено некоторое загрубление, в следствие чего значение измеренной ширины импульса бралось в расчет с точностью не 1 микросекунда, а 32 микросекунды.
Вы могли бы исследовать алгоритм расчета в симуляторе ( https://canny.ru/docs/cannylab/simulator/ ) и изменить его в соответствии с условиями вашей задачи. Например так, как на приложенной ниже диаграмме.

Да, я не учел сдвиг результата измерения ширины периода на 5 бит или каждые 32 мкс.
С последним вариантом тоже самое +-10мс на выходе.  Может  это погрешность измерения ширины периода на частоте выше 1500Гц?

6

Re: Определение частоты (длительности периода)

Для интереса вообще исключил все блоки, оставил только регистры, задал на генераторе импульсов 300 мкс, на выходе получилось то же самое +-10 мс погрешность. Значит регистр измерения ширины импульса, при ширине 300 мкс, имеет погрешность измерения -+30 мкс.
Для чистоты эксперимента проверил сам генератор тем же осциллографом, при 300 мкс погрешность +- 1мкс.

Вложений в сообщении

Иконка вложения test2.cfd 1.02 кб, скачивался 4 раз, последний раз 2026-04-07 

7

Re: Определение частоты (длительности периода)

Я бы сэкономил вам немало времени, если бы не упустил самое первое предложение вашего поста, а именно:

remont12.24rzn пишет:

Требуется определять частоту вращения вала турбокомперсора, на выходе с датчика оборотов  меандр  5В и   при 120т.об/мин  3500Гц

Несмотря на разрешение в 1 мкс при измерении контроллером ширины импульса, погрешность измерения может в некоторых случаях достигать десятков микросекунд. Если позволяет задача, то для усреднения измеренных значений можно применить программную фильтрацию в диаграмме. Тем не менее, для частот свыше 1 кГц применять данный режим в принципе не рекомендуется.

Для измерения более высоких частот в некоторых моделях контроллеров реализован Драйвер высокочастотного счетчика. Например: https://canny.ru/docs/c72gamma/hsc/

Есть он и на 6 канале контроллера CANNY 3 Tiny, его можно увидеть в списке доступных регистров текущей версии CannyLab. Однако, информация об этом пока не попала в документацию, исправим. В вашем случае можно попытаться реализовать измерение частоты с его помощью.

8 (08-04-2026 11:43:14 отредактировано remont12.24rzn)

Re: Определение частоты (длительности периода)

Константин, CANNY пишет:

Есть он и на 6 канале контроллера CANNY 3 Tiny, его можно увидеть в списке доступных регистров текущей версии CannyLab. Однако, информация об этом пока не попала в документацию, исправим. В вашем случае можно попытаться реализовать измерение частоты с его помощью.

В версии CannyLab v.2.24 я не нашел регистр включения ВЧ счетчика для канала №6, можно выбрать  только включение активного режима счетчика передних или задних фронтов.   
Но  регистр результатов ВЧ счетчика канала №6 есть, только как его включить?

9

Re: Определение частоты (длительности периода)

remont12.24rzn пишет:

Но  регистр результатов ВЧ счетчика канала №6 есть, только как его включить?

Этот счетчик включен постоянно.

Прилагаю пример реализации вашего преобразователя с использованием Драйвера высокочастотного счетчика.
На данный момент, для данной модели контроллера, я не вижу способа для дальнейшего улучшения результата преобразования в вашей задаче.

Вложений в сообщении

Иконка вложения c3t_rmp_hsc.cfd 4.12 кб, скачивался 5 раз, последний раз 2026-04-08 

10

Re: Определение частоты (длительности периода)

Константин, CANNY пишет:
remont12.24rzn пишет:

Но  регистр результатов ВЧ счетчика канала №6 есть, только как его включить?

Этот счетчик включен постоянно.

Прилагаю пример реализации вашего преобразователя с использованием Драйвера высокочастотного счетчика.
На данный момент, для данной модели контроллера, я не вижу способа для дальнейшего улучшения результата преобразования в вашей задаче.

Большое спасибо за помощь!
Данный вариант меня в принципе  устраивает, но конечно хотелось бы немного повыше  точность)  Получилось +-0.5мс на выходе, что равно 60Гц на входе или 1000 об/мин,  что примечательно погрешность не зависит от входной частоты, что на 35гц что на 3500гц,  выход пляшет -+ 0.5мс.
Это видимо связано не с точностью ВЧ счётчика 6 канала, а с чем то другим.