Электрификация

Справочник домашнего мастера

Схемы на attiny13a

Сегодня я расскажу вам, как с помощью встроенного в микроконтроллер ATtiny13 ШИМ-модуля сделать цифровой 8-битный генератор опорного напряжения 0 — 5В.

Идея девайса до гениальности проста. На одном из выходов контроллера с помощью встроенного модуля ШИМ генерируются прямоугольные импульсы, которые затем сглаживаются обычным RC-фильтром. Величина сглаженного напряжения, как вы понимаете, определяется длительностью генерируемых импульсов. А поскольку длительность импульсов определяется 8-битным счётчиком, соответственно, изменяя значение этого счётчика — можно получить 256 различных уровней выходного напряжения. Много это или мало? Давайте прикинем. Для интервала 0-5В один шаг получается примерно равным 19,5 мВ. Не буду дальше томить, перейдём к схеме: Детали:

При использовании контроллера в SMD-корпусе очень удобно используемые для программирования ноги вывести на отдельные разъёмы (чтобы контроллер каждый раз от платы не отпаивать).


Как видите, у контроллера остались ещё две незадействованные ноги. На эти ноги можно подвесить, например, ИК-приёмник (чтобы управлять девайсом с помощью ИК-пульта) или, скажем, реализовать на них какой-нибудь интерфейс.

Вот так это выглядит в готовом виде:

В собранном образце максимальные пульсации выходного напряжения были зафиксированы на уровне 3,4 мВ, что, согласитесь, совсем неплохо (сравнимо, например, с напряжением смещения нуля средненьких операционников).
Хотелось бы добавить пару слов о том, где такой девайс можно использовать. Собственно говоря, сам по-себе этот девайс был собран исключительно для экспериментов и как отдельное, самостоятельное устройство — нафиг не нужен. Его вряд ли получится использовать, например, в качестве генератора звука или какого-нибудь напряжения хитрой формы, поскольку он, во-первых, слишком медленный (максимальная частота ШИМ — 37,5 кГц + нужно хотя бы пару периодов, чтобы выходное напряжение стало таким, как нам нужно), а, во-вторых, имеет маленькую нагрузочную способность.

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

А теперь вспоминаем, — где нам чаще всего нужны генераторы опорного напряжения? Правильно, — во всяких блоках питания. Конечно полноценный регулируемый блок питания с таким генератором не сделаешь, — слишком маленькая разрядность (хотя намёк, я думаю понятен — берём ЦАП с большей разрядностью и вперёд), но, например, для драйвера мощных светодиодов будет в самый раз.

Файлы проекта:

  • Печатная плата
  • Программа для микроконтроллера

Содержание

Простой ШИМ на ATTiny13.Регулируем всё

Потребовалось регулировать температуру маленького 12-ти вольтового паяльника Baku 938 мощностью 8 Вт , но в интернете попадались схемы ШИМ на дискретных элементах, например, схемы на таймере 555, к561ла7, к561лн2, на мультивибраторе из транзисторов.

ШИМ или PWM — процесс управления мощностью, подводимой к нагрузке, путём изменения скважности импульсов, при постоянной частоте.

Собрав несколько из них, ни одна меня не устроила, у них был слишком крутой спад\подъем сопротивления при вращении ручки переменного резистора — от 2 кОм сразу подскакивало к 7 кОм, и следовательно, при этом, к примеру, подключенный для теста на исток полевого транзистора, компьютерный вентилятор со скорости 20 процентов сразу поднимал обороты до 90-100 процентов. В общем, чтобы пользоваться схемой, пришлось бы вращать потенциометр с прецизионной точностью и\или с замером сопротивления при вращении.

Однако, нашлась схема, собранная на ATTiny13, в которой используется цифровая ШИМ . Посмотреть статью о ней можно на странице cxem.net/master/61.php

Сначала я отнесся к ней скептически, но зря, потому что схема минимальна по обвязке, по сравнению с дискретными схемами найденными ранее. Микросхема маленькая и дешевая, изготавливается в корпусах SOIC,DIP, QFN, MLF, ножек всего 8, как и у таймера NE\LM555.

ШИМ на ней получается точным и легко регулируется.

—Как прошить микроконтроллер ATmega, AVR

—Эмуляция AVR в Proteus, микроконтроллеры в Proteus

—Как написать код для AVR, программирование микроконтроллеров Atmel AVR на Си

Наглядная схема (принципиальную схему смотрите по ссылке выше на сайте-источнике).

Описание чипа Atmel (Microchip) ATTiny13A

ATTiny13A — это 8 битный AVR микроконтроллер с программируемой Flash памятью внутрисистемно, размером 1 КБ.

Распиновка (pinout) микроконтроллера ATTiny13A

В чем отличие ATTiny13 от ATTiny13A ?

Tiny13A — это более новый и улучшенный микроконтроллер от Atmel.

Ранее выпускались два варианта Тини13 — с обычным (ATTiny13, работает от 2.7 вольт) и пониженным (ATTiny13V, работает от 1.8 вольт) питанием.

При этом первый вариант работает на частоте до 20 Мгц, второй — до 10Мгц.

С выходом Тини13А убрали разделение мк по питанию, Тини13А работает и от 1.8 вольт (в этом режиме, при пониженном низковольтном питании его невозможно заставить работать на высокой частоте).

Примечание по сборке схемы

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

