Digispark - неофициальное семейство Arduino-совместимых плат от Digistump. Эти ребята из США делают отладочные платы на различных микроконтроллерах и шилды для них. Китайцы быстро смекнули, что дигиспарк на базе ATtiny85 - отличная штука и начали продавать свою версию. До кризиса плата стоила около 80 рублей - что весьма приятно для основы небольшого проекта. В этом уроке рассмотрим именно дигиспарки на базе ATtiny85, вы можете видеть их на картинке выше в разных модификациях.
Первая сама плата вставляется в USB, вторая и третья - подключается по micro USB. Отдельное спасибо тому, кто проектировал плату: работать с ней на брэдборде то ещё приключение.
Четвёртая плата является "пустышкой", в которую можно вставить ATtiny в DIP-8 корпусе. Пины выведены так, что можно удобно подключать USB ASP программатор, но работать на макетке опять же не выйдет. Можно прошить загрузчик от дигиспарк и прошиваться по USB.
Информация #
Купить:
Документация:
Характеристики #
Характеристика | Значение |
---|---|
Микроконтроллер | AVR ATtiny85 |
Логический уровень | 5V |
Напряжение питания | ~3.. 5.5V (от 1.5V при пониженной частоте) |
Макс. ток с пина | 20 mA (пик 40 mA) |
Частота тактирования | внутреннее до 32 MHz |
Flash | 8 kB |
RAM | 512 B |
EEPROM | 512 B |
GPIO | 6 (5 + RST) |
ADC | 10 bit 4 канала / 2 диф канала, компаратор |
ШИМ пины | 3 |
Таймеры | 2x 8 bit |
Аппаратные интерфейсы | 1x SPI, 1x USI (I2C+UART) |
Это относительно свежая модель и в ней используются некоторые новые технологии, которых нет в той же ATmega328 (Arduino UNO/Nano), например:
- PLL - умножитель частоты. МК может тактироваться от внутреннего источника с частотой 16 МГц и выше (мы разгоняли до 32 МГц)
- Соответственно высокочастотный ШИМ
- Улучшенный таймер, умеет делать аппаратный deadtime
- Встроенный усилитель АЦП - можно измерять термопару без внешних железок
- Дифференциальный АЦП
Основная фишка этих плат - программный USB, то есть USB порт подключен напрямую к пинам микроконтроллера! Что это даёт:
- Плата может прикидываться USB HID устройством (клавиатура, мышь, геймпад, MIDI)
- Загрузка прошивки по USB (используется загрузчик Micronucleus)
- Экономия на отсутствии USB-UART преобразователя, плата стоит дешевле
Распиновка #
- P0: ничего особенного
- P1: подключен светодиод. Пин не может работать в режиме
INPUT_PULLUP
- P2: ничего особенного
- P3: USB пин. Подтянут к VCC резистором на 1.5 кОм
- Не трогать этот пин, если нужна работа USB, также на момент загрузки прошивки!
- Нет смысла в режиме
INPUT_PULLUP
- P4: USB пин
- Не трогать этот пин, если нужна работа USB, также на момент загрузки прошивки!
- P5: на оригинальных платах "отключен" от RST при помощи программатора. На китайских платах - нет. Поэтому:
- Не использовать как выход
- Не подавать низкий сигнал (МК перезагрузится)
- Можно измерять аналоговый сигнал до VCC/2 (до 2.5V при питании от 5V)
Нумерация пинов #
- Цифровые пины - по подписям на плате (без буквы), например P0:
digitalWrite(0, HIGH)
- Аналоговые пины - по номеру вывода АЦП (как на распиновке), например P2:
analogRead(1)
Начало работы #
- Ссылка для менеджера плат:
http://drazzy.com/package_drazzy.com_index.json
- Плату выбирать ATtiny85 (Micronucleus / DigiSpark)
- Также нужно установить драйвера: скачать можно по этой ссылке, на официальном GitHub проекта (в разделе Релизы, вот прямая ссылка на архив). Драйвера есть для Win, MacOS и Linux
- Пользователям Linux читать здесь
Прошивка загружается следующим образом: ПЛАТУ НЕ ПОДКЛЮЧАЕМ, ПОРТ НЕ ВЫБИРАЕМ, нажимаем загрузка, ждём компиляции. Появится надпись "подключите плату". Втыкаем плату в USB и прошивка загружается
Библиотеки #
Большинство Arduino-библиотек совместимы с дигиспарком, также у него есть свой набор встроенных библиотек (ссылка на библиотеки в новом ядре). Из них можно выделить:
Adafruit_NeoPixel
- оптимизированная библиотека для адресной лентыDigisparkJoystick
- USB джойстикDigisparkKeyboard
- USB клавиатураDigisparkMouse
- USB мышьDigisparkSoftSerial
- программный Serial. Название отличается от стандартной библиотеки!DigisparkTinyPinChange
- прерывания на любых пинах