C-метр за 5 минут

Это птица!
Нет, это супермен!
Нет, это… NE555!
Озаботился я в свете грядущего мотания катушек повторением LC-метра на компараторе, да вот беда — нет прецизионных конденсаторов и индуктивностей, а без готового LC-метра измерить их нечем. Оказывается, конденсатор померить есть чем — таймером 555 :).
По схеме из википедии собираем автоколебательный (astable) генератор, как можно более точно измеряем сопротивления R1 и R2 и любым способом измеряем частоту генерации. Я использовал (прости меня Боже :)) Arduino + библиотека FrequencyCounter. Ну а далее вспоминаем математику и получаем емкость конденсатора с точностью около 1% + небольшая величина, зависящая от точности измерения резисторов. ИМХО, неплохо.
Нормально измеряются конденсаторы от 1000пФ (меньше уже портится форма сигнала и счетчик дурит) до 1мкФ (больше падает точность из-за малого периода генератора).
Вот как-то так, может кому пригодится :).

Отладочная плата для STM32 aka B.M.O.W.

B.M.O.W.

Я по роду основной деятельности программист, очень много работал на ARM платформе (Symbian, Windows Mobile, Linux, you name it ;)) и вот недавно решил приложить свои профессиональные навыки к хобби — завести ручногоотладочную плату STM32. Развел «Орлом» одностороннюю плату по даташиту с джамперами переключения загрузчика, отключением часового и основного кварцев и всеми портами наружу + JTAG (20-ти пиновый, что конечно оверкилл, но я к таким привык).
Вид сверху: все вроде прилично ;), окромя рабочего бардака на столе…



Читать дальше

Порт тестера транзисторов на STM8

Любую архитектуру лучше изучать на каком-нибудь достаточно интересном и нужном примере. Вот я взял в качестве такого примера портирование тестера электронных компонент, выполненного на AVR под STM8. Скажу сразу, проект работоспособен и оттестирован лишь частично, любая помощь в доработке будет приветствоваться.
Веселая картинка:



Читать дальше

STM8 и LCD на основе HD44780

Выходные прошли, а так как хобби выходных не признает, написал я небольшую интерфейсную либу для STM8 (а конкретнее под STM8S-Discovery, но думаю будет работать где угодно).
Для вывода на LCD достаточно трех строчек :)

#include "HD44780.h"
....
InitLcd(GPIOB, GPIO_PIN_4, GPIO_PIN_5, GPIO_PIN_LNIB);

Out(0, "DareDen&STM8 for");
Out(1, "easyelectronics.");

и получается вот такая красота:

Первая строка — инициализация порта (используется 6 бит, остальные 2 корректно не трогаются), единственное ограничение — дата-линии должны быть либо в младшем, либо в старшем ниббле (ну или по-посконному, по-латыни, тетраде :)).
Далее выводим функцией Out. Для очистки экрана есть ClearLcd.

Наткнулся на одну непонятку: Cosmic не дает сделать extern функцию без аргументов — кто знает, WTF?
Функцию надо объявлять так:

extern void foo(void);
— void в скобках обязателен.

Исходники (Cosmic)

Исходники можете использовать как угодно, при условии вспоминания меня хорошим и добрым словом ;).
PS. При использовании надо подключать StdPeriphLib, соответственно в настройках проекта определены дефайны: STM8S105 F_CPU=16000000. При использовании другого контроллера или частоты не забывайте их корректировать.

Макетка STM8 для беспаечной платы

Чтоб уютненький не пустовал, напишу про успешный ЛУТ, пайку LQFP и STM8 — очень кошерные вещи :). Сразу хвалюсь результатом:
Макетка


Читать дальше