Светодиоды лучше брать с тусклым свечением, разные яркие цвета могут раздражать, особенно ярко светится синий светодиод. Яркость можно снизить применив в цепи питания светодиодов резисторы, например, до 2 кОм.

Можно обойтись и без светодиодов (следовательно и еще без трёх резисторов), они просто нужны для индикации и отображения режима работы.

Также можно обойтись и без линейного стабилизатора напряжения LM7805 (КРЕН5), если схема питается напряжением в 5 вольт, и регулируемая нагрузка работает от такого же напряжения, а не от 12 вольт.

Для стабильности напряжения можно добавить керамические конденсаторы (на наглядной схеме выделены квадратом салатового цвета) — 0,33 микроФарад (334) на вход 7805, и 0,1 микрофарад (104) на выходе 7805.

Используемая нагружаемая мощность будет ограничена полевым (MOSFET) транзистором.

Прошивка

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

Так как исходники прилагались — решил исправить ошибку и добавить индикацию работы светодиодами нагляднее. Исходники, к моему сожалению оказались на BascomAVR.

Пришлось его скачать и открыть исходник в нем. Исправив ошибку с ожиданием в 30 секунд — решил проверить и залить прошивку. Но прошивка не захотела литься, подумав что это ошибка компилятора BascomAVR, было решено написать свой код для ATTiny13 на Си в Atmel Studio 7, конечно с сохранением оригинальной схемотехники, чтобы было можно только лишь залить прошивку и ничего не переделывать на печатке.

Написал тестовый код в Atmel Studio, скомпилировал прошивку, заливаю в attiny13 – опять ошибка:

mismatch 0x000000

Ошибка оказалась не в средах разработки, а в программе для прошивки мк, конкретно в моем случае в eXtreme Burner AVR, для того, чтобы исправить данную ошибку необходимо открыть файл

C:\Program Files\eXtreme Burner – AVR\Data\chips.xml

Найти ATTiny13 и между тегами 64 Вместо 64 написать 32 – после этого ATTiny13 начал шиться без проблем.

Спустя несколько дней программа была написана.

Что изменено и добавлено в прошивку:
+ Не нужно удерживать кнопку на протяжении 30 секунд
+ Добавлено 8 значений ШИМ вместо 7
+ Добавлена индикация включения.
+ Сделана наглядная индикация режима ШИМ .
+ Добавлено автосохранение значения ШИМ (по умолчанию выключено)

Индикация включения — при включении очень быстро и с реверсом перельются все три светодиода.

Переключение режимов осуществляется нажатием на кнопку, действует циклически.

Файлы прошивки находятся в конце статьи.

При возникновении дополнительных вопросов по работе с кодами для микроконтроллеров , вам может помочь статья:

Как написать код для AVR, программирование микроконтроллеров Atmel AVR на Си

Пояснения по работе устройства с новой прошивкой

ШИМ — 0 (0%) — питание на «регулируемом устройстве» отсутствует, например, паяльник не греется.

ШИМ — 255 (100%) — полная мощность работы «регулируемого устройства».

Для включения автосохранения значения ШИМ необходимо удержать кнопку в течении 3-х секунд, для отключения — осуществить тоже самое.

При этом при включении автосохранения на 1,5 секунды загорится светодиод 1.
При отключении — на 1,5 секунды загорится светодиод 3.Удерживать кнопку можно в любом режиме, но лучше это делать в режиме 0- так будет нагляднее.

Не стоит забывать, что при включенном автосохранении каждый раз, при нажатии на кнопку записываются данные в EEPROM, ресурс записи EEPROM в Atmel AVR — 100 000.

Программирование ATTiny13 микроконтроллера

  1. Для заливки прошивки в ATTiny потребуется: USB ASP Программатор микроконтроллеров ATmega AVR.
  2. Программа eXtreme Burner AVR.

Необходимо поставить фьюз на работу от внутреннего тактового генератора на 9,6 Мгц

Т.к. я пользуюсь eXtreme Burner AVR то во вкладке Fuse\Bits записываю такие байты вместо выставления галок(в других программах-прошивальщиках галки):

Младший байт(Low Byte\Fuse) – 7A

Старший байт (High Byte\Fuse) – EB

Для того, чтобы знать какие галки ставить в других программах, чтобы микроконтроллер работал на частоте 9.6Мгц , можно использовать данный сайт:

homes-smart.ru/fusecalc/?prog=avrstudio&part=ATtiny13A

Слева вверху, где написано Байты конфигурации вводим – 7A в окошечко LOW

и EB в окошечко HIGH – получаем указание на то, где следует поставить галки.

Собранное в корпус устройство ШИМ с вынесенной кнопкой:

(Принципиальная схема и печатная плата имеется на приведенном выше сайте.)

Плата ШИМ, упакованная в корпус от другого устройства и подключенный к ней паяльник.

Файлы прошивки в формате HEX:

Оригинальная, скомпилированная из приведенных ниже исходников:

Прошивка с более высокой частотой (Не тестировалась на реальной схеме!):

Прошивка по просьбе одного из пользователей нашего сайта, частота ШИМ — около 2,3 килоГерц:

В данной прошивке всего три режима

0 — Выключено

1 — ШИМ 80%, светится светодиод 1

2 — ШИМ 90%, светится светодиод 1,2

3 — ШИМ 100%(Постоянное питание), светится светодиод 1, 2 и 3

Исходник с подробными комментариями также прилагается, можно изменить под свои нужды:

