- Компоненти, необходими за програмиране на ATtiny85 чрез USB
- IC микроконтролер ATtiny85 - Въведение
- Мигащ Boot-loader на ATtiny85 с помощта на Arduino Uno
- Схема на схемата за ATtiny Programmer
- Инсталиране на драйвери 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-type Plug Male
- 3 резистора (2 × 47Ω & 1 × 1kΩ)
- 3 диода (2 × ценеров диод и 1 × IN5819 диод)
- 8-пинова IC база
- Макет
- Джъмперни проводници
IC микроконтролер ATtiny85 - Въведение
ATtiny85 на Atmel е 8-битов микроконтролер с висока производителност и ниска мощност, базиран на Advanced RISC Architecture. Този микроконтролерен чип разполага с 8KB ISP флаш памет, 512B EEPROM, 512-байтов SRAM, 6 линии за общо предназначение I / O, 32 работни регистри с общо предназначение, един 8-битов таймер / брояч с режими за сравнение, един 8-битов високоскоростен таймер / брояч, USI, вътрешни и външни прекъсвания, 4-канален 10-битов A / D конвертор, програмируем таймер за наблюдение с вътрешен осцилатор, три избираеми режима за спестяване на енергия и debugWIRE за отстраняване на грешки в чипа. ATtiny85 Pinout е даден по-долу:
Повечето I / O щифтове на чипа имат повече от една функция. ATtiny85 описание на пина за всеки щифт е дадено в таблицата по-долу:
ПИН No. |
Име на ПИН |
Описание на щифта |
1 |
PB5 (PCINT5 / ADC0 / dW) |
PCINT5: Прекъсване на промяна на щифта 0, източник5 RESET: Нулиране на ПИН ADC0: ADC входен канал 0 dW: отстраняване на грешки WIRE I / O |
2 |
PB3 (PCINT3 / XTAL1 / CLKI / ADC3) |
PCINT3: Прекъсване на смяната на щифтове 0, Source3 XTAL1: Кристален осцилатор Pin1 CLKI: Въвеждане на външен часовник ADC3: ADC входен канал 3 |
3 |
PB4 (PCINT4 / XTAL2 / CLKO / OC1B / ADC2) |
PCINT4: Прекъсване на смяната на щифтове 0, източник 4 XTAL2: Кристален осцилатор Pin 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 Сравнете изход за съвпадение А. 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 |
ПИН за захранващо напрежение |
Мигащ Boot-loader на ATtiny85 с помощта на Arduino Uno
За програмиране на ATtiny85 без Arduino, първо трябва да качим буутлоудър в него с помощта на Arduino UNO платка, това е еднократен процес и след като това бъде направено, няма да имаме нужда от UNO борда отново. Boot-loader е специална програма, която се изпълнява в микроконтролера, който трябва да бъде програмиран. Един от най-удобните начини за зареждане на данните на вашата програма в микроконтролера е чрез буутлоудър. Boot-loader седи на MCU и изпълнява входящите инструкции и след това записва нова информация за програмата в паметта на микроконтролера. Мигането на boot-loader на микроконтролер премахва необходимостта от специален външен хардуер (Programmer Boards) за програмиране на микроконтролера и ще можете да го програмирате директно с помощта на USB връзка. В Digispark ATtiny85на борда се изпълнява буутлоудъра „micronucleus tiny85“, първоначално написан от Bluebie. Буутлоудъра е кодът, който е предварително програмиран на Digispark и му позволява да действа като USB устройство, така че да може да бъде програмиран от IDE на Arduino. Също така ще преминем към същия буутлоудър на digispark attiny85 на ATtiny85.
Ръководство стъпка по стъпка за флаш буутлоудър на ATtiny85 с помощта на Arduino Uno и Arduino IDE е дадено по-долу:
Стъпка 1: Конфигуриране на Arduino Uno като ISP:
Тъй като ATtiny85 е само микроконтролер, той изисква програмиране на ISP (In-System Programming). За да програмираме ATtiny85, първо трябва да конфигурираме Arduino Uno като ISP, за да действа като програмист за ATtiny85. За това свържете Arduino Uno към лаптопа и отворете IDE на Arduino. След това отидете на File> Example> ArduinoISP и качете Arduino ISP кода.
Стъпка 2: Електрическа схема за мигащ Boot-loader на ATtiny85:
Пълната схема за Flashing Boot-loader на ATtiny85 е дадена по-долу:
10 µf кондензатор е свързан между Reset и GND щифт на Arduino. Пълните връзки са дадени в таблицата по-долу:
ПИН ATtiny85 |
Arduino Uno ПИН |
Vcc |
5V |
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 " и изберете "Run as Admin". Отнема около 5 до 6 секунди, за да мига буутлоудъра. Ако всичко е минало добре, трябва да получите това съобщение "AVRdude done. Благодаря. Натиснете произволен клавиш, за да продължите…".
С това Boot-loader е успешно инсталиран на чипа ATtiny85. Сега е време да свържете USB с ATtiny85, за да можем да го програмираме директно. Схемата за програмиране на ATtiny85 чрез USB е дадена по-долу:
Схема на схемата за ATtiny Programmer
Схемата е взета от схемата на платката Digispark ATtiny85, но тъй като се стремим да изградим програмист за ATtiny85, ние свързваме само мъжки USB щепсел с ATtiny85.
R3 е издърпващ резистор, който е свързан между Vcc и PB3 щифтове на IC, докато Zener Diodes (D1-D2) са добавени за пълна защита на USB интерфейса. След запояване на всички компоненти на перфектната платка, тя ще изглежда по следния начин:
Инсталиране на драйвери Digispark
За да програмирате ATtiny85 с помощта на USB, трябва да имате инсталирани драйвери Digispark на вашия лаптоп, ако нямате такива, можете да го изтеглите, като използвате връзката, дадена по-горе. След това извлечете zip файла и щракнете двукратно върху приложението “ DPinst64.exe ”, за да инсталирате драйверите.
След като драйверите са инсталирани успешно, включете вашата платка ATtiny85 към лаптопа. Сега отидете на Device Manager на вашия Windows и устройството ATtiny85 ще бъде изброено под „libusb-win32 устройства“ като „Digispark Bootloader“. Ако не можете да намерите „libusb-win32 устройства“ в диспечера на устройствата, отидете на Преглед и кликнете върху „Показване на скрити устройства“.
Настройване на Arduino IDE за програмиране на ATttiny85
За да програмираме ATtiny85 Board с Arduino IDE, първо трябва да добавим Поддръжка на платката Digispark към Arduino IDE. За това отидете на Файл> Предпочитания и добавете връзката по-долу в URL адресите на допълнителния мениджър на табла и щракнете върху „OK“.
След това отидете на инструменти> Board> Board Manager и потърсете "Digistump AVR" и инсталирайте най-новата версия.
След като го инсталирате, сега ще можете да видите нов запис в менюто на дъската, озаглавен „Digispark“.
Сега отидете на файл> Примери> Основи и отворете примера Blink.
Променете номера на пина там от LED_BUILTIN на 0.
Сега се върнете към Инструменти -> Табло и изберете дъската „ Digispark (по подразбиране - 16 MHz) “. След това кликнете върху бутона за качване в Arduino IDE.
Забележка: Свържете платката ATtiny85 към компютъра, само когато Arduino IDE изведе съобщение „Plugin device now“.
След като кодът бъде качен, светодиодът, свързан към ATtiny85, трябва да започне да мига.
Ето как можете да изградите своя собствена платка за програмиране на ATtiny85 Arduino. Работно видео от същото е дадено по-долу. Ако имате въпроси, оставете ги в раздела за коментари. За всякакви други технически въпроси можете също да започнете дискусия на нашите форуми.