- Компоненти, необхідні для програмування ATtiny85 через USB
- Мікроконтролер ATtiny85 - Вступ
- Миготливий завантажувач на ATtiny85 з використанням Arduino Uno
- Схема для програміста ATtiny
- Встановлення драйверів Digispark
- Налаштування Arduino IDE для програмування ATttiny85
Сімейство ATtiny - це серія одних із найменших мікроконтролерів на ринку AVR. Ці мікроконтролери можуть використовувати багато бібліотек, доступних на платформі Arduino. Мікроконтролер ATtiny85 - це 8-контактний, 8-бітний мікроконтролер AVR. Невеликі розміри та низьке енергоспоживання роблять його чудовим для переносних проектів з невеликими розмірами та низькими вимогами до енергії. Але потрапити ваш код на мікросхему може бути невеликою проблемою, оскільки він не має жодного інтерфейсу USB, як мікроконтролерні плати.
У нашому попередньому підручнику ми запрограмували ATtiny85 за допомогою Arduino Uno. Але підключення Attiny85 до Arduino та використання Arduino як провайдера може бути складним та трудомістким. Отже, у цьому підручнику ми збираємося створити плату програмування ATtiny85, щоб ми могли безпосередньо підключати та програмувати її, як інші плати мікроконтролера.
Компоненти, необхідні для програмування ATtiny85 через USB
- Arduino UNO (Тільки вперше під час завантаження завантажувача)
- ATtiny85 IC
- USB штепсель типу A типу
- 3 резистори (2 × 47Ω & 1 × 1kΩ)
- 3 діоди (2 × стабілітрона та 1 × діода IN5819)
- 8-контактний IC-підстава
- Макет
- Провід перемички
Мікроконтролер ATtiny85 - Вступ
ATtiny85 від Atmel - це високопродуктивний 8-розрядний мікроконтролер з низькою потужністю, заснований на вдосконаленій архітектурі RISC. Цей мікросхема мікроконтролера має флеш-пам'ять 8KB ISP, 512B EEPROM, 512-байтну SRAM, 6 ліній загального призначення, 32 робочих регістри загального призначення, один 8-бітний таймер / лічильник з режимами порівняння, один 8-бітний високошвидкісний таймер / лічильник, USI, внутрішні та зовнішні переривання, 4-канальний 10-бітний АЦП, програмований сторожовий таймер із внутрішнім генератором, три програмні режими енергозбереження та debugWIRE для налагодження на мікросхемі. Розпіновка ATtiny85 подана нижче:
Більшість штифтів вводу-виводу мікросхеми мають більше однієї функції. Опис контактів ATtiny85 для кожного контакту наведено в таблиці нижче:
No контакту |
Ім'я PIN-коду |
Опис штифта |
1 |
PB5 (PCINT5 / ADC0 / dW) |
PCINT5: переривання зміни контактів 0, джерело5 СКИДАННЯ: Скинути PIN-код ADC0: Вхідний канал ADC 0 dW: налагодження WIRE I / O |
2 |
PB3 (PCINT3 / XTAL1 / CLKI / ADC3) |
PCINT3: переривання зміни контактів 0, джерело3 XTAL1: Кришталевий осцилятор Pin1 CLKI: Вхід зовнішнього годинника ADC3: вхідний канал ADC 3 |
3 |
PB4 (PCINT4 / XTAL2 / CLKO / OC1B / ADC2) |
PCINT4: Переривання зміни контактів 0, джерело 4 XTAL2: Кришталевий осцилятор 2 CLKO: Системний годинник OC1B: Таймер / Лічильник1 Порівняйте вихідні дані відповідності B. ADC2: вхідний канал ADC 2 |
4 |
GND |
Штифт землі |
5 |
PB0 (MOSI / DI / SDA / AIN0 / OC0A / AREF / PCINT0) |
MOSI: Вивід основних даних SPI / Введення підлеглих даних DI: введення даних USI (трипровідний режим) SDA: введення даних USI (двопровідний режим) AIN0: аналоговий компаратор, позитивний вхід OC0A: Таймер / Лічильник0 Порівняйте вихідні дані відповідності А. AREF: Зовнішнє аналогове посилання PCINT0: переривання зміни контактів 0, джерело 0 |
6 |
PB1 (MISO / D0 / AIN1 / OC0B / OC1A / PCINT1) |
MISO: Введення основних даних SPI / Виведення даних підлеглих DO: Виведення даних USI (трипровідний режим) AIN1: аналоговий компаратор, негативний вхід OC0B: Таймер / Лічильник0 Порівняйте вихідні дані відповідності B. OC1A: Таймер / Лічильник1 Порівняння результату відповідності A PCINT1: переривання зміни контактів 0, джерело 1 |
7 |
PB2 (SCK / USCK / SCL / ADC1 / T0 / INT0 / PCINT2) |
SCK: послідовний вхід годинника USCK: Годинник USI (трипровідний режим) SCL: Годинник USI (двопровідний режим) ADC1: Вхідний канал ADC 1 T0: Таймер / Лічильник0 Джерело годинника INT0: Вхід зовнішнього переривання 0 PCINT2: переривання зміни контактів 0, джерело 2 |
8 |
VCC |
Контакт напруги живлення |
Миготливий завантажувач на ATtiny85 з використанням Arduino Uno
Для програмування ATtiny85 без Arduino нам спочатку потрібно було б завантажити в нього завантажувач, використовуючи плату Arduino UNO, це одноразовий процес, і після цього нам більше не знадобиться рада UNO. Завантажувач - це спеціальна програма, яка працює в мікроконтролері, який повинен бути запрограмований. Один із найбільш зручних способів завантаження програмних даних на мікроконтролер - це завантажувач. Завантажувач сидить на MCU і виконує вхідні інструкції, а потім записує нову інформацію про програму в пам'ять мікроконтролера. Прошивка завантажувача на мікроконтролері усуває необхідність у спеціальному зовнішньому обладнанні (плати програмістів) для програмування мікроконтролера, і ви зможете запрограмувати його безпосередньо за допомогою з'єднання USB. Digispark ATtiny85на платі запущений завантажувач “micronucleus tiny85”, спочатку написаний Блубі. Завантажувач - це код, який попередньо запрограмований на Digispark і дозволяє йому діяти як USB-пристрій, щоб його можна було запрограмувати в середовищі Arduino IDE. Ми також збираємося прошивати той самий завантажувач digispark attiny85 на ATtiny85.
Покроковий посібник із прошивки завантажувача на ATtiny85 за допомогою Arduino Uno та Arduino IDE наведено нижче:
Крок 1: Налаштування Arduino Uno як провайдера:
Оскільки ATtiny85 - це просто мікроконтролер, для цього потрібно запрограмувати ISP (внутрішньосистемне програмування). Отже, щоб програмувати ATtiny85, нам потрібно спочатку налаштувати Arduino Uno як провайдера, щоб він виступав програмістом для ATtiny85. Для цього підключіть Arduino Uno до ноутбука та відкрийте IDE Arduino. Після цього перейдіть до Файл> Приклад> ArduinoISP і завантажте код провайдера Arduino.
Крок 2: Принципова схема для прошивального завантажувача на ATtiny85:
Повна схема прошивального завантажувача на ATtiny85 наведена нижче:
Конденсатор 10 мкф підключений між скиданням і GND штифтом Arduino. Повні з'єднання наведені в таблиці нижче:
PIN-код ATtiny85 |
Pin Arduino Uno |
Vcc |
5 В |
GND |
GND |
Штифт 2 |
13 |
Pin 1 |
12 |
Pin 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 мікросхеми, а стабілітрони (D1-D2) додані для повного захисту інтерфейсу USB. Після спайки всіх компонентів на платі перф, це буде виглядати приблизно так:
Встановлення драйверів Digispark
Щоб програмувати ATtiny85 за допомогою USB, у вас на ноутбуці повинні бути встановлені драйвери Digispark. Якщо у вас їх немає, ви можете завантажити його за посиланням, наведеним вище. Потім витягніть zip-файл і двічі клацніть на програмі “ DPinst64.exe ”, щоб встановити драйвери.
Після успішного встановлення драйверів підключіть плату ATtiny85 до ноутбука. Тепер перейдіть до Диспетчера пристроїв на вашій Windows, і пристрій ATtiny85 буде перелічено в розділі «libusb-win32 пристрої» як «Digispark Bootloader». Якщо ви не можете знайти `` libusb-win32 пристрої '' в диспетчері пристроїв, перейдіть до Переглянути та натисніть на "Показати приховані пристрої".
Налаштування Arduino IDE для програмування ATttiny85
Щоб запрограмувати плату ATtiny85 на Arduino IDE, спочатку нам потрібно додати підтримку плати Digispark до Arduino IDE. Для цього перейдіть у меню Файл> Налаштування та додайте посилання нижче в URL-адреси додаткового менеджера дошок та натисніть «ОК».
Після цього перейдіть до інструментів> Board> Board Manager та знайдіть «Digistump AVR» та встановіть останню версію.
Після його встановлення ви зможете побачити новий запис у меню дошки під назвою "Digispark".
Тепер перейдіть до файлу> Приклади> Основи та відкрийте приклад Blink.
Змініть там контактний номер з LED_BUILTIN на 0.
Тепер поверніться до Інструменти -> Дошка та виберіть дошку « Digispark (за замовчуванням - 16 МГц) ». Потім натисніть кнопку завантаження в IDE Arduino.
Примітка: Підключайте плату ATtiny85 до комп'ютера, лише коли в середовищі Arduino IDE відображається повідомлення "Підключіть пристрій зараз".
Після завантаження коду світлодіод, підключений до ATtiny85, повинен починати блимати.
Ось як ви можете створити власну дошку програмування Arduino ATtiny85. Робоче відео цього ж наведено нижче. Якщо у вас виникли запитання, залиште їх у розділі коментарів. З будь-яких інших технічних питань ви також можете розпочати обговорення на наших форумах.