Системный интегратор

Микроконтроллер ATtiny13A принадлежит семейству микроконтроллеров AVR фирмы Atmel. ATtiny13A имеет 1кб Flash памяти и по 64 байта SRAM и EEPROM памяти. ATtiny13A может работать на частоте до 20МГц.

ATtiny13A выпускают в корпусах DIP-8, SOIC-8, QFN-10 и QFN-20

Синим цветом на рисунке показаны номера выводов соответствующие Arduino.

Микроконтроллер ATtiny13A имеет

  • 0..5 6 программируемых линий ввода-вывода (DIP-8)
  • 4…5, 2 4 несимметричных каналов 10-разрядных АЦП
  • 0…1 2 выхода с широтно-импульсной модуляцией (ШИМ (PWM))
  • Один 8-разрядный таймер-счетчик
  • 1 кб FLASH памяти программ
  • 64 байта SRAM
  • 64 байта EEPROM
  • 120 команд
  • 9 векторов прерываний
  • 7 внешних прерываний
  • 1 сторожевой таймер
  • 1 аналоговый компаратор
  • 1 встроенный RC-генератор
  • 1 схема BOD

Условные обозначения и описание ножек микроконтроллеров AVR ATtiny и ATmega

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

Далее мы приводим описание аббревиатур, которые Вы можете встретить в datasheet микроконтроллеров.

PAn n-й разряд порта A
PBn n-й разряд порта B
PDn n-й разряд порта D
(IR) (Выходной контакт с повышенной нагрузочной способностью)
ADCn n-й вход АЦП
AREF Вход опорного напряжения для АЦП
AVCC Вывод источника питания АЦП
AIN0 Положительный вход компаратора
AIN1 Отрицательный вход компаратора
INTn Вход внешнего n-го прерывания
PCINTn Вход внешнего n-го прерывания по изменению состояния вывода
XTAL1 Вход тактового генератора
XTAL2 Выход тактового генератора
CKOUT Выход системного тактового сигнала
CLKO Выход системного тактового сигнала
MOSI Вход данных при программировании
MISO Выход данных при программировании
SCK Вход тактового сигнала при программировании
DI Вход данных модуля USI в режиме SPI
DO Выход данных модуля USI в режиме SPI
USCK Вход/выход тактового сигнала модуля USI в режиме SPI
SDA Вход/выход данных модуля USI в режиме TWI
SCL Вход/выход тактового сигнала модуля USI в режиме TWI
RXD Вход USART
TXD Выход USART
XCK Вход/выход внешнего тактового сигнала USART
RESET Сброс
Tn Вход внешнего тактового сигнала таймера/счетчика Tn
OCnX Выход X таймера/счетчика Tn
ICP Вход захвата таймера/счетчика
dW Вывод отладочного интерфейса debugWire
GND Общий провод
VCC Питание микросхемы

Zzzloj ›
Блог ›
RGB PWM на ATtiny13

Дошли руки для интернета… даю схему RGB контроллера. Только в предыдущем посте контроллер был на ATmega8, но случайно в столе нарыл пакетик с ATtiny13 и решил все переделать, а то 8ая мега тут жирновата.

Но без изврата конечно не обошлось)) тиньки были только в планаре, пришлось мудрить переходник от SO8 в DIP.

В лучших традициях жанра смоделировал схему в ISIS Proteus. Как не покажется банально, прошивку написал на Си в CodeVisionAVR, и залил в процЫк при помощи AVRprog(AVR910).

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

В работе это выглядит вот так:

Немного о функциональности:
1. Управление контролером осуществляется от одной кнопки
2. Коротким нажатием осуществляется выбор одного из эффектов в двух возможных режимах
3. Переключение режимов осуществляется длинным нажатием
4. Еще более длинное нажатие осуществляет выключение девайса
5. Последующее включение производится однократным нажатием кнопки
6. Возможны два режима: статический и динамический
7. В статическом режиме можно выбрать один из семи цветов
8. В динамическом режиме возможно плавное изменение цветов или пошаговое переключение

В планах:
1. В динамическом режиме добавить стробоскопов
2. Запоминать текущий режим работы в энергонезависимую память (а нужно ли это?)
3. Изменение скорости эффектов в динамическом режиме при помощи переменного резистора (опять же, есть ли в этом необходимость?)
4. Расширить цветовую гамму в статическом режиме (стоит ли ваще заморачиваться?)
5. Победить лень и переложить девайс на печатную плату в планаре для получения сверх компактного конструктива.

И главное, люди, не оставайтесь безучастными… спрашивайте, предлагайте… (при необходимости могу передать проект по электронке) — для этого есть коментарии)) ну и еще пару кнопок)))

Вот собственно сама схема… к стати, ценник получается в пределах 150р, так что все доводы про покупку китайского контроллера отклоняются сразу!

Электрическая схема RGB контроллера на ATtiny13

Текст прошивки в формате Intel HEX: (прямо как в старых журналах радио)))

