Например TDA7294

Форум РадиоКот • Просмотр темы - Частотомер на PIC (PIC16F628A)
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт апр 18, 2024 08:31:31

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


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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Частотомер на PIC (PIC16F628A)
СообщениеДобавлено: Вс июл 18, 2021 11:21:17 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 296
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1220
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Дежавю 8) : Частотомер на PIC, в случае: на PIC16F628A, XTAL = 4 MHz, CCS, PIC-C Compiler.
Рядом со мной не менее 5 частотомеров :)). Вопрос больше об алгоритме. Деятельность для хобби, для самой деятельности.

1. При алгоритме с timer0: время для отчетов, напр. 1 сек, timer1 - вход (pin 12, RB6, T1CKI)
код сработал после нескольких попыток. Без prescaler на входе, при тестовый монолитный генератор 20 000 000 Hz, с нормальной мин ошибкой (которую можно исправить как аппаратно (конденсаторы к кварца), так и программно (дополнительные циклы микроконтроллера), последний знак почти "не прыгает" +/- 1. Хорошее разрешение 1 Hz, со временем отслеживаю изменение частоты с температуры даже двух кварцевых генераторов. Максимальная частота пока не интересует и, вероятно, будет соответствовать параметрам в pdf.

2. При алгоритме с timer0 - вход (pin 3, RA4, T0CKI), timer1 - время для отчетов, напр. 1 сек
максимальная входная частота timer0 должна быть max Fosc / 4 (~ 961 kHz), т.е. нужен предварительный делитель.

При вход 20 MHz -> prescaler = 32..256 все работает. Но теряем разрешение на более низких частотах. То есть, по крайней мере, мне нужно переключить prescaler в зависимости от входа. Где взять инфо нормально ли работает или не переключается (если не переключить, то показания случайны, хаотичны)? Потом по табличке, с расчетом и во многом способы может ...

Попробовал считать prescaler динамично: проверка с (pre-1), начиная с самого большого: 256->128->64->32 -> дааа, это искомый делитель и используем его; нет, стоп уменьшения делителя. От большого к маленькому" прескалера способ работает почти ОК. Наоборот: "от малого к большому" я еще не думал о етом как это сделать, но, вероятно, есть более простые способы?

Хочу уточнить для себя вариантов решения по timer0 во втором случае.
(частично пользуюсь переводчиком)


Вложения:
DSC04771.JPG [85.57 KiB]
Скачиваний: 214
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Частотомер на PIC (PIC16F628A)
СообщениеДобавлено: Пт авг 06, 2021 10:08:17 
Открыл глаза

Карма: -4
Рейтинг сообщений: -22
Зарегистрирован: Сб апр 02, 2016 07:08:34
Сообщений: 68
Рейтинг сообщения: 0
Для повышения точности измерений целесообразно разделить измеряемый диапазон частот на два:
- свыше 10 кГц измерять частоту методом досчета, используя пределитель на 256
- менее 10 кГц измерять период с последующим преобразованием в частоту.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Частотомер на PIC (PIC16F628A)
СообщениеДобавлено: Пт авг 06, 2021 11:51:08 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 296
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1220
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Да, досчет прескалера с помощью коллега с форума и AN592 - Frequency Counter Using PIC16C5X.
Нравится, последний разр. не мерцает, на 50 MHz я видел - работает.

А для калибровки?

Хардуерное понятно (конденсаторы кварца), выполнено.

А программно?
Попытка компенсировать задержку вычисления в прерывании приводит к непостоянной ошибке во всем рабочем диапазоне (ошибка должна быть пропорциональной).
В итоге я просто умножил получившуюся частоту на float :) (как float мне не очень нравится).

freq *= 0.99995705188971685245849182635964;
из win-калькулятора Freal / Fизм ... :))) и все -> Fизм компенсируется по всему частотному диапазону.
(понимать конечно как 7-9 (?) зн. после запятой на мантиссе 23-bit)

Другой способ компенсации частоты кварцевого генератора есть?


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Частотомер на PIC (PIC16F628A)
СообщениеДобавлено: Вс авг 08, 2021 08:49:56 
Открыл глаза
Аватар пользователя

Зарегистрирован: Ср апр 10, 2013 16:48:43
Сообщений: 79
Рейтинг сообщения: 0
У меня примерно похожий вопрос, тему решил не создавать новую. Есть описание алгоритма, вопрос примерно с помощью каких команд, или псевдокода он реализован именно на PIC контроллерах.
И можно ли будет это использовать с 8мГц кварцем и PLL на STM32?
Суть, есть внешний кварц на 20мГц и LC колебательный параллельный контур на 19кГц. Измеряется частота колебаний последнего. Камень PIC12F629.
Описание алгоритма: "Кварц там не спроста высокий - чтобы выше было разрешение. Считается не количество периодов генератора LC за период времени, а наоборот - количество периодов кварца относительно LC генератора. Благодаря этому в реалтайме видно сдвиг на доли Герца."
Так вот, можно ли это будет реализовать на STM32 и PLL который домножит частоту до 48мГц?

_________________
Сайт о программировании attiny13, esp32, stm32 и 3D https://esp32stm32attiny13.ru


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

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

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

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


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

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


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

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


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