Перейти к содержанию

Измерение частоты ESP32 (с помощью PCNT)


Рекомендуемые сообщения

Всем привет!

Измеряю частоту с помощью аппаратного модуля Pulse Counter (PCNT) ESP32. При измерении частоты генерируемой самой ESP32 (с помощью LEDC), всё идеально, показания измеренной частоты точь-в-точь как заданные. Но стоит подключить другой источник импульсов, как начинается небольшая пляска показаний (переодические завышения на несколько Герц, график во вложении). В качестве альтернативного источника сигнала ATMega8, которая генерирует квадратные импульсы с помощью аппаратного таймера.

  1. К источникам сигнала вопросов нет, так как при измерении мультиметром, показания в точности до 1 Герца равны заданным (и ESP32 и ATMega8 выдают точные значения частоты);
  2. К способу измерения тоже нет вопросов, так как импульсы генерируемые самой ESP32 замеряются с точностью до 1 Гц;
  3. Остаётся только вопрос к схематическому подключения внешнего источника частоты к ESP32.

Под спойлером находится схема, по которой я завожу сигнал с генератора частоты на ESP32. А так же графики измерения внутреннего и внешнего сигнала.

Подскажите пожалуйста, как мне нужно изменить схему, чтобы избавиться от шума? Или укажите где ещё я ошибаюсь...

Спойлер

5.jpg.e6f63ed0d838621f8c98dff662ce2cbf.jpg

6.jpg.400e4f95e1c1b38e8b3c6f0f15e5dc96.jpg

7.JPG.69e0c2fadb3c5159ac4a0f48689df1ad.JPG

 

Изменено пользователем -=FISHER=-

Мы все учились по-немногу, чему-нибудь и как-нибудь...

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Я бы не был так уверен в 1 и 2.

Какого порядка частоты вообще?

Как в ESP32 сделан отсчёт времени? 

В качестве источника импульсов лучше взять аппаратный генератор с кварцем. И делитель по необходимости.

Ссылка на комментарий
Поделиться на другие сайты

@-=FISHER=- , дело скорее всего в биениях частот. Посмотрите внимательнее алгоритм измерения частоты. Какая длительность окна счёта импульсов. Сколько туда попадает импульсов при измерении частоты 136 Гц. Какая получается погрешность при отсчёте с точностью ±1 импульс.

Ну и с входным формирователем вы что-то намудрили. Зачем полевику питание 12 В? И 10 кОм на +3,3 В это многовато. Фронты будут сильно завалены, верхняя частота сильно ограничена.
1213983253_.png.90340993bfcfd1cc927f13e0542de97b.png

Я бы заменил R4 хотя бы на 1 кОм, диод и R3  выкинул бы, и соединил бы сток полевика непосредственно с R4 и со входом контроллера. Заодно уровень нуля будет ниже, помехозащищённость выше.

Ссылка на комментарий
Поделиться на другие сайты

Аккумуляторы INR21700 от EVE Energy со стандартной и увеличенной емкостью

В Компэл представлены аккумуляторы 21700 с емкостями 4000 мА⋅ч и 5000 мА⋅ч (INR21700-40P и INR21700-50E, соответственно). Аккумуляторы INR21700-50E характеризуются повышенной емкостью и предназначены для  устройств с длительным сроком службы. Для приложений, где требуется экстремальный ток разряда до 30 или 50 А, подойдет аккумулятор INR21700-40P. Аккумуляторы INR21700 предназначены для  электротранспорта, а также для промышленных и бытовых приложений. Подробнее>>

 

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

9 минут назад, ChePay сказал:

Какого порядка частоты вообще?

Интересует точное измерение на отрезке 20 Гц - 400 Гц

9 минут назад, ChePay сказал:

Как в ESP32 сделан отсчёт времени? 

Промежутки времени для расчета частоты на основе программного таймера. 

 

5 минут назад, Lexter сказал:

Ну и с входным формирователем вы что-то намудрили. Зачем полевику питание 12 В?

Так как в конечном итоге измеряться будет сигнал именно 12 В.

 

5 минут назад, Lexter сказал:

И 10 кОм на +3,3 В это многовато.

Хорошо попробую сократить, но думаю основная проблема не в этом.

 

5 минут назад, Lexter сказал:

Я бы заменил R4 хотя бы на 1 кОм, диод и R3  выкинул бы