:0A00000013C0FECFFDCFFCCFFBCFF5
:10000A00FACF18C1F8CFF7CFF6CF150000020000DB
:10001A000100700014000300030016000000F894A9
:10002A00EE27ECBBE5BFF8E1A4B7A77FA4BFF1BDFB
:10003A00E1BDEAE1F0E0C8953196802DC895319688
:10004A00902D0097B9F0C8953196A02DC895319694
:10005A00B02DC8953196102CC89531966E2F7F2FEA
:10006A00F02DE12DC89531960D920197D9F7E62F1B
:10007A00F72FE1CFEFE9EDBFC0E700C02397E2E039
:10008A00E883E1E0E983E0E0EA8330E040E050E041
:10009A00E0E8E6BDE0E0E6BDE7E0E7BBC49AE2E0FF
:1000AA00EFBDE5E0E3BFEDE5E6BFE4E0E9BF789444
:1000BA00E42DE93021F4E8B3E87FE8BBB9C0E230C7
:1000CA0021F4C19AC09AC29AB3C0E33021F4C19A0A
:1000DA00C098C298ADC0E43021F4C198C09AC298C1
:1000EA00A7C0E53021F4C198C098C29AA1C0E630F1
:1000FA0021F4C198C09AC29A9BC0E73021F4C19AF0
:10010A00C098C29A95C0E83021F4C19AC09AC298A0
:10011A008FC0E130C9F4552009F08AC00F5F08305A
:10012A0008F001E001FF02C0C19A01C0C19802FFB4
:10013A0002C0C29A01C0C29800FF02C0C09A01C0A0
:10014A00C098E4E65E2E74C0E03009F071C02F5FFB
:10015A00293C30F120E01F5F193210F110E03F5FB7
:10016A00393C40F030E0AA81AF5FAA83A43010F096
:10017A00E0E0EA835F5F593C40F050E0A981AF5F5D
:10018A00A983A43010F0E0E0E9834F5F493C40F0D6
:10019A0040E0A881AF5FA883A43010F0E0E0E883D4
:1001AA00EA81E03031F4231710F0C19801C0C19AF6
:1001BA000FC0AA81A13011F4C19A0AC0AA81A23043
:1001CA0031F4231710F0C19A01C0C19801C0C19837
:1001DA00E981E03031F4251710F0C29801C0C29AC3
:1001EA000FC0A981A13011F4C29A0AC0A981A23014
:1001FA0031F4251710F0C29A01C0C29801C0C29802
:10020A00E881E03031F4241710F0C09801C0C09A98
:10021A000FC0A881A13011F4C09A0AC0A881A230E7
:10022A0031F4241710F0C09A01C0C09801C0C098D8
:10023A003FCFFFCFAA93EA93EFB7EA93A09170005A
:10024A00A53159F4B49908C0E0917000E150E093E7
:10025A007000E0E0E09371003BC0E0917000E03094
:10026A0091F5E0917100EF5FE0937100B49B2AC0B1
:10027A00E5E1E0937000A0917100AD3090F4332075
:10028A0039F44394E8E0E41510F4E2E04E2E08C095
:10029A00E1E0E31529F455244394E41508F44424D1
:1002AA0011C0A0917100A03550F4332021F4E1E08F
:1002BA003E2E442403C03324E2E04E2E03C0E9E07C
:1002CA004E2E332405C0E0917000E150E093700097
:1002DA00552009F05A94E991EFBFE991A99118952F
:00000001FF

Это нужно скопировать в текстовый файл и сохранить с разрешением *.HEX

Проект 100% рабочий и при правильной сборке и прошивке чипа сразу начинает работать! Конфигурация фьюз битов микроконтроллера заводская! Фьюзы программировать не нужно!

А вот собсно и макетный вариант контроллера на тиньке13

Макет на планарной тиньке

тут хорошо виден 5В стабилизатор

А вот и МК на переходнике. С обратной стороны припаян кондер по питанию

Кропотливая работа)) Особенно перемычки хорошо получились!

ATtiny13

8 битный AVR микроконтроллер с 1 КБ внутрисистемно программируемой Flash памяти

Документация:

1158 Kb Engl Описание микросхемы ATtiny2313 Предварительная информация
Rus Система команд и архитектура
Програмное обеспечение
Инструментальные средства для 8-разрядных AVR-микроконтроллеров
Примеры применения микроконтроллеров AVR в устройствах управления 3-фазными бесколлекторными электродвигателями постоянного тока

Отличительные особенности:

  • Высококачественный низкопотребляющий 8- битный AVR микроконтроллер
  • Передовая RISC архитектура
    — 120 команд, большинство которых выполняется за один тактовый цикл
    — 32 8 битных рабочих регистра общего применения
    — Полностью статическая архитектура
  • Энергонезависимая память программ и данных
    — 1 КБ внутрисистемно программируемой Flash памяти программы, способной выдержать 10 000 циклов записи/стирания
    — 64 байта внутрисистемно программируемой EEPROM памяти данных, способной выдержать 100 000 циклов записи/стирания
    — 64 байта встроенной SRAM памяти (статическое ОЗУ)
    — Программируемая защита от считывания самопрограммируемой Flash памяти программы и EEPROM памяти данных
  • Характеристики периферии
    — Один 8- разрядный таймер/счетчик с отдельным предделителем и два ШИМ канала
    — 4 канальный 10 битный АЦП со встроенным ИОН
    — Программируемый сторожевой таймер со встроенным генератором
    — Встроенный аналоговый компаратор
  • Специальные характеристики микроконтроллера
    — Встроенный отладчик debugWIRE
    — Внутрисистемное программирование через SPI порт
    — Внешние и внутренние источники прерывания
    — Режимы пониженного потребления Idle, ADC Noise Reduction и Power-down
    — Усовершенствованная схема формирования сброса при включении
    — Программируемая схема обнаружения кратковременных пропаданий питания
    — Встроенный откалиброванный генератор
  • Порты ввода — вывода и корпусное исполнение
    — 8 выводные PDIP и SOIC корпуса: 6 программируемых линий ввода-вывода
  • Диапазон напряжения питания
    — от 1.8 до 5.5 В
  • Индустриальный рабочий температурный диапазон
  • Потребление
    — Активный режим:
    290 мкА при частоте 1 МГц и напряжении питания 1.8 В
    — Режим пониженного потребления
    0.5 мкА при напряжении питания 1.8 В

