Ещё в прошлом 2021 году приобрёл микроконтроллеры ATTiny24A. Позанимался с ними. Потом возникла идея на основе этого микроконтроллера сделать что-то типа своего Arduino. В настоящее время очень даже бюджетный вариант для небольших проектов. Далее что получилось.
В 2022 году, в мае, модернизировал плату, поставив на неё кварцевый резонатор и стабилизатор HC7533 на +3,3 В. Приобрёл для этой платы микроконтроллер ATTiny24A, однако мне прислали в этот раз МК в корпусе ATTiny24A уже ATTiny44. Видать Пространство решило мне компенсировать за прошлый раз , когда мне в корпусе ATTiny44 прислали ATTiny24. Что ж, хорошее Arduino получилось.
В 2024 году, в мае, для моей Arduino на ATTiny24/44/84 v3.0 поставил микроконтроллер ATTiny84A. В Приложении есть пример продвинутого блинка.
Платформа Arduino привлекает тем, что микроконтроллер установлен на плату, на которой есть необходимая "обвязка" для быстрого использования его в любых проектах. Изначально использовался микроконтроллер AVR ATMega328 и родоначальником всех Arduino была плата Arduino Uno
. Потом пошли разные вариации как по замене микроконтроллеров, так и по размерам плат и сервисов на них.
Есть варианты Arduino где используется ATTiny85, который называется digispark
. Есть Arduino на основе ATTiny88 – это плата MH-ET LIVE Tiny88
. Никто не мешает нам продолжить это направление и в данном случае, имея небольшой, по своим возможностям микроконтроллер ATTiny24A, сделать на нём свою Arduino_ATTiny24/44/84
.
Для этого необходимо вывести все порты, установить минимальную "обвязку", т.е. светодиоды, конденсаторы, резисторы, кнопку, контакты для программирования.
Замечу, что у ATTiny24A нет последовательного порта (Rx-Tx) и программировать его, как это делается с ATMega, не получится. Зато у этого МК есть возможность программировать по протоколу ISP – In System Programming. Соответственно для программирования требуется иметь программатор, к примеру, USBasp
. Такой программатор стоит недорого и его одного вполне хватит на все такие проекты. В проекте автополива комнатных растений как раз он и использовался, для программирования ATTiny13 (Автополив комнатных растений).
Приложении.
У меня микроконтроллер ATTiny24A в корпусе SOIC-14. Поэтому определился сделать схему и саму конструкцию под формат Arduino Pro Mini
в DIP-24. Сама схема на картинке ниже. Как видно имеется два светодиода. Один HL1 для индикации напряжения питания, второй HL2 аналогичен светодиоду на выводе 13 у Arduino Uno
. В моём варианте этот светодиод подключен к выводу 9 (PA4), который ещё используется как SCL.
Вывод 4, на котором выведен RESET, подтянут к напряжению питания через резистор R3 10кОм. В описании на микроконтроллер рекомендуют это делать. На этом же выводе подключена кнопка, для перезагрузки микроконтроллера.
По питанию установлен конденсатор C1, для отфильтровывания помех.
Схема, можно сказать, простейшая.
Для повышения точности временных интервалов, возможно подключение внешнего кварцевого резонатора, что имеет преимущество по сравнению с ATTiny13.
В третьей версии схемы была добавлена цепочка C3, C4, ZQ1, чтобы микроконтроллер работал с внешним кварцевым резонатором, что существенно повышает точность временных интервалов. Так же был добавлен стабилизатор 7533 с низким током потребления в режиме ожидания (по справочнику до 5 мкА, мой, установленный на плате, реально потребляет всего 2 мкА). Все остальные контакты совпадают для преемственности версий.
Эта схема была опробована с МК ATTiny44.
Плата, как говорил выше, сделана под формат Arduino Pro Mini
DIP-24. Размеры платы: 32,5 * 19 мм. На плате, согласно схеме, установлены необходимые детали. Отдельно выведены контакты стандартного 6-контактного разъёма ISP для подключения программатора USBasp
. Плата имеет избыточное число контактов относительно самого МК. Поэтому для удобства пользования некоторые контакты продублированы на разные стороны платы.
Программировать мою версию Arduino можно так же из среды Arduino IDE.
Чтобы загрузить скетч в микроконтроллер, в меню Скетч
необходимо выбрать пункт Загрузить через программатор
, а в меню Инструменты - Программатор
должен быть установлен Ваш программатор, у меня это USBasp
.
Программирование такое же как и ATTiny13. В Вашей Arduino IDE должны быть установленны библиотеки для работы с МК типа ATTiny24/44/84, так называемое ядро ATTiny Microcontrollers
.
Ниже на картинке показываю настройку среды Arduino IDE.
В качестве примера программирования в Приложении есть файл attiny24_solo_blink_1.ino с программой blink.
Плата односторонняя. Имеет три перемычки.
Файл платы смотрите в Приложении в общем архиве.
Ниже на фото первая версия платы. Попользовавшись ей, обнаружил, что требуется некоторая доработка. Поэтому была создана вторая версия. Первая версия вполне работоспособная и на ней тоже можно собрать какой-нибудь небольшой проект...
2022-12-18Вот и пришло время, собрал на плате первой версии Измеритель температуры на датчике DS18B20
. Архив измерителя attiny24_ds1820_tm1637.rar.
Как видно на фото, в первой версии были две перемычки.
Вторая версия более оптимизирована. Установлен светодиод на вывод SCL, он аналогичен светодиоду на выводе 13 у Arduino Uno
, Arduino Nano
, Arduino Pro Mini
.
У второй версии уже три перемычки. Наклеиваю этикетки с указанием контактов разъёма SPI, чтобы легко ориентироваться как подключать разъём от программатора.
На фото ниже сразу два варианта самодельной ARDUINO_ATTiny24A
. Слева – вариант первый, справа – вариант второй. Можно видеть небольшие отличия.
На фото вариант 3 самодельной ARDUINO_ATTiny24/44/84
. В данном случае на плате установлен микроконтроллер ATTiny44.
Пришлось поменять некоторые компоненты на меньшие, чтобы вместить дополнительно стабилизатор на +3,3В и кварцевый резонатор на 8МГц с двумя конденсаторами по 22пФ. Светодиоды тоже использовал меньших габаритов.
Так как использую одностороннюю плату, то пришлось часть соединений сделать перемычками. При использовании двухсторонней платы, можно было бы развести всё в двух слоях без перемычек. Всего получилось 5 перемычек, установленных на обратной стороне. На ней же установлен и кварцевый резонатор.
Ниже на фото список используемых компонентов.
После окончательной проверки проекта, приступил к изготовлению платы. Плату делал методом ЛУТ. Тонер ложится немного с пропусками, поэтому дорожки имеют некоторые изъяны, хотя это не влияет на работоспособность устройства. Чтобы их совсем не перетравить, пришлось чуть раньше прекратить процесс. Небольшой артефакт недотравленной фольги легко убрал резачком.
Потом просверлил все необходимые отверстия и облудил дорожки. Спичка для сравнения, сразу видно какие реальные размеры имеет плата (спичка как бревно ).
Спаял всё устройство. Ювелирная работа, пришлось использовать третью руку
с увеличилкой, уж больно там всё мелко. Спичечный коробок для сравнения размеров.
Тут сама плата покрупнее, получше видно... смотрю и сразу вижу ряд огрех, ну да ладно, это заметно только когда такое сильное увеличение, а в реале ничего такого и не видно . Светодиодики вначале хотел ставить более крупные, но неожиданно у меня появились хорошие маленькие светодиодики. Поставил лучшее, а плату потом уже доработал, увеличил контактные площадки под эти светодиоды.
На нижней стороне установлен кварцевый резонатор и перемычки. Одну перемычку пропустил, потом её допаял со стороны элементов. На фото выше виден синий проводок.
Сфотографировал две моих Ардуинки верии v2 и v3 вместе. Хорошо видны отличия. Третья версия на мой взгляд изящнее и имеет больший функционал. То, что установил сверхэкономичный стабилизатор 7533, позволяет от этой Ардуино запитывать разные датчики с питанием на +3,3В. Стабилизатор 7533 на выходе выдаёт до 100 мА тока, что достаточно для питания маломощных устройств. Раньше делал разные счтабилизаторы сам, но этот очень хороший, у него ток покоя, когда нет нагрузки, составляет всего 2 мкА!!! Лучшего и придумать невозможно (Отдельное спасибо Константину К., он меня надоумил использовать этот стабилизатор, а Александру К. спасибо за кнопочку, как раз то, что нужно).
Обычно заводские фьюзы у МК установлены так:
Fuse High Byte:
BODLEVEL2...0 = 101,
Fuse Low Byte:
CKDIV8 = 0,
CKSEL3...0 = 0010,
SUT1...0 = 10
* - значение фьюзов прямое, т.е.:
0 - Включен.
Такие установки позволяют МК работать без внешнего кварцевого резонатора с тактовой частотой 1 МГц. Если нет необходимости в установке кварцевого резонатора, то можно оставить заводские фьюзы и использовать эту ардуино как есть. Однако, если необходимы более чёткие и стабильные интервалы времени, то рекомендую установить кварцевый резонатор на 8.0...16.0 МГц.
Чтобы запрограммировать работу микроконтроллера ATTiny24/44/84 от внешнего кварцевого резонатора, вам потребуется установить фьюз биты CKSEL3...0 и SUT1...0.
В моей ардуино использую кварцевый резонатор на 8.0 МГц, тогда фьюз биты, согласно описанию на микроконтроллер необходимо выставить так: CKSEL3...0 = 1101 и SUT1...0 = 10, замечу, что CKDIV8 = 1, т.е. выключен.
Fuse bits for Crystal Oscillator 3.0-8.0 MHz:
CKSEL3 = 1 - Выключен
CKSEL2 = 1 - Выключен
CKSEL1 = 0 - Включен*
CKSEL0 = 1 - Выключен
SUT1 = 1 - Выключен
SUT1 = 0 - Включен*
CKDIV8 = 1 - Выключен
* - значение фьюзов прямое.
Fuse bits for Crystal Oscillator 8.0- MHz:
CKSEL3 = 1 - Выключен
CKSEL2 = 1 - Выключен
CKSEL1 = 1 - Выключен
CKSEL0 = 1 - Выключен
SUT1 = 1 - Выключен
SUT1 = 0 - Включен*
CKDIV8 = 1 - Выключен
* - значение фьюзов прямое.
Для записи новых фьюзов использовал программу AVRDUDE_PROG_v3.3.rar
, однако фьюзы можно записать и из среды Arduino IDE
. Для этого зайдите в меню пункта Инструменты
и там нажмите на кнопку Записать Загрузчик
. Выбранные вами настройки для вашего микроконтроллера запишутся во фьюзы. Делать такую операцию нужно всего один раз, чтобы сконфигурировать работу микроконтроллера на внутренний (Internal
) или внешний (External
) генератор и установить рабочую частоту (Clock
). На мой взгляд, такой способ гораздо проще и легче для начинающих.
На разработанную плату v3 был установлен микроконтроллер ATTiny44 (в корпусе от ATTiny24A), но можно поставить и ATTiny84, что существенно расширит возможности написания программы для этого Ардуино.
Чтобы не использовать технологии травления, изготовил четвёртый вариант моей Arduino_ATTiny24/44/84
Этот вариант выполнен на основе куска монтажной платы с металлизированными отверстиями размерами 38 * 30 мм. Габаритные размеры всего Arduino_ATTiny24/44/84 не превышают 38 * 30 * 17 мм. Микроконтроллер ATTiny24/44/84, любой из этой серии установлен на переходную плату, предназначенную для установки микросхем в корпусе SOP-14. Переходная плата имеет размеры 18 * 18 мм. Расстояние между выводами 15,24 мм. Если у вас нет такой переходной платы, то можно купить на Алиэкспрессе, либо, в крайнем случае, изготовить самому любым доступным методом, вплоть до прорезания дорожек на куске фольгированного стеклотекстолита.
Такой вариант Arduino может изготовить любой желающий, любой начинающий познавать интересный мир Arduino.
На плате установлены все необходимые элементы: светодиод питания и светодиод на PA4/SCK (типа LED_BUILTIN на пине 13 у Arduino Uno), с необходимыми для них резисторами по 1кОм, кварцевый резонатор на 8МГц и к нему два конденсатора по 22пФ, кнопка сброса, резистор подтяжки вывода PB3/RESET к +5В номиналом 10кОм. Для программирования установлен соответствующий 6-контактный разъём.
Сам микроконтроллер в любой момент может быть снят и заменён на другой из серии ATTiny24/44/84, что удобно для проверки разных микроконтроллеров или изменении возможности этой Arduino.
На обратной стороне платы монтаж выполнен одножильными проводниками в изоляции.
При необходимости, переходную плату с микроконтроллером можно всегда снять или заменить на другую. По бокам розеток под выводы переходной платы установлены штыревые контакты – для макетирования схем или для подключения любых внешних устройств или элементов: кнопки, светодиоды, реле и т.п.
Для большего удобства при макетировании разных устройств, можно снизу плату защитить куском из оргстекла или акрила, прикрепив на небольших стойках.
На виде сбоку видны штыревые контакты, которые подключены параллельно выводам микроконтроллера. На этой версии Arduino_ATTiny24/44/84 были разработаны многие примеры, которые можно скачать в Приложении
.
По размерам Arduino_ATTiny24/44/84 одна из самых маленьких, хотя и обладает всеми необходимыми качествами. Удобно пользоваться при разработке и отладке скетчей.
Сделал маленькую струбцину из дуба. С помощью этой струбцины теперь можно фиксировать микроконтроллер в корпусе SOP-14 на переходной плате, что позволяет быстро проверить несколько микроконтроллеров на их работоспособность или проверить их фьзы.
Ниже на фото версия v4 платы Arduino_ATTiny24/44/84, струбцина, микроконтроллер ATTiny44A-SSU и спичечный коробок для сравнения размеров.
Корупным планом как происходит прижим микроконтроллера к переходной плате.
Потом на плату добавил ещё пару конденсаторов по питанию: 220 мкФ и 0,1 мкФ параллельно, дополнительно два котнакта VCC и один контакт GND – для удобства макетирования.
В заключение можно сказать, что на разработанную плату v4 был установлен микроконтроллер ATTiny44A-SSU, его стоимость с доставкой из Китая обошлась в 66,41 P.
В настоящее время этот вариант Arduino является самым недорогим и вполне доступным, а микроконтроллеры ATTiny24, ATTiny44, ATTiny84 являются хорошей заменой ранее самого недорого и популярного микроконтроллера ATTiny13, при этом обладая гораздо большими ресурсами как по памяти, так и по количеству выводов и по возможности подключения кварцевого резонатора, что гораздо удобнее и точнее при создании устройств с временнЫми процессами.
2022-07-17Различные примеры программирования этой Ардуино можно посмотреть в Приложении
.
Тестовый светодиод по шагам зажигается до максимума, потом мигает один раз встроенный светодиод, далее тестовый светодиод по шагам гаснет и мигает встроенный светодиод два раза. Arduino_ATTiny24A
подключено к USBasp-программатору.
Скетч примера attiny24_pwm
смотрите в Приложении
.
Плата v4. На неё можно устанавливать без пайки любой микроконтроллер из ATTiny24/44/84 через прижим к контактной площадке.
В МК записан blink: мигаем 3 раза, пауза и далее опять мигаем 3 раза - микроконтроллер рабочий. Arduino_ATTiny24A
подключено к USBasp-программатору.
Скетч примера 1. Блинк: attiny24_solo_blink_1
смотрите в Приложении
.
Проверяем работу МК. На Вывод PA0/A0/0 (и далее на все выводы) выводим сигнал управления светодиодом.
В МК записан blink: мигаем 3 раза, пауза и далее опять мигаем 3 раза - микроконтроллер рабочий. Arduino_ATTiny84A
подключено через USBasp-программатор.
Скетч примера 13. Продвинутый вариант блинка: attiny84_multi_blink_1
смотрите в Приложении
.
Проверяем работу PWM(ШИМ). Вначале, при старте программы, по нажатии на кнопку RESET на плате Ардуино проверяется работоспособность светодиода 1 секунду.
Далее, при нажатии на кнопку на панели яркость тестового светодиода увеличивается по шагам. При достижении максимальной яркости мигает один раз встроенный светодиод, далее тестовый светодиод по шагам гаснет и мигает встроенный светодиод два раза.
Arduino_ATTiny84A подключено через USBasp-программатор. Arduino_ATTiny84A
подключено через USBasp-программатор.
Скетч примера 14. Проверка ШИМ(PWM): attiny84_pwm
смотрите в Приложении
.
Используемые материалы для создания ARDUINO_ATTiny24/44/84: