Monthly Archives: August 2016

Как я делал Digispark

Узнал о существовании этой платформы – и загорелся.
Из плюсов – программируется из среды Arduino , до 6 ног для подключения периферии.
Заказывать готовый модуль совершенно не хотелось, решил сделать сам.

Куплено:
Attiny85 – 2 штуки,
стабилитроны на 3,6 вольта – 10 штук,резисторы на 68 ом – 10 штук.

Найдено в загашнике:
резистор на 1,2 килоома (по хорошему бы надо 1,5)
макетная плата,
соединительные провода,
сборка светодиод+резистор,
хвост с USB-разъёмом.

Схема была сдёрнута отсюда

Получилось так:
digispark

Bootloader взял у micronucleus
Сами Digispark-овцы пишут, что их поделка работает на версии 1.02, в других местах встречал упоминание о стабильной 1.06, на micronucleus на момент написания лежит версия 2.03, которая показала себя вполне работоспособной.

Заливал bootloader в attiny85 программатором USBAsp, с программой eXtreme burner.
Burner’у пришлось чуть вправить мозг – о существовании attiny85 он не знал.
А теперь коварный вопрос – с какими фьюзами заливать прошивку?
Штатные (Low – 62, High – DF, Ext – FF) не прокатывают.
Нашелся добрый человек, подсказал: Low – E1, High – DD, Ext – FE. В этом случае нога контроллера RESET (1 нога чипа, или pin5 с точки зрения Arduino) так и остаётся сбросом, сохраняется возможность перешить контроллер обычным программатором, но pin5 программировать в скетчах бесполезно.

Для рисковых и подготовленных парней
Если сильно хочется задействовать тот самый pin5
Low – E1, High – 5D, Ext – FE.
!!! Внимание !!! После прошивки этих фьюзов контроллер для обычного программатора станет недоступен. Посему предлагаю сначала прошиться безопасными фьюзами, убедиться, что девайс завёлся, и только потом шаманить.
У меня на это случай собран FuseBit Doctor , так что мне не страшно 🙂

Далее ставим драйвера и добавляем поддержку Digispark’a в среде Arduino.

Bootloader работает хитрО – первые 5 секунд после подачи питания ждёт сигнала по USB на обновление прошивки, после чего передаёт управление залитой программе.

Соответствие физических ног контроллера и логических пинов в среде разработки:

  • 5 – Pin 0 → I2C SDA, PWM
  • 6 – Pin 1 → PWM
  • 7 – Pin 2 → I2C SCK, Analog In
  • 2 – Pin 3 → Analog In (also used for USB+ when USB is in use)
  • 3 – Pin 4 → PWM, Analog (also used for USB- when USB is in use)
  • 1 – Pin 5 → Analog In

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