Частотомер на STM8

В своей статье я расскажу о том, как я сделал простой частотомер на микроконтроллере STM8LF3P6. Правильнее его назвать счётчик частоты: его принцип работы заключается в том, в течение одной секунды (интервал отмеряется по таймеру) происходит подсчет количества импульсов. Затем это значение отправляется на индикатор, а счётчик сбрасывается. Каждый раз при срабатывании таймера инвертируется пин светодиода, светодиод мигает.

Ниже приведены рисунки принципиальной схемы (рис.1) и печатной платы для устройства (рис.2).

Схема частотомера на STM8
Рисунок 1. Принципиальная схема частотомера


Рисунок 2. Печатная плата для частотомера

Со схемой все просто. Цепочка R2-C3 отсекает постоянную составляющую сигнала, после чего импульсы идут на контроллер. R1 подтягивает пин сброса мк к питанию. Светодиод позволяет контролировать работу прибора, он должен мигать с периодом где-то 2,5 секунды; отсутствие мигания говорит о том, что не запущен тактирующий кварц. Мигание светодиода при отсутствии индикации говорит о проблемах с индикатором или его подключением. Кроме того, по питанию поставлен стабилизатор напряжения на 3,3 В.

В ходе изготовления платы я столкнулся с проблемой нанесения рисунка тонких дорожек. После десятка неудачных попыток с разными материалами я решил изменить тактику. Опыт показывает, что мелкие платы проще делать. Поэтому я решил сделать устройство на двух платах — одна чисто под мк, другая под все остальное ( рис. 3 и 4 соответственно ).


Рисунок 3. Плата мк.


Рисунок 4. Основная плата

В таком варианте изготовление плат не доставило проблем. Платы я соединил с помощью разъема-гребенки. На фотографиях ниже вы можете видеть, как все получилось.

Исходный код прошивки для IAR есть в прикрепленном проекте. В исходном коде достаточно комментариев для его понимания. Дополнительно хотелось бы пояснить следующие моменты. Во-первых остановка таймера на время выполнения прерывания. Это сделано для того, чтобы таймер не считал впустую, так как во время прерывания таймера прерывания от пина не учитываются. Если же изменить приоритеты прерываний, существует риск сбоя при отправке данных на дисплей. Во-вторых поясню принцип работы дисплея TIC33. у него есть 6 выводов — 2 на питание, вывод DIN, с которого считываются биты (каждый бит соответствует сегменту дисплея), DCLK — по фронту на этом пине данные с DIN пропихиваются в память дисплея, LOAD — по фронту этого пина происходит обновление данных на экране и LCLK — тактирование.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
IC1 МК STM8 STM8L051F3 1
U1 Микросхема KIA1117BP 1
C1, C2 Конденсатор 33 пФ 2
C3 Конденсатор 10 мкФ 1
R1 Резистор 1 кОм 1
R2 Резистор 30 кОм 1
HL1 Светодиод 1 I < 20 mA
Display1 Дисплей TIC-33 1
XTAL1 Кварц 12 МГц 1