Блок- схема ATtiny13:

Расположение выводов ATtiny13:

Общее описание:

ATATtiny13 — низкопотребляющий 8 битный КМОП микроконтроллер с AVR RISC архитектурой. Выполняя команды за один цикл, ATtiny13 достигает производительности 1 MIPS при частоте задающего генератора 1 МГц, что позволяет разработчику оптимизировать отношение потребления к производительности.

AVR ядро объединяет богатую систему команд и 32 рабочих регистра общего назначения. Все 32 регистра непосредственно связаны с арифметико-логическим устройством (АЛУ), что позволяет получить доступ к двум независимым регистрам при выполнении одной команды. В результате эта архитектура позволяет обеспечить в десятки раз большую производительность, чем стандартная CISC архитектура.

ATtiny13 имеет следующие характеристики: 1 КБ внутрисистемно программируемой Flash память программы, 64 байтную EEPROM память данных, 64 байтное SRAM (статическое ОЗУ), 6 линий ввода — вывода общего применения, 32 рабочих регистра общего назначения, 8 битный таймер/счетчик со схемой сравнения, внутренние и внешние источники прерывания, 4 канальный 10 битный АЦП, программируемый сторожевой таймер со встроенным генератором и три программно инициализируемых режима пониженного потребления. В режиме Idle останавливается ядро, но ОЗУ, таймер/счетчик, АЦП, аналоговый компаратор и система прерываний продолжают функционировать. В режиме Power-down регистры сохраняют свое значение, но генератор останавливается, блокируя все функции прибора до следующего прерывания или аппаратного сброса. В режиме ADC Noise Reduction останавливается вычислительное ядро и все модули ввода-вывода за исключением АЦП, что позволяет минимизировать шумы при выполнении преобразования.

Прибор изготовлен по высокоплотной энергонезависимой технологии изготовления памяти компании Atmel. Встроенная ISP Flash позволяет перепрограммировать память программы в системе через последовательный SPI интерфейс программой-загрузчиком, выполняемой в AVR ядре, или обычным программатором энергонезависимой памяти.

ATtiny13 поддерживается различными программными средствами и интегрированными средствами разработки, такими как компиляторы C, макроассемблеры, программные отладчики/симуляторы, внутрисхемные эмуляторы и ознакомительные наборы.

Найти поставщиков вы можете перейдя по ссылке Каталог фирм микроэлектроники

Главная — Микросхемы — DOC — ЖКИ — Источники питания — Электромеханика — Интерфейсы — Программы — Применения — Статьи

Renault Laguna ЛюдовиГ второй ›
Бортжурнал ›
Шим на аттини 13 и прочие шалости.

Всем привет. Предлагаю занятные вещицы вашему вниманию. Решил расковырять немного тему контроллеров. Оказалась вещь занятная и очень прикладная. Много чего интересного узнал. Вот например придумал небольшой шим на аттини 13. То есть регулятор мощности нелинейного типа. Написал прогу. Вообщем двумя кнопками регулируем длину импульса. Работает на частоте 600 кГц. Можно и другую. Можно и переменником регулировать. Мне лично кнопки понравились. Можно сделать без регулировки вообще. типа плавный запуск и плавное выключение чего либо. Или плавно регулировать обороты мотора печки.

Полный размер

на дип контроллере

Полный размер

На smd
Прекрасно подойдет для управления светодиодами.
Силовой ключ можно взять исходя из нагрузки. Полевик типа irf530 или 540. Возможен и более мощный ключ.
Так же пара шаловливых разработок, которые можно применить в авто. Ну или их подобие

Полный размер

Спидометр одометр

Полный размер

Термометр термостат
Так же стала доступна возможность управления самодельным девайсом при помощи компа по usb порту. RS232 знаете ли вещь прикольная. Так что господа, работаю над новыми идеями… По плану совокупить штатный узкий дисплей со своим контроллером и выводить на него какую либо инфу.

Светодиодная гирлянда на МК Attiny13

Попросили меня как-то собрать несложную и недорогую гирлянду на микроконтроллере. Под руку попался самый дешёвый восьми битный AVR микроконтроллер Attiny13. В данной статье я хочу пошагово описать процесс сборки данного устройства.

Сборку устройства я разделил на несколько этапов:
Этап 1. Изготовление платы
Этап 2. Запаивание радио деталей на плату
Этап 3. Изготовление программатор для прошивки микроконтроллера
Этап 4. Прошивка микроконтроллера

Этап 1. Изготовление платы

Внимание! Крайне не обязательно изготавливать плату, можно воспользоваться макетной платой. Но всё же лучше и красивее изготовить плату для устройства.

И так, для начала нам понадобится следующее:
Кусочек текстолита (размером 45 на 30мм)
Хлорное железо
Небольшая ёмкость
Вода
Перманентный маркер
Немного технического спирта или одеколона
Ластик

