DigiSpark … не совсем Arduino. Первый шаг.

В радиоэлектронике часто требуется сделать что-то мелкое, на что тратить ATmega не хочется, да и выглядит такое решение «слишком жирно». Обычно в таких случаях используют «младшую ветвь AVR» — микроконтроллеры ATtiny. До поры, до времени, я использовал в «мелких задачах» ATtiny13, но, «для еще более ленивых», существуют более «продвинутые» решения… например, проект DigiSpark (даже ссылку давать не буду — в любом поисковике их «тьма» выскочит).

dgsp1

Если вкратце, то это ATtiny85 (это «супертини» по цене 13) с загрузчиком, заточенным под USB; к этому прилагается «программный пакет», ориентированный на Arduino IDE.

Существует множество аппаратных реализаций проекта, схема примерно одна:

The-smallest-USB-Arduino-schematic

В заметке я опишу процесс «оживления» этой «штучки»… На примере Windows XP.

На первом этапе покупаем «игрушку» — на aliexpress в пределах 100 руб.

Затем скачиваем пакет с дистрибутивом IDE, драйверами и прочим… Я брал здесь — хоть и не «последний писк», но для разработки несложных решений вполне подходит.

Распаковываем содержимое в отдельную папку, например: C:\DigisparkArduino

Вставляем нашу плату в USB разъем компьютера. ОС обнаруживает новое устройство и предлагает поискать для него драйвер. «Подсовываем» ей папку (в нашем примере): C:\DigisparkArduino\DigisparkArduino-Win32\DigisparkWindowsDriver

Система сама найдет что ей нужно и добавит новое устройство Digispark Bootloader (что интересно, в Диспетчере устройств я его потом найти не смог…)

Далее из установленного дистрибутива запускаем Arduino IDE (версия, как отмечено выше, довольно старая, но — работает). Настраиваем IDE для работы с DigiSpark: надо выбрать плату: Сервис — Плата — Digispark(Tiny Core)
и программатор: Сервис — Программатор — Digispark

Работаем с программой и платой обычным образом: загружаем (создаем) скетч и записываем его в плату. Загрузка скетча выглядит примерно так:

жмем: Загрузить
Появляется текст:
Размер скетча в двоичном коде: 772 байт (из 6 012 байт максимум)
Running Digispark Uploader…
Plug in device now… (will timeout in 60 seconds)
> Please plug in the device …

выдергиваем и снова вставляем плату, через несколько секунд появится:
> Press CTRL+C to terminate the program.
> Device is found!
connecting: 16% complete
connecting: 22% complete
connecting: 28% complete
connecting: 33% complete
> Available space for user application: 6330 bytes
> Suggested sleep time between sending pages: 8ms
> Whole page count: 99
> Erase function sleep duration: 792ms
parsing: 50% complete
> Erasing the memory …
erasing: 55% complete
erasing: 60% complete
erasing: 65% complete
> Starting to upload …
writing: 70% complete
writing: 75% complete
writing: 80% complete
> Starting the user app …
running: 100% complete
>> Micronucleus done. Thank you!

На момент написания я «поигрался» с подобием Blink. Выяснил, что мне попалась плата варианта «модель А» (контрольный светодиод подключен к pin 1). Расстроился, что SerialPrint() теперь не будет… Но, в целом, «штучка» работает, можно что-нибудь на ней сотворить.