- Компоненты, необходимые для программирования ATtiny85 через USB
- Микроконтроллер ATtiny85 IC - Введение
- Прошивка загрузчика на ATtiny85 с использованием Arduino Uno
- Принципиальная схема для программатора ATtiny
- Установка драйверов Digispark
- Настройка Arduino IDE для программирования ATttiny85
Семейство ATtiny - это серия самых маленьких микроконтроллеров на рынке AVR. Эти микроконтроллеры могут использовать многие библиотеки, доступные на платформе Arduino. Микроконтроллер ATtiny85 представляет собой 8-контактный 8-разрядный микроконтроллер AVR. Его небольшой размер и низкое энергопотребление делают его отличным выбором для портативных проектов с небольшими размерами и низким энергопотреблением. Но перенести ваш код на чип может быть немного сложно, поскольку он не имеет интерфейса USB, как платы микроконтроллера.
В нашем предыдущем руководстве мы программировали ATtiny85 с помощью Arduino Uno. Но подключение Attiny85 к Arduino и использование Arduino в качестве ISP может быть трудным и трудоемким. Итак, в этом руководстве мы собираемся построить плату программирования ATtiny85, чтобы мы могли напрямую подключать и программировать ее, как другие платы микроконтроллера.
Компоненты, необходимые для программирования ATtiny85 через USB
- Arduino UNO (только в первый раз при загрузке загрузчика)
- ATtiny85 IC
- Штекер USB A-типа
- 3 резистора (2 × 47 Ом и 1 × 1 кОм)
- 3 диода (2 стабилитрона и 1 диод IN5819)
- 8-контактная база IC
- Макетная плата
- Перемычки
Микроконтроллер ATtiny85 IC - Введение
Atmel ATtiny85 - это высокопроизводительный 8-битный микроконтроллер с низким энергопотреблением, основанный на архитектуре Advanced RISC. Этот микроконтроллер имеет флэш-память ISP объемом 8 КБ, EEPROM 512 Б, 512-байтовую SRAM, 6 линий ввода-вывода общего назначения, 32 рабочих регистра общего назначения, один 8-битный таймер / счетчик с режимами сравнения, один 8-битный высокоскоростной таймер / счетчик, USI, внутренние и внешние прерывания, 4-канальный 10-битный аналого-цифровой преобразователь, программируемый сторожевой таймер с внутренним генератором, три режима энергосбережения, выбираемые программным способом, и debugWIRE для отладки на кристалле. Распиновка ATtiny85 приведена ниже:
Большинство контактов ввода-вывода микросхемы выполняют несколько функций. Описание контактов ATtiny85 для каждого контакта приведено в таблице ниже:
№ контакта |
Имя контакта |
Описание контакта |
1 |
PB5 (PCINT5 / ADC0 / dW) |
PCINT5: прерывание смены контакта 0, источник5 СБРОС: сбросить пин ADC0: входной канал ADC 0 dW: отладка WIRE I / O |
2 |
PB3 (PCINT3 / XTAL1 / CLKI / ADC3) |
PCINT3: Прерывание смены контакта 0, Источник3 XTAL1: вывод кварцевого генератора 1 CLKI: вход внешнего тактового сигнала ADC3: входной канал АЦП 3 |
3 |
PB4 (PCINT4 / XTAL2 / CLKO / OC1B / ADC2) |
PCINT4: прерывание смены контакта 0, источник 4 XTAL2: контакт 2 кварцевого генератора CLKO: выход системных часов OC1B: Таймер / Счетчик1 Сравнить Выход B ADC2: входной канал АЦП 2 |
4 |
GND |
Контакт заземления |
5 |
PB0 (MOSI / DI / SDA / AIN0 / OC0A / AREF / PCINT0) |
MOSI: вывод основных данных SPI / ввод данных ведомого DI: ввод данных USI (трехпроводный режим) SDA: ввод данных USI (двухпроводный режим) AIN0: аналоговый компаратор, положительный вход OC0A: таймер / счетчик 0, выход сравнения Match A AREF: внешний аналоговый опорный сигнал PCINT0: прерывание смены контакта 0, источник 0 |
6 |
PB1 (MISO / D0 / AIN1 / OC0B / OC1A / PCINT1) |
MISO: ввод основных данных SPI / вывод данных ведомого устройства DO: Вывод данных USI (трехпроводной режим) AIN1: аналоговый компаратор, отрицательный вход OC0B: таймер / счетчик 0, выход сравнения B OC1A: Timer / Counter1 Compare Match A Output PCINT1: прерывание смены контакта 0, источник 1 |
7 |
PB2 (SCK / USCK / SCL / ADC1 / T0 / INT0 / PCINT2) |
SCK: последовательный тактовый вход USCK: часы USI (трехпроводный режим) SCL: часы USI (двухпроводной режим) ADC1: входной канал АЦП 1 T0: Таймер / счетчик0 Источник тактовой частоты INT0: вход внешнего прерывания 0 PCINT2: прерывание смены контакта 0, источник 2 |
8 |
VCC |
Вывод напряжения питания |
Прошивка загрузчика на ATtiny85 с использованием Arduino Uno
Для программирования ATtiny85 без Arduino нам сначала необходимо загрузить в него загрузчик с помощью платы Arduino UNO, это однократный процесс, и после того, как это будет сделано, нам больше не понадобится плата UNO. Загрузчик - это специальная программа, которая запускается в микроконтроллере и требует программирования. Один из самых удобных способов загрузить данные вашей программы в микроконтроллер - использовать загрузчик. Загрузчик находится на MCU и выполняет входящие инструкции, а затем записывает новую программную информацию в память микроконтроллера. Перепрограммирование загрузчика на микроконтроллере устраняет необходимость в специальном внешнем оборудовании (платах программатора) для программирования микроконтроллера, и вы сможете программировать его напрямую, используя USB-соединение. Digispark ATtiny85Board запускает загрузчик «micronucleus tiny85», изначально написанный Bluebie. Загрузчик - это код, который предварительно запрограммирован в Digispark и позволяет ему действовать как USB-устройство, чтобы его можно было запрограммировать с помощью Arduino IDE. Мы также собираемся прошить тот же загрузчик digispark attiny85 на ATtiny85.
Пошаговое руководство по прошивке загрузчика на ATtiny85 с использованием Arduino Uno и Arduino IDE приведено ниже:
Шаг 1. Настройка Arduino Uno в качестве провайдера:
Поскольку ATtiny85 - это просто микроконтроллер, для его программирования требуется ISP (внутрисистемное программирование). Итак, чтобы запрограммировать ATtiny85, нам нужно сначала настроить Arduino Uno как ISP, чтобы он работал как программист для ATtiny85. Для этого подключите Arduino Uno к ноутбуку и откройте Arduino IDE. После этого перейдите в Файл> Пример> ArduinoISP и загрузите код Arduino ISP.
Шаг 2: Схема прошивки загрузчика на ATtiny85:
Полная схема прошивки загрузчика на ATtiny85 приведена ниже:
Конденсатор на 10 мкФ подключен между выводами Reset и GND Arduino. Полные соединения приведены в таблице ниже:
Контакт ATtiny85 |
Вывод Arduino Uno |
Vcc |
5В |
GND |
GND |
Контакт 2 |
13 |
Контакт 1 |
12 |
Пин 0 |
11 |
Сброс |
10 |
Теперь подключите Arduino Uno к ноутбуку и откройте Arduino IDE. Найдите, к какому COM-порту подключен Uno. В моем случае это COM5.
После этого скачайте файлы загрузчика ATtiny85 по указанной ссылке. Откройте « Burn_AT85_bootloader.bat » и измените номер COM-порта «PCOM5» на любой номер COM-порта, к которому подключен ваш Uno. Перед выходом сохраните изменения.
Теперь переместите отредактированные файлы « Burn_AT85_bootloader.bat » и « ATtiny85.hex » в корневую папку Arduino IDE (C: \ Program Files (x86) Arduino).
После этого щелкните правой кнопкой мыши « Burn_AT85_bootloader.bat » и выберите «Запуск от имени администратора». Прошивка загрузчика занимает от 5 до 6 секунд. Если все прошло успешно, вы должны получить сообщение «AVRdude done. Спасибо. Нажмите любую клавишу, чтобы продолжить…».
После этого загрузчик успешно установлен на чип ATtiny85. Пришло время подключить USB к ATtiny85, чтобы мы могли программировать его напрямую. Принципиальная схема программирования ATtiny85 через USB представлена ниже:
Принципиальная схема для программатора ATtiny
Схема взята из схемы платы Digispark ATtiny85, но поскольку мы стремимся создать программатор для ATtiny85, мы подключаем только штекер USB-штекера к ATtiny85.
R3 - это подтягивающий резистор, который подключается между выводами Vcc и PB3 микросхемы IC, а стабилитроны (D1-D2) добавляются для полной защиты интерфейса USB. После пайки всех компонентов на монтажной плате она будет выглядеть примерно так:
Установка драйверов Digispark
Чтобы запрограммировать ATtiny85 с помощью USB, на вашем ноутбуке должны быть установлены драйверы Digispark. Если у вас их нет, вы можете загрузить их по ссылке, указанной выше. Затем распакуйте zip-файл и дважды щелкните приложение « DPinst64.exe », чтобы установить драйверы.
После успешной установки драйверов подключите плату ATtiny85 к ноутбуку. Теперь перейдите в диспетчер устройств в Windows, и устройство ATtiny85 будет указано в списке «Устройства libusb-win32» как «Загрузчик Digispark». Если вы не можете найти «устройства libusb-win32» в диспетчере устройств, перейдите в « Просмотр» и нажмите «Показать скрытые устройства».
Настройка Arduino IDE для программирования ATttiny85
Чтобы запрограммировать плату ATtiny85 с помощью Arduino IDE, сначала нам нужно добавить поддержку платы Digispark в Arduino IDE. Для этого перейдите в меню «Файл»> «Настройки», добавьте указанную ниже ссылку в URL-адреса диспетчера дополнительных плат и нажмите «ОК».
После этого перейдите в Инструменты> Доска> Менеджер доски, найдите «Digistump AVR» и установите последнюю версию.
После его установки вы сможете увидеть новую запись в меню Board под названием «Digispark».
Теперь перейдите в Файл> Примеры> Основы и откройте пример Blink.
Измените номер контакта с LED_BUILTIN на 0.
Теперь вернитесь в Инструменты -> Плата и выберите плату « Digispark (по умолчанию - 16 МГц) ». Затем нажмите кнопку загрузки в Arduino IDE.
Примечание. Подключайте плату ATtiny85 к компьютеру только тогда, когда в среде Arduino IDE отображается сообщение «Подключить устройство сейчас».
После загрузки кода светодиод, подключенный к ATtiny85, должен начать мигать.
Вот как вы можете создать свою собственную плату для программирования ATtiny85 Arduino. Рабочее видео этого же дано ниже. Если у вас есть вопросы, оставьте их в разделе комментариев. По любым другим техническим вопросам вы также можете начать обсуждение на нашем форуме.