Поверхность текстолита покрыта медной фольгой, а фольга, как и любой другой металл имеет свойство окислятся на воздухе. Поэтому возьмём ластик и протрем медную часть текстолита.

Далее берём перманентный маркер и рисуем дорожки на текстолите (как показано на рисунке ниже).

Нарисовали? Отлично. Теперь надо вытравить плату используя хлорное железо.
Во время травления, хлорное железо выедает (не закрашенную маркером) часть медного покрытия текстолита.

И так, поскольку хлорное железо это порошок нам его надо развести в воде.
Вот пропорция: 100гр. хлорного железа на 700мл воды. Но нам так много не надо, поэтому берём 10гр. на 100 мл. воды. Далее в этот раствор опускаем нашу плату.

И ждём примерно часа два (пока раствор хлорного железа не выест не закрашенную часть медного покрытия текстолита).

После того, как плата вытравилась, достаём её из емкости и промываем под проточной водой.

Вот фотография вытравленной платы.

Теперь стираем с платы маркер (для этого отлично подходит технический спирт или одеколон).

Далее нам необходимо сделать в плате отверстия под радио детали. Внизу показано где на плате делать отверстия.

Поскольку у меня нет электродрели я использую свой школьный циркуль

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

Теперь включаем паяльник и залудим плату. Внизу фотография залуженной платы

Оставшийся на плате канифоль можно стереть техническим спиртом или жидкостью для снятия лака.

Плата готова! Этап 1 завершен!

Этап 2. Запаивание радио деталей на плату

После того как сделали плату (а может кто-то не делал её, а решил использовать макетную плату) необходимо запаять на неё радио детали.

Схема светодиодной гирлянды на микроконтроллере Attiny13:

Запаиваем радио детали на плату (по схеме выше) и получаем следующее устройство:

Далее вставляем провода отсека для батареек в гнёзда BLS и зажимаем их.

Всё устройство почти готово, дело остаётся за малым это прошить микроконтроллер.
Этап 2 завершён!

Этап 3. Изготовление программатор для прошивки микроконтроллера

Внимание! Если у вас уже есть программатор для AVR микроконтроллеров вы можете пропустить этот этап и прошить микроконтроллер самостоятельно! Скачать прошивку вы можете по ссылке внизу страницы.

Собирать программатор мы будем на LPT порт компьютера. Вот схема программатора:

На рисунке в прямоугольнике (где LPT порт) номер контакта, куда подсоединять проводок. Провода старайтесь делать покороче (не более 20 см). Если провода будут длиннее 20 см то во время прошивки или чтения микроконтроллера будут ошибки, которые могут стоить микроконтроллеру жизни!
Будьте очень аккуратны, LPT порт очень легко спалить!

Для изготовления программатора нам понадобится:
25-контактный разъем для LPT порта (папа)
Резисторы 150 Ом 4 шт.
Резистор 10 кОм 1 шт.
Батарея на 3 вольта

Вот мой вариант программатора:

Теперь можно приступить к прошивке микроконтроллера.

Этап 4. Прошивка микроконтроллера

Внимание! В этом этапе описывается прошивка микроконтроллера Attiny13 с помощью программы PonyProg2000 и программатора на LPT порт.

Всем известно, что без прошивки, микроконтроллер — это ничего не делающая микросхема, а чтобы она управляла нашей гирляндой нам её надо прошить.
Для прошивки мы будем использовать ранее изготовленный нами LPT программатор, компьютер и программу PonyProg2000.
Для начала скачайте прошивку для гирлянды (ссылка внизу страницы), потом из интернета скачайте программу PonyProg2000 и установите её.

Теперь всё почти готово для прошивки микроконтроллера. Остаётся лишь подключить микроконтроллер к программатору а программатор подключить к компьютеру.
После того как всё подключили запускаем программу PonyProg2000.

Далее нам надо откалибровать программу PonyProg2000, для этого следуем по пути: Setup > Calibration

Выскачет такое окно:

В окне нажимаем кнопку «Yes».

После калибровки появится вот такое сообщение:

Все, программа откалибрована!

Теперь заходим в настройки (Setup > Interface Setup…). Появится вот такое окно:

Далее выбираем «Parallel», «Avr ISP I/O», LPT1 и нажимаем кнопку «ОК»

После в главном окне программы выбираем «AVR micro», «Attiny13»

В главном окне нажмите на кнопку «Write device»:

После появление такого сообщения:

Микроконтроллер прошит и работоспособен! Но подождите нам ещё необходимо установить фьюз биты. Кстати, фьюз биты это раздел (4 байта) в AVR микроконтроллерах в котором хранится конфигурация работы микроконтроллера.

Для установки фьюз битов в меню «Command» выберите «Security and Configuration Bits…», в появившимся окне нажмите кнопку «Read» и установите галочки как на картинке ниже:

После установки галочек (как на картинке выше) нажмите кнопку «Write». Всё готово!
Теперь выключите компьютер и извлеките микроконтроллер из программатора, вставьте микроконтроллер в панельку на плате гирлянды. Если всё сделано правильно, то при подаче питание (3 вольта) гирлянда должна заработать!

В заключении хотелось бы сказать, что программу я писал в среде BASCOM-AVR (исходник прилагается), программе 9 подпрограмм эффектов, так что ничего не мешает создавать вам свои эффекты.

По умолчанию устройство имеет 4 разных эффекта:
1. Бегущая точка
2. Бегущая линия
3. Переключение светодиодов
4. Моргание

Скачать прошивку, исходники, проект в Proteus вы можете ниже

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

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
Гирлянда
U1 МК AVR 8-бит ATtiny13 1 Поиск в Utsource В блокнот
R1-R5 Резистор 300 Ом 5 Поиск в Utsource В блокнот
R6 Резистор 4.7 кОм 1 Поиск в Utsource В блокнот
D1-D5 Светодиод 5 Поиск в Utsource В блокнот
Панель 1 DIP-8 Поиск в Utsource В блокнот
Программатор
Резистор 10 кОм 1 Поиск в Utsource В блокнот
Резистор 150 Ом 4 Поиск в Utsource В блокнот
Элемент питания 3 В 1 Поиск в Utsource В блокнот
25-контактный разъем для LPT порта (папа) 1 Поиск в Utsource В блокнот
Панель 1 DIP-8 Поиск в Utsource В блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Таймер обратного отсчёта на МК Attiny2313

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

В устройстве используется микроконтроллер Atmel Attiny2313.

Для изготовления таймера понадобится:
1. Микроконтроллер Atmel Attiny2313 (С любыми индексами)
2. LCD индикатор 2×16 на контроллере HD44780
3. Тактовые кнопки (3 шт.)
4. Динамик или пьезоизлучатель
3. Резистор 100 Ом (2 шт.)
4. Резистор 4,7кОм
5. Оптопара

Вот схема устройства:

Как видно, схема не такая уж сложная. Кнопка S1 – Установка Минут\Секунд (в зависимости от прошивки), кнопка S2 – Установка Часов\Минут (в зависимости от прошивки), кнопка S3 – ОК. Для устройства я написал две версии прошивки (Ver. 1 – таймер по часам, Ver. 2 – таймер по минутам). Прошивку писал в среде BASCOM-AVR (исходники прилагаются).

После запуска устройства оно попросит ввести изначальное время:

После того как изначальное время установлено, нажните кнопку ОК. Должен начаться обратный отсчёт:

По истечению заданного времени на 9 (PD5) ножку микроконтроллера (в течение 1 секунды), подаётся логическая 1.

Потом на 9 (PD5) ножку микроконтроллера, подаётся логический 0.

Далее, устройство уведомит вас о завершении обратного отсчёта.

Если нажать кнопку ОК то таймер начнёт свою работу заново.

Прошивка:
HVtimer.HEX – прошивка таймера по часам Ver. 1
MVtimer.HEX – прошивка таймера по минутам Ver. 2

Установка фьюзов в PonyProg2000:

На видео, в качестве нагрузки я подключил светодиод.

Ниже вы можете скачать прошивку, проект в Proteus, исходник

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
МК AVR 8-бит ATtiny2313 1 Поиск в Utsource В блокнот
R1, R2 Резистор 100 Ом 2 Поиск в Utsource В блокнот
R3 Резистор 4.7 кОм 1 Поиск в Utsource В блокнот
R4 Переменный резистор 10 кОм 1 Поиск в Utsource В блокнот
LCD-дисплей HD44780 1 Поиск в Utsource В блокнот
Z1 Кварц 10 МГц 1 Поиск в Utsource В блокнот
S1-S3 Кнопка 3 Поиск в Utsource В блокнот
Ls1 Динамическая головка 1 Поиск в Utsource В блокнот
Оптопара 1 Поиск в Utsource В блокнот
Добавить все

Скачать список элементов (PDF)

Кухонный таймер на ATtiny2313 также порадовал своими программными фичами, как раз для кухонного использования,

Этот девайс очень интересный и удобный.

Публикация и автор здесь radiokot.ru/circuit/digital/home/59/

Авторская схема не сложная , в ней используется энкодер.

После включения кнопкой, на экране высвечивается *0*. Кнопкой выставляется время тайминга . Отсчёт начинается автоматически при выставлении каждого нового значения, и всегда стартует с 59 секунд. Во время отсчёта, звучит «тик-так-тик-так» похожий на звук маятника По завершению отсчёта звучит гимн СССР, после чего,: пи:пи:пи:(до тех пор, пока его не выключат). Однократное простое нажатие на кнопку выключает устройство. Если прижать и удерживать, то на экране попеременно с промежутком в секунду загораются надписи — «OF» «RE*» «CE». Это названия режимов. Чтобы выбрать один из них, нужно отпустить кнопку, пака надпись на экране.

«OF» — Выключить.

«RE» — Повторный запуск отсчёта. Из памяти загружается последнее выставленное кнопкой/секундомером значение (в процессе отсчёта кнопкоа по-прежнему активна, и позволяет вносить изменения!). Память для повтора не сбрасывается после выкл-вкл.

«CE» — Секундомер. В этом режиме простое нажатие кнопки запускает — останавливает секундомер, кнопка заблокирована, переход в любой другой режим (а так же выключение) осуществляется так же длительным нажатием клавиши — «OF» «RE» «CE». Выбор «OF» выключит. Выбор «RE» запустит повторный отсчёт суммарного времени, которое насчитал секундомер ( кнопка будет заблокирована!). Выбор «CE» обнулит значение секундомера.

Полное описание схемы и программы от автора здесь, в текстовом формате.

ФЬюзы

Моя схема несколько отличается от авторской, пришлось добавить некоторые функции нужные мне.

