Четверг, 30 апреля 2020 01:15

Простой частотомер на PIC16F628A. Измеряет до 920-930 кГц.

Оцените материал
(4 голосов)

 

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

   Поскольку у меня есть программатор PIC, этот проект разработан на микроконтроллере PIC. Как обычно, я искал вдохновения в интернете. Первоначальная идея пришла от проекта: счетчик частоты ЛКД. Я хотел использовать 7-сегментный светодиодный дисплей, а не ЖК-дисплей.

   Прежде всего, я хотел, чтобы микроконтроллер PIC делал всю работу без каких-либо дополнительных микросхем. Также я хотел использовать знакомый PIC16F628A, но поскольку один из выводов port A (RA5) может использоваться только в качестве входа, мне не хватало выходов для выполнения этой работы. Для управления 6-значным 7-сегментным мультиплексированным дисплеем требуется 7 + 6 = 13 выходов. 16F628A имеет 16 выводов ввода-вывода, два из которых используются для кварцевого генератора, один-для ввода сигнала, а другой может использоваться только для ввода, что оставляет нам только 12 полезных выводов ввода-вывода. Решение состояло в том, чтобы привести в действие один из общих катодов с транзистором, который открывается, когда все остальные цифры выключены.


Вот окончательная схема:

FreqC 16F628A

 

7-сегментные дисплеи, используемые здесь, являются 3-разрядным мультиплексированным c общим катодом (BC56-12SRWA). Цифры 2..5 включаются, когда соответствующие контакты установлены 0. Когда все эти контакты установлены в 1, транзистор Q1 открывается и включает первую цифру. Ток для каждого этапа около 6-7mA.

   Я должен упомянуть, что ток на контактах, подключенных к общим катодам теоретически могут просаживаться до 50 мА, если все сегменты включены (7x7mA). Это намного выше максимальных спецификаций микроконтроллера. Но так как каждая цифра включается на очень короткий момент Я думаю, что это безопасно. Вообщем схема потребляет около 30-40mA в среднем, и микроконтроллер не нагревается вообще, так что все кажется в порядке.

   Микроконтроллер использует свой внутренний генератор 4MHz для часов C. P. U. Timer1 использует внешний кварцевый генератор с частотой 32768Hz для установки 1 второго временного интервала. Timer0 используется для подсчета входного сигнала на выводе RA4. И, наконец, Timer2 используется для обновления цифр.
При входном сигнале прямоугольной формы 5Vpp нет никаких предусилителей или буфера в усилителе.
Счетчик может измерять до 920-930 кГц, что более чем достаточно для моего проекта. Причина, по которой он не может измерять частоту больше, заключается в том, что увеличение количества цифр требует много циклов процессора. Я полагаю, что код программы может быть оптимизирован или даже написан на ассемблере, и тогда счетчик может достигать 999999 Гц.

   Кварц на 32768Hz продаются в двух размерах: 2x6mm и 3x8mm. я рекомендую 2x6mm, потому что он идеально подходит под левым дисплеем. Другой размер также может быть использован, но он немного поднимет левый дисплей.


В любом случае, это готовый модуль:

FreqC 16F628A1

FreqC 16F628A2

FreqC 16F628A5

FreqC 16F628A3

FreqC 16F628A4

 

Итак, если у кого-то есть жгучее желание самому протестировать этот проект, вот файлы проекта: Скачать архив

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

   Уточненный PCB, Различный регулятор напряжения тока, немножко уменьшена плата. Архив включает в себя файлы Eagle, HEX и C-файл, а также сжатые файлы Gerber: версия 2

Прочитано 14 раз
Другие материалы в этой категории: « Приставка для измерения индуктивности

Добавить комментарий