Как подключить Digispark ATTINY85. Как прошить загрузчик в Digispark. Как программировать Digispark в Arduino IDE. Какие особенности у платы Digispark на базе ATTINY85. Как использовать выводы Digispark.
Что такое Digispark ATTINY85 и для чего он используется
Digispark ATTINY85 — это миниатюрная плата разработки на базе микроконтроллера ATtiny85. Она отличается компактными размерами, низкой стоимостью и простотой использования. Основные характеристики платы Digispark:
- Микроконтроллер: ATtiny85
- Рабочее напряжение: 5В
- Размеры платы: 18×15 мм
- 6 доступных выводов ввода/вывода
- Встроенный USB-интерфейс для программирования
- Встроенный светодиод на выводе P1
Digispark используется для создания компактных устройств и проектов, где требуется минимум выводов и функционала. Например:
- USB-устройства (мышь, клавиатура, джойстик)
- Системы управления светодиодами
- Простые датчики и сенсоры
- Миниатюрные роботы
- IoT-устройства
Благодаря встроенному USB-интерфейсу, Digispark легко программируется через Arduino IDE без дополнительных программаторов.
![](/800/600/https/ke-images.servicecdn.ru/chj69f6ob1l0fmtrukhg/original.jpg)
Схема подключения Digispark ATTINY85
Схема подключения Digispark ATTINY85 достаточно проста благодаря малому количеству выводов. Основные моменты:
- VCC и GND — питание платы 5В
- P0-P5 — цифровые входы/выходы общего назначения
- P1 — подключен встроенный светодиод
- P3, P4 — могут использоваться как I2C (SDA, SCL)
- P0, P1, P2 — поддерживают ШИМ
- P2, P3, P4 — имеют АЦП
При подключении внешних компонентов важно учитывать, что некоторые выводы имеют двойное назначение. Например, P3 и P4 используются для USB-интерфейса, поэтому их не рекомендуется задействовать при работе с USB.
Как прошить загрузчик в Digispark ATTINY85
Прошивка загрузчика в Digispark выполняется один раз перед началом работы с платой. Процесс прошивки:
- Установите Arduino IDE и пакет поддержки Digispark
- Выберите плату «Digispark (Default — 16.5mhz)» в Arduino IDE
- Загрузите пустой скетч в плату
- При появлении сообщения, подключите Digispark к USB
- Дождитесь завершения прошивки загрузчика
После этого Digispark готов к программированию через Arduino IDE. Загрузчик позволяет легко обновлять прошивку платы без использования отдельного программатора.
![](/800/600/https/cdn1.ozone.ru/s3/multimedia-5/6669030713.jpg)
Программирование Digispark ATTINY85 в Arduino IDE
Процесс программирования Digispark в Arduino IDE выглядит следующим образом:
- Создайте новый скетч в Arduino IDE
- Напишите код программы
- Выберите плату «Digispark (Default — 16.5mhz)»
- Нажмите кнопку «Загрузка»
- При появлении сообщения, подключите Digispark к USB
- Дождитесь завершения загрузки программы
Особенности программирования Digispark:
- Ограниченный объем памяти (6 КБ флеш, 512 байт ОЗУ)
- Отсутствие аппаратного UART
- Нестандартная нумерация выводов (P0-P5 вместо D0-D13)
- Необходимость подключать плату вручную при загрузке
При написании кода важно учитывать ограничения платформы и использовать оптимизированные библиотеки для экономии памяти.
Использование выводов Digispark ATTINY85
Выводы Digispark ATTINY85 имеют следующие особенности и возможности:
- P0 — цифровой ввод/вывод, ШИМ
- P1 — цифровой ввод/вывод, ШИМ, встроенный светодиод
- P2 — цифровой ввод/вывод, ШИМ, АЦП
- P3 — цифровой ввод/вывод, АЦП, I2C (SDA)
- P4 — цифровой ввод/вывод, АЦП, I2C (SCL)
- P5 — цифровой ввод/вывод, сброс
При использовании выводов важно учитывать следующие моменты:
![](/800/600/https/3d-diy.ru/upload/iblock/ac7/mikrokontroller-Digispark.jpg)
- P1 соединен со встроенным светодиодом через резистор
- P3 и P4 используются для USB и не рекомендуются при работе с USB
- P5 может быть использован как вывод сброса
- Все выводы имеют встроенные подтягивающие резисторы
Для работы с выводами используются стандартные функции Arduino: pinMode(), digitalWrite(), digitalRead(), analogWrite(), analogRead().
Проекты на базе Digispark ATTINY85
Несмотря на ограниченные возможности, на базе Digispark можно реализовать множество интересных проектов:
- USB-мышь или клавиатура
- Генератор случайных паролей
- Светодиодная вывеска или гирлянда
- Датчик температуры с выводом на LED-дисплей
- Простой осциллограф
- Игровая консоль на светодиодной матрице
- USB-программатор для микроконтроллеров
- Система умного дома на базе I2C датчиков
При разработке проектов важно учитывать ограничения платформы и оптимизировать код для экономии памяти. Использование прерываний и спящих режимов позволяет создавать энергоэффективные устройства на базе Digispark.
Преимущества и недостатки Digispark ATTINY85
Платформа Digispark имеет ряд преимуществ и недостатков, которые важно учитывать при выборе для проекта:
![](/800/600/https/forum.cxem.net/uploads/monthly_05_2016/post-201181-0-69571400-1463421840.jpg)
Преимущества Digispark:
- Компактные размеры
- Низкая стоимость
- Простота использования
- Встроенный USB-интерфейс
- Совместимость с Arduino IDE
- Низкое энергопотребление
Недостатки Digispark:
- Ограниченное количество выводов
- Малый объем памяти
- Отсутствие аппаратного UART
- Ограниченные возможности отладки
- Нестандартная нумерация выводов
- Необходимость ручного подключения при программировании
Digispark отлично подходит для простых проектов и обучения, но для сложных задач может потребоваться более мощная платформа.
Альтернативы Digispark ATTINY85
Существует ряд альтернативных платформ, которые могут использоваться вместо Digispark в зависимости от требований проекта:
- Arduino Nano — больше выводов и памяти, выше производительность
- ESP8266 — встроенный Wi-Fi, больше памяти и выводов
- ATtiny84 — больше выводов при схожих размерах
- STM32 «Blue Pill» — высокая производительность при низкой цене
- Raspberry Pi Pico — мощный микроконтроллер с двумя ядрами
При выборе альтернативы важно учитывать требования к размерам, энергопотреблению, производительности и функциональности. Для многих проектов Digispark остается оптимальным выбором благодаря сочетанию компактности, простоты и низкой цены.
![](/800/600/https/telinks.wordpress.com/wp-content/uploads/2014/10/skematikusbioioio.jpg)
Продвинутое авто выключение принтера.
Всем бобра.
Сразу скажу, схему и скетч делал под плату(ы) Lerdge, но думаю не составит труда переделать скетч под другие, а скорее всего сигнал выключения будет одинаков на всех управляющих платах.
После покупки моего первого дрыгостола и постройки к нему из икеевских столов камеры, начала напрягать тема выключения, когда строил, думал, сверху сделаю ему управление камерой, все навороты туда размещу, с пришествием некоторого времени, понял с дрыгостолом каши не сварить и палату менять нужно и в целом принтер менять необходимо. Собрал Z-Bolt Plus воткнул плату управления посерьезнее. И в порыве творческой страсти, свернул своему «болту» горло термобарьера, заказал новый, и пока он мчится из поднебесной, прямо из рук чуткого, внимательного, но очень медлительного дядюшки Ляо. Решил, не поковыряться ли мне в кишках принтера.
Сначала сделал плату с кнопкой и выключателем, в итоге даже не подключал, не нравится мне, тут переключил, там нажал. Решил нужен триггер, нарисовалась схема на NE555, поиграл в протеусе на этом все закончилось, т.к. У меня нет схемотехнического образования, да в общем электроника для меня, взял готовую схему собрал.
Погуглил ничего готового не нашел. Поставил для себя задачу, 1 кнопка и включает и выключает, но при этом должна оставаться функция выключения с платы управления принтером, защита от случайного нажатия (для включения/отключения нужно удерживать кнопку 2 секунды). Поковырял загашники, нашел ATtiny85. В сети, я нашел очень интересный проект Digispark, он шикарным образом подходил для моих целей, я не умею писать программы в атмел студио, только ардуино и кривокод. Digispark это как раз тинька скрещенная с arduino IDE Схема Digispark:
Осталось навесить на ноги тиньки обвязку, получилась такая схема:
Развел вытравил, написал скетч и оно работает!
Приступаем.
Есть подробная инструкция созданию Digispark ТУТ
Шьем в тиньку bootloader
Прошивка ТУТ, а так же я продублировал в архив.
!!!!Фьюзы!!!! (с ними нужно быть очень аккуратно можно легко получить кирпич вместо тиньки):
Extended: 0xFE
High: 0xDD
Low: 0xE1
Когда то давно я сделал себе программатор AVR STK500 by Petka и переходников несколько штук, такой очень удобен для корпусов SOIC:
Травим плату, ваша будет немного отличаться от той, что на фотографиях, т.к. я сделал сначала с линейным стабилизатором 78L05 в SO-8 корпусе, но он работал с включенным реле на пределе своих возможностей 100mA грелся, для статьи я изменил немного схему только поменяв 78L05 на корпус D2PAK, он уже по серьезнее будет.
Напаиваем все, что касается Digispark, а именно D1,D2,D3,R1,R2,R3,C1,U1, а так же понадобится LED1, LED3, R4,R9. Крестимся и подключаем к компьютеру. Если вы прошили и подпаяли все верно, в диспетчере устройств должно появится устройство Digispark Bootloader. После установки драйверов которые находятся ТУТ , а именно DigisparkArduino-Win32-1.0.4-March39.zip должно появится вот такое устройство, оно будет «моргать» периодически в диспетчере устройств, это нормально, загрузчик пытается запустить программу, которой пока еще нет в тиньке.
Далее настраиваем ARDUINO IDE вносим:
Файл >> Настройки >> «Дополнительные ссылки для менеджера плат» http://digistump.com/package_digistump_index.json
Выбираем плату Digispark
и программатор
Заливаем скетч.
После того как скетч залит, пройдет примерно 1-2 секунды и LED3 должен начать светится от яркого до почти выключенного состояния (на картинке он синий). Устройство libusb исчезнет из диспетчера задач, а виндовс может начать ругаться, что подключено неизвестное устройство, так и должно быть.
Напаиваем остальные элементы, PC817 можно в дип корпусе, я просто подогнул ножки таким образом что бы они встали на площадки SMD, лишнее откусил. Сам оптрон очень популярен встречается повсеместно, большинстве импульсных блоков питания он есть, можно раскурочить или купить, я выпаял из сломанного бесперебойника, там их 3 было. Или купить стоит сущие копейки.
Остальную рассыпуху можно так же добыть блоках питания и другой старой ненужной технике, но лучше просто купить ). Подключаем кнопку и подаем питание опять. Удерживаем кнопку, должно щелкнуть реле и засветится LED2 (красный).
если удержать еще 2 секунды, реле выключится и LED2 потухнет, начнет опять ШИМится LED3 от яркого к тусклому и обратно.
Подумайте о дежурных 5v, я распотрошил старую зарядку от NOKIA
Отключаем принтер от сети 220v!!!!
К разъёму питания принтера в параллель подключаем 220v от блока питания автовыключалки. Разрываем один провод, который идет на питание принтера (у меня разорван белый провод)
подключаем оба контакта к разъему 220V 50HZ
!!!(будте очень внимательны, 220 это не игрушки, может жестко все закончится)!!!
Подключаем кнопку в разъем X6 (Button), внешний светодиод если нужен в X5 (Stand-by), подключаем +- от блока питания дежурки в разъем (Power). Ну и последнее, выключалку я делал под свою плату Lerdge на ней есть разъем «power manedgment» когда линия сигнал в низком состоянии, плата включена, когда в высоком пора выключаться, к сожалению, у меня нет других плат для тестирования.
Готово.
В тиньке осталось две ноги свободные, если будут предложения интересные можно навесить что-то и на них, места с избытком порядка 4.5кб, 2кб съел загрузчик и 1.3кб мой кривокод.
АРХИВ
Удачи.
микроконтроллеры против линейных регуляторов / Хабр
Волшебный дым (также «электронная фея» или «полупроводниковый джинн») — магический едкий дым, на котором работают все микросхемы в мире до тех пор пока не происходит чрезмерная электрическая нагрузка с перегревом, и волшебный дым гневно удаляется из микросхемы навсегда, после чего та перестаёт работать.
У меня неравной борьбы не выдержали Digispark, ESP-01 и Arduino pro mini 3.3V
Нетерпеливым можно посоветовать использовать step-down на MP1584EN, остальным — добро пожаловать по кат.
Итак, сначала был электровелосипед на digispark.
И естественно, не обошлось без «полупроводникового джинна» — китайский линейный регулятор 78M05 буквально сгорел в дыму и пламени, плюнув вверх расплавленным пластиком:
Странно, что по даташит-у элемента входное напряжение заявлено до 35 Вольт, а уже при 28 — такие спецэффекты!
Это тем более непонятно, что при потреблении микроконтроллером ~10мА вообще ни один параметр регулятора не должен был выйти за рамки по тепловому режиму.
Ввиду того, что дело было в деревне, и step-down взять было негде(ага, а Digispark под рукой был ;-), поставил костыль из 330Ом последовательно по цепи питания.
Списал все на надежность китайской техники.
Потом «электронная фея» посетила меня на управлении 12-вольтовым двигателем с помощью ESP-01:
Ну тут сам виноват — поставить ams1117 рассеивать такую мощность (около 1.5W)
Попробовал регулятор на LM317 в корпусе TO220 — и тот без радиатора грелся черезмерно.
Итог — поставлен простейший регулятор на MP1584EN :
Преимущество перед другими step-down — сама схема регулятора потребляет всего 0.3мА (хотя по доке может и 0.1 )
И надо сказать, такое питание положительно сказалось на стабильности ESP-шки.
Но самую вишенку я приберег для последней части.
Сейчас стали широко использоваться LDO-регуляторы (с низким падением напряжения — около 0.1В и низким потреблением — ~0.1мА)
Для сравнения на AMS1117 падает ~0.5В и кушает она 5 миллиампер.
Все прекрасно в LDO-шках, за исключением одного — входное напряжение до 6 вольт и токи до 300мА
Нет, «синюю пилюлю» (STM32) питать от USB — cамое оно, но зачем их паять на платы Arduino Pro Mini 3.3V, если сам чип нормально работает до 5.5В???
Разве что для работы с устройствами с 3.3В TTL
Тем более, что стандартная мини-плата комплектуется нормальным преобразователем на MIC5205 (KB33,LB33, KBAA) со входным напряжением до 20Вольт.
И какая-же была моя реакция когда из преобразователя ардуинки, включенной на 12В пошел дым?
Англоязычный энтузиаст was surprised, как-же, я поднял напряжение до 15 вольт — но искр так и не получил!
В общем, если Вы планируете пользовать микроконтроллер с 12В питанием (на самом деле, гелевые батареи от бесперебойников дают до 14.8В), то лучше взять step-down преобразователь.
Если вдруг черт дернул использовать Arduino Pro mini 3.3В без такового, обращайте внимание на маркировку бортовых преобразователей.
KB33, LB33, KBAA, L0RA, L0RB, LG33 скорей всего будут работать — они рассчитаны на 15-19Вольт
Но лучше прежде чем паять схему, стоит сделать преобразователю «Тест на дым» — 4B2X и 52RL его не прошли.
Пятивольтовые ардуинки обычно содержат «трехногие» клоны AMS1117 и таких проблем не имеют.
На версиях PRO Mini 5V обычно идут пятиногие KB50 с низким потреблением и падением напряжения, при входном до 20В.
Но потребление самого чипа на пяти вольтах удручает!
В общем, удачных Вам самоделок, и пореже видеть полупроводникового джинна!
С уважением, Андрей.
attiny — проблема с ATtiny167
Задать вопрос
спросил
Изменено 2 года, 7 месяцев назад
Просмотрено 328 раз
\$\начало группы\$
Я успешно использую Digispark Pro со своей программой.
Я купил новый чип ATtiny167 для нестандартной печатной платы (для HID USB-устройства). Использую схему с: https://electrobattery.ru/product/plata-arduino-digispark-pro-attiny167/
и это не работает. Результат: «Неизвестное USB-устройство (сбой запроса дескриптора устройства)».
Что пробовал:
- Считал предохранитель с моего digispark pro (E:FE H:DD L:DF). Я написал этот предохранитель успешным. Я читаю flash с моего Digispark Pro. Я написал, что эта вспышка прошла успешно. Не работает.
- Пробовал такой вариант: Как написать загрузчик и драйвера для ATtiny167. такой же результат.
- i Пробовал micronucleus 2.04 (https://github.com/micronucleus/micronucleus) с обоими вариантами предохранителей. такой же результат.
Часть 2: Выпаиваю чип (старый чип) из своего рабочего digispark pro, который успешно работает с USB. И попробовал использовать этот чип на моем макете. Результат: «Неизвестное USB-устройство (Ошибка запроса дескриптора устройства)»
Попробовал другой вариант: взял новый чип и впаял его в digispark pro. Попробуйте 6 комбинаций: 2 варианта фуза и 3 варианта прошивки (probootloaderr2.zip с http://digistump.com/wiki/digispark/tutorials/proisp; t167_default.hex dвdrom https://github.com/micronucleus/micronucleus/ tree/master/firmware/releases и считывал прошивку с моего Digispark Pro). Результат: «Неизвестное USB-устройство (запрос дескриптора устройства не выполнен)»
Я вернул старый чип в digispark pro. все работает хорошо.
ЧТО за проблема((( Помогите пожалуйста
У меня только фьюзы пишут и прошивают в чип. Может быть, я должен сделать что-то еще?
Пожалуйста, помогите.
- Аттини
\$\конечная группа\$
9
\$\начало группы\$
Надеюсь, вы не скопировали схемы. На схемах выводы питания к ATTiny167 не подключены, поэтому очевидно, что он не будет работать.
\$\конечная группа\$
6
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie
.![](/800/600/http/ae01.alicdn.com/kf/H41f58c920ffe45448321520d209db230O.jpg)
отладка — режим вывода digispark input_pullup низкий уровень на выводе 1
спросил
Изменено 4 года, 10 месяцев назад
Просмотрено 2к раз
\$\начало группы\$
У меня есть плата разработки Digispark, которую я использую с Arduino IDE.
Я установил Pin 1 HIGH
с pinmode(1, INPUT_PULLUP)
, и подключенный светодиод включается, но когда я выполняю digitalRead(1)
, я получаю ответ LOW
.
Это из-за того, что светодиод при включении тянет штифт в низкий уровень?? И если да, то будет ли отпайка светодиода SMD решением для того, чтобы сделать этот вывод доступным?
На самом деле я проделал то же самое с выводами 0, 2, 3 (т. е. с подтягиванием), и все выводы читаются как высокие, кроме контакта 1.
- отладка
\$\конечная группа\$
8
\$\начало группы\$
Вы эффективно создали эту ситуацию:
Ток через светодиод будет приблизительно равен:
5 / 30000 = 0,167 мА
Светодиод будет гореть тускло. Падение напряжения на красном светодиоде обычно составляет около 2 В, но при этом токе я измерил 1,5 В на тестовой установке.
Резистор на 150 Ом (или что бы вы ни использовали) не будет иметь большого значения для этого напряжения. Следовательно, на входе есть 1,5 В.
Когда вы выполняете цифровое чтение, вы читаете 1,5 В. Предполагая, что ваш Vcc равен 5 В, в техническом описании Attiny85 указано, что низкое значение составляет от \$-0,5 В\$ до \$0,3 * Vcc\$ (т.е. до 1,5 В), а высокое значение составляет от \$0,6 * Vcc\. $ (3V) до \$Vcc + 0,5\$.
Следовательно, на входном контакте отображается НИЗКИЙ уровень.
Таким образом, удаление SMD-светодиода должно позволить контакту подняться до значения подтягивания, а затем на цифровом считывании (1) должно появиться значение HIGH
Да, удаление светодиода остановит протекание тока на землю.
\$\конечная группа\$
3
\$\начало группы\$
Digispark представляет собой аккуратную небольшую печатную плату на основе Atmel (Microchip) ATtiny85.
К контакту 1 на самом деле подключен светодиод как часть схемы печатной платы, как вы можете видеть на диаграмме ниже: Согласно техническому описанию ATtiny85, на входы подается высокий уровень с помощью резистора 20-50 кОм.
Причиной ваших проблем является светодиод. Просто распаяйте его, и вы сможете использовать контакт 1 по своему усмотрению.