Схема доработана — устранен дребезг ( микросхема IC1 выводы 1-6), нет глюка вал-кодера если он остановился не в том месте, таймер отключается через некоторое время, если его включили, и не пользуют ( микросхема IC1 выводы 9-14).

Работает так:

1) включил кнопкой питание , светится индикация.
2)задал кнопкой время, автоматически начинается отсчет времени и сопровождается звуком тик-так-тик-так.
3)по окончанию заданного времени играет музыка, потом сигнал, выключаем кнопкой стоп или происходит автовыключение устройства, если оно N-ное время продолжает работать (задаем на таймере 555, от 1 сек. до … сколько считаете нужным)
Cхема после отключения находится в обесточенном состоянии.

Простой кухонный таймер на ATtiny2313

Дата публикации: 05 января 2017.

5 / 5

Опытные хозяйки всё отмеряют на глаз и чувствуют время «внутренними» часами, но люди склонны впадать в задумчивость и отвлекаться на другие дела. Очень часто так случается, что и у опытных хозяек с любовью подготовленные к выпечке пироги превращаются в несъедобный углерод. Результат — испорченное настроение, зря потраченное время и срыв намеченных планов. Избежать подобной ситуации поможет простой кухонный таймер на широко распространённом микроконтроллере ATtiny2313 компании Atmel.

При разработке таймера ставилась задача использования минимального количества деталей, простоты управления, простоты повторения устройства, возможности питания таймера как от трёх батареек АА (LR6) по 1,5 В, так и от внешнего адаптера.

Возможности и основные характеристики таймера:

1. Время установки таймера от 1 до 90 мин.
2. Звуковая сигнализация включения и выключения таймера.
3. Звуковая сигнализация окончания установленного времени.
4. Принудительное выключение таймера до истечения установленного времени.
5. Самостоятельное выключение таймера по истечении 10 с после его включения в случае, если после включения таймера время выдержки не было установлено или не запущен отсчёт времени.
6. Питание устройства как от трёх батареек, так и от внешнего адаптера напряжением от 7 до 10 В.
7. Ток потребления таймера в выключенном состоянии в несколько раз меньше тока саморазряда пальчиковых батареек.

Алгоритм работы таймера

Таймер включается нажатием кнопки энкодера. На индикаторе высвечивается минимально возможное время выдержки, равное 1 мин. Вращением ручки энкодера вправо происходит увеличение времени выдержки, а при вращении ручки энкодера влево — уменьшение времени, начиная с 90 мин. Таймер выключится самостоятельно, если в течение 10 с после установки времени не была нажата кнопка запуска. Для запуска отсчёта времени необходимо снова нажать кнопку энкодера. При этом таймер начинает отсчёт установленного времени, а на индикаторе единиц минут с периодом в 1 с будет мигать децимальная точка, индицирующая режим обратного отсчёта. По истечении установленного времени на индикаторе таймера высветится цифра 0 и прозвучат 5 тональных сигналов. После этого цифра 0 погаснет, а децимальная точка будет мигать ещё 10 с. По истечении и этого времени, в напоминание, снова прозвучат 5 тональных сигналов, и таймер выключится. Остановить работу таймера можно принудительно в любой момент, нажав кнопку энкодера.

Схема, конструкция и детали таймера

Принципиальная схема кухонного таймера показана на рис.1. «Мозгом» устройства является микроконтроллер (МК) IC1 типа ATtiny2313 фирмы ATMEL в корпусе DIP20. Микроконтроллер ATtiny2313 тактируется от внутреннего генератора частотой 8 МГц с выключенным предделителем на 8.

Рисунок 1

Для управления таймером применён инкрементный энкодер с кнопкой фирмы Bourns типа РЕС12-4220F-S0024.В качестве индикатора установленного времени применён сдвоенный 7-сегментный индикатор красного свечения с общим катодом (ОК) фирмы SENIOR SEC5244WS.

Предусмотрена также возможность установки в этом таймере индикаторов с общим анодом (ОА) без изменения принципиальной схемы и платы. Для этого необходимо при программировании МК использовать другую прошивку, разработанную автором специально под индикаторы с ОА, В качестве звукового извещателя используется зуммер (Magnetic Buzzer) типа КХ-1205 фирмы King-state. В таймере использованы SMD-резисторы и конденсаторы типоразмера 0508.

Таймер собран на односторонней печатной плате из фольгированного текстолита размерами 48×56 мм с использованием нескольких перемычек, которые размещены со стороны установки деталей. Чертёж печатной платы таймера под ЛУТ показан на рис.2.

Рисунок 2

Для питания таймера от внешнего адаптера применён линейный интегральный стабилизатор 78L05 в корпусе SOP-8. Схема дополнительной платы для внешнего адаптера показана на рис.З, а чертёж печатной платы под ЛУТ — на рис.4. Её размеры 48×66 мм. Батарейный отсек для трёх гальванических элементов изготовлен из фольгированного текстолита. Причём его обратная сторона — это дополнительная плата внешнего адаптера питания. Если в питании устройства от сети нет необходимости, то собирать дополнительную плату не нужно, а вместо нее следует установить плату из фольгированного стеклотекстолита того же размера.

Рисунок 3

Рисунок 4

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

Архив для статьи «Простой кухонный таймер на ATtiny2313»

Описание: Файл прошивки микроконтроллера, макет печатной платы Eagle

Размер файла: 99.86 KB Количество загрузок: 800

admin

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Наверх