Они тут не случайно, выкинуть их нельзя...

5 минут назад, Lexter сказал:

Посмотрите внимательнее алгоритм измерения частоты.

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

6 минут назад, Lexter сказал:

Какая длительность окна счёта импульсов

250 мс

Изменено пользователем -=FISHER=-

Мы все учились по-немногу, чему-нибудь и как-нибудь...

Ссылка на комментарий
Поделиться на другие сайты

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

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

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

6 минут назад, -=FISHER=- сказал:

в конечном итоге измеряться будет сигнал именно 12 В.

Ну и при чём тут напряжение его питания? Уровень входного сигнала ограничен только максимально-допустимым напряжением "затвор-исток", указанным в даташите. Обычно это порядка ±20 В.

6 минут назад, -=FISHER=- сказал:

Они тут не случайно, выкинуть их нельзя.

А вот тут поподробнее, пожалуйста. Очень интересно послушать. Я люблю всякую чушь слушать. :D

Изменено пользователем Lexter
Ссылка на комментарий
Поделиться на другие сайты

Помехоподавляющие пленочные конденсаторы Hongfa для бытовых и промышленных сетей

Компания Hongfa - один из лидеров азиатского рынка пленочных конденсаторов с полным циклом производства. Она выпускает пять серий помехоподавляющих конденсаторов этого типа как для бытовой, так и для трехфазной промышленной сети, а также для автомобильного применения. Продукция компании по ассортименту, параметрам и количеству серий конденсаторов ЭМП не уступает другим крупным производителям этого сегмента и может легко заменить ассортимент ушедших из РФ брендов. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

1 минуту назад, Lexter сказал:

А вот тут поподробнее, пожалуйста. Очень интересно послушать.

Хорошо. Если в этой схеме убрать диод, то +12 В попадёт прямо на пин ESP.

Мы все учились по-немногу, чему-нибудь и как-нибудь...

Ссылка на комментарий
Поделиться на другие сайты

@-=FISHER=- Не надо выдёргивать из объяснений только то, что вам нравится. Читайте целиком. Сначала выбрасывается питание +12 В, потом диод. Нафиг тут не нужна вся эта тряхомудия. :D

Ссылка на комментарий
Поделиться на другие сайты

10 минут назад, Lexter сказал:

дело скорее всего в биениях частот

Биения частот по какой причине? Мой мультиметр очень быстро реагирует на изменения частоты, однако, показания не дёргаются даже на сотые доли Герца, когда я замеряю частоту которую формирует ATMega8. 

Только что, Lexter сказал:

Сначала выбрасывается питание +12 В

Я не могу выбросить к сожалению. Мне нужно измерять сигнал, напряжение которого +12 В.

Схема формирователя частоты, приведённая выше - тестовый стенд. Если что-то и можно в ней выкинуть, то в итоге отвалится всё, кроме сигнала, который нужно измерять, а его напряжение +12В.

Мы все учились по-немногу, чему-нибудь и как-нибудь...

Ссылка на комментарий
Поделиться на другие сайты

Только что, -=FISHER=- сказал:

Биения частот по какой причине?

По очень элементарной - генераторы не синхронны.

1 минуту назад, -=FISHER=- сказал:

мультиметр очень быстро реагирует на изменения частоты, однако, показания не дёргаются

У мультиметра другой алгоритм измерения частоты. Правильный, обеспечивающий заданную точность.

Напишите параметры своего алгоритма. Раз дёргается - значит скорее всего с ним что-то не так. Не надо искать под фонарём. Ищите там, где вероятно потеряли.

Ссылка на комментарий
Поделиться на другие сайты

3 минуты назад, Lexter сказал:

По очень элементарной - генераторы не синхронны.

Можете чуть подробнее обьяснить, что вы имеете в виду?

Мы все учились по-немногу, чему-нибудь и как-нибудь...

Ссылка на комментарий
Поделиться на другие сайты

Вот это:

1 час назад, -=FISHER=- сказал:

При измерении частоты генерируемой самой ESP32 (с помощью LEDC), всё идеально, показания измеренной частоты точь-в-точь как заданные. Но стоит подключить другой источник импульсов, как начинается небольшая пляска показаний

