Частотомір на STM8
У своїй статті я розкажу про те, як я зробив простий частотомер на мікроконтролері STM8LF3P6. Правильніше його назвати лічильником частоти: його принцип роботи полягає в тому, що протягом однієї секунди (інтервал вимірюється по таймеру) відбувається підрахунок кількості імпульсів. Потім це значення відправляється на індикатор, а лічильник скидається. Кожного разу при спрацьовуванні таймера інвертується пін світлодіода, світлодіод миготить.
Нижче наведені малюнки принципової схеми (рис.1) та друкованої плати для пристрою (рис.2).
Малюнок 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 |
Прикреплені файли:
- Частотомер проект.lay (12 Кб)
- реальна плата.lay (20 Кб)
- Часмтотомер проект.zip (483 Кб)