Когда оба генератора управляются от одного источника тактового сигнала (тактового генератора контроллера ESP32 ), - проблем нет. Все сигналы стоят относительно друг друга как вкопанные.
При разных тактовых генераторах (один в ESP32 , второй в "другом источнике импульсов") частоты несинхронны, в "окно" измерения импульсы могут попасть с разной начальной фазой, и количество импульсов, попавших в "окно" может отличаться на единицу.

Если "окно" слишком короткое, и попадает в него, например, то 10, то 9  импульсов, то "болтание" измеренной частоты будет порядка 10%.

Изменено пользователем Lexter
Ссылка на комментарий
Поделиться на другие сайты

Период для 20 Гц = 50 мС, для 400 Гц = 2,5 мС, период счета 250 мС. То есть при измерении 400 Гц получим 100 отсчетов, а это аж - 4 Гц  (1%) при рассинхроне. При измерении 20 Гц все еще плачевнее - 4 Гц будет соответствовать 20%. Явно нужно менять алгоритм измерения частоты!

Ссылка на комментарий
Поделиться на другие сайты

12 минут назад, Lexter сказал:

Если "окно" слишком короткое, и попадает в него, например, то 10, то 9  импульсов, то "болтание" измеренной частоты будет порядка 10%.

Спасибо.

 

4 минуты назад, korsaj сказал:

Явно нужно менять алгоритм измерения частоты!

Спасибо.

 

Тогда следующий вопрос, мне нужно реагировать на изменение частоты довольно быстро. Но я не представляю как это делать, если окно измерения будет допустим 1 секунда.

Вообще задача заключается в том, чтобы быстро среагировать, если частота превысит пороговое значение, которое задаётся в процессе работы. И может быть в диапазоне 20 - 400 Гц с шагом примерно в 15 Гц.

Мы все учились по-немногу, чему-нибудь и как-нибудь...

Ссылка на комментарий
Поделиться на другие сайты

Запустите таймер и пусть считает, по фронту сигнала запоминайте значение счетчика таймера, по следующему фронту получите новое значение и вычтите из него старое и так по кругу

Ссылка на комментарий
Поделиться на другие сайты

Может быть и не стоит писать полноценный тахометр, может бысть есть путь проще и точнее?

Мы все учились по-немногу, чему-нибудь и как-нибудь...

Ссылка на комментарий
Поделиться на другие сайты

Конечно - купить готовый - самый простой путь.

В современных мк есть захват по внешнему сигналу - самый точный метод измерения.

Ну и конечно ЕСП32 для тахометра - совсем малюсенький ПЕРЕБОРИЩЕ.

Ссылка на комментарий
Поделиться на другие сайты

20 минут назад, -=FISHER=- сказал:

нужно реагировать на изменение частоты довольно быстро.

Для измерения низких частот можно измерять длительность периода. Тактовая частота у вас высокая, так что вероятно точность измерения будет достаточной. А меньше периода измеряемой частоты сделать время её измерения теоретически невозможно.

Ну и поднять точность можно усреднением измерений. Со временем индикация измеренной частоты будет "устаканиваться".

Ссылка на комментарий
Поделиться на другие сайты

16 часов назад, korsaj сказал:

Конечно - купить готовый - самый простой путь.

Измерение частоты это только одна из множества функций моего устройства...

 

16 часов назад, korsaj сказал:

В современных мк есть захват по внешнему сигналу - самый точный метод измерения.

Разве это как раз не PCNT у ESP32 ?

 

16 часов назад, korsaj сказал:

Ну и конечно ЕСП32 для тахометра - совсем малюсенький ПЕРЕБОРИЩЕ.

Да согласен, даже для всего моего проекта это перебор, изначально я реализовал его на ESP8266. Я пользовался вот этой библиотекой, которая тоже считает количество прерываний за интервал времени. И она отлично работает, но есть так же некоторые всплески при измерении частоты. Поэтому, хотелось бы уточнить, можно ли напрямую заводить сигнал на пин МК (сигнал +12В)? Проблема не в этом?

9.jpg.9087577d537a6ffaf34f43ce54064599.jpg

 

Мы все учились по-немногу, чему-нибудь и как-нибудь...

Ссылка на комментарий
Поделиться на другие сайты

7 минут назад, -=FISHER=- сказал:

Разве это как раз не PCNT у ESP32 ?

Нет. Вы же PCNT используете как счетный вывод, а я говорю о захвате значения таймера по внешнему сигналу (фронту, спаду).

13 минут назад, -=FISHER=- сказал:

которая тоже считает количество прерываний за интервал времени.

Как раз не так. Она считает количество тиков между фронтами (либо спадами, как настроить).

15 минут назад, -=FISHER=- сказал:

хотелось бы уточнить, можно ли напрямую заводить сигнал на пин МК (сигнал +12В)? Проблема не в этом?

Нет, напрямую нельзя, только через ограничитель. И проблема точно не в этом.

Ссылка на комментарий
Поделиться на другие сайты

9 минут назад, korsaj сказал:

Она считает количество тиков между фронтами (либо спадами, как настроить).

Как вы считатете, такого подхода должно хватить для моих задач? Эта библиотека считает очень быстро.

 

17 часов назад, -=FISHER=- сказал:

Вообще задача заключается в том, чтобы быстро среагировать, если частота превысит пороговое значение, которое задаётся в процессе работы. И может быть в диапазоне 20 - 400 Гц с шагом примерно в 15 Гц.

 

Мы все учились по-немногу, чему-нибудь и как-нибудь...

Ссылка на комментарий
Поделиться на другие сайты

При условии что сигнал действительно меандр.

Я видел разное в авто и импульс и меандр и не совсем меандр.

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

Изменено пользователем korsaj
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • Это определяющее. Вероятность подделки в таких случаях стремится к нулю. У меня есть такой УНЧ. Схема аналогичная опубликованному Nem0. Пока не скажешь, что он класса D, звук всем нравится. Работает с Корветами 75АС001
    • По КПД однозначно рулят , поэтому если нужна большая  моща что бы ( просто и не за дорого) оглохнуть то класс D самое то. Особенно для клубов и шатров. Но о качестве звука тут речь не идёт.  Да оно и понятно. Слух человека притупляется очень быстро даже от негромкой музыки.   Собирал пару раз tda7294 другу. Выдернул из муз центров. Уже лет 8 прошло. Работают и звук таки очень не плохой ушами меломана .  Горят они обычно из за того что их лепят на радиатор через силиконовые прокладки (это дичь) ведь  в этих микрах нет термо датчиков есть гст и зеркола которые потдерживают ток покоя постоянным ... В итоге  получаем постоянный саморазогрев. Утюг по русски!  Я же садил через слюду и притягивал пластиной (по центру микры). Заводские петли не годятся для качественного крепления.  
    • Okcana_: “Выброси развлекательную литературу, типа Роговского, возьмись за учебники. ” Судя по тому как ты коверкаешь фамилию автора Раковского ты даже понятия не имеешь об этой книге. Если нет понимания, то тебе не помогут даже любые учебники...   Ты так и не ответила на конкретный вопрос: Чем отличается форма первого периода бурста от любого периода стационарного синуса? Ах да, в учебниках же нет ответа, потому ты и не знаешь что сказать...   Вот потому такие как ты и ухахатывались над Грэмом Мэйнардом (автор FCD) который предлагал косвенно оценивать качество усилителей по точности усиления первого периода а не по количеству нулей после запятой в Кг.
    • Ну он же явно вам показывает что это КТ816. Да и на фото я вижу КТ816, кроме двух. На торце это буквы. Вот подправил на фото, к сожалению зеленый цвет не могу написать ,как раз в этом месте в тетради чем то залито. Годы...сколько лет прошло.
    • @brainway У вас явно шлифованный корпус. На фото я постарался показать места, где это отлично видно. Следовательно - левак. Потому и сгорела. Если вам хочется посмотреть на разнообразие кристаллов, то вот ссылка. На любой вкус. Насколько я знаю, микросхем 72ХХ сейчас нет оригинальных. Есть только более-менее приближённые к ним. Следовательно, параметры мощности можно смело делить на два, на мой взгляд. И это ещё в лучшем случае. Кажущая простота УНЧ на этих микросхемах привлекает самодельщиков, но результат далеко не всегда положителен. Если уж на то пошло, проще и надёжнее собрать китайский кит MX50SE, который здесь и ругали и хвалили, но он хотя бы предсказуем и работает. Только надо обращать внимание на цоколёвку транзисторов 5551 при монтаже. Она бывает различается. И их надо правильно впаять. Эти микросхемы есть только в виде качественных копий, некачественных копий и подделок и тех и других плюс всевозможные шлифовки и даже просто пустые корпуса без кристаллов. Сейчас TDA2005 нормальную найти проблема. Удачи ...
×
×
  • Создать...