ATtiny85 е малък 8-битов микроконтролер, предназначен за прости контролни задачи, при които пространството и енергопотреблението имат значение. Той комбинира памет, таймери, аналогов вход и серийна комуникация в 8-пинов корпус. Тази статия предоставя подробна информация за спецификациите, пиновото разположение, вътрешната структура, настройките на захранването и часовника, програмирането, схемите и често срещаните проблеми.

Преглед на ATtiny85
ATtiny85 е компактен 8-битов микроконтролер, предназначен за прости контролни задачи, при които пространството, консумацията на енергия и броят на компонентите трябва да се поддържат ниски. Неговият 8-пинов форм-фактор помага за намаляване на размера на веригата, сложността на окабеляването и системната цена, като същевременно осигурява основна функционалност за управление.
Въпреки дългогодишното си присъствие на пазара, ATtiny85 остава широко използван благодарение на стабилността, силната документация и съвместимостта с често използвани инструменти за разработка. Той работи в широк диапазон на напрежение и поддържа множество тактови опции, което го прави подходящ за компактни, нискоенергийни дизайни, които изискват надеждно и предсказуемо поведение.
Технически спецификации на ATtiny85
| Не. на кегли | 8 |
|---|---|
| CPU | RISC 8-битов AVR |
| Работно напрежение | 1.8 до 5.5 V |
| Програмна памет | 8K |
| Тип памет на програмата | Светкавица |
| RAM | 512 байта |
| EEPROM | 512 байта |
| ADC брой канали на ADC | 10-битов 4 |
| Компаратор | 1 |
| Пакети | PDIP (8-пинов) SOIC (8-пинов) TSSOP (8-пинов) QFN/MLF (20-пинов) |
| Осцилатор | до 20 MHz |
| Таймер (2) | 8-битови таймери |
| Подобрено захранване при нулиране | Да |
| Таймер за зареждане | Да |
| I/O пинове | 6 |
| Производител | Микрочип |
| SPI | Да |
| I2C | Да |
| Таймер на Watchdog | Да |
| Откриване на изчерпване на потопяване (BOD) | Да |
| Нулиране | Да |
| USI (Универсален сериен интерфейс) | Да |
| Минимална работна температура | -40 C |
| Максимална работна температура | 125 C |
Конфигурация на пиновете на ATtiny85

| Пин | Име | Основни функции |
|---|---|---|
| 1 | PB5 | RESET, GPIO (ако предпазителят е сменен) |
| 2 | PB3 | GPIO, ADC |
| 3 | PB4 | GPIO, ADC |
| 4 | GND | Ground |
| 5 | PB0 | GPIO, PWM, MOSI |
| 6 | PB1 | GPIO, PWM, MISO |
| 7 | PB2 | GPIO, ADC, SCK |
| 8 | VCC | Захранване |
ATtiny85 се предлага в PDIP-8 и QFN/MLF-20 пакети. И двете споделят една и съща вътрешна схема, но разположението на пиновете е различно. Пакетът PDIP-8 излага само основни пинове и е по-лесен за използване в основни вериги, докато пакетът QFN/MLF-20 включва допълнителни пинове, маркирани като несвързани.
Повечето пинове поддържат множество функции. Един пин може да действа като цифров вход или изход, да чете аналогови сигнали, да генерира PWM изход или да поддържа серийна комуникация. Този многофункционален дизайн позволява на ATtiny85 да остане малък, като същевременно предлага гъвкавост. Пинът RESET може да бъде конфигуриран и като пин чрез промяна на настройките на предпазителя, въпреки че това премахва възможността за външно нулиране.
ATtiny85 Блок диаграма

ATtiny85 е изграден около AVR процесорно ядро, което изпълнява инструкции, съхранявани във флаш паметта. SRAM се използва за временни данни по време на работа, докато EEPROM съхранява неволатилни данни, които трябва да се запазят при прекъсване на захранването. Броячът на програмите, указателят на стека и регистрите управляват потока на инструкциите и обработката на данни.
Тайминг функциите се управляват от два вътрешни 8-битови таймера и watchdog таймер. Watchdog подобрява надеждността чрез нулиране на устройството, ако нормалното изпълнение на програмата спре. Вътрешен осцилатор осигурява тактовия сигнал, а централизираното управление на времето синхронизира всички вътрешни модули.
Операциите по вход и изход се управляват чрез портови регистри, свързани директно към външните пинове. Устройството също интегрира аналогови схеми като АЦП и компаратор. Всички вътрешни блокове са свързани чрез споделени пътища за данни, което позволява ефективна комуникация между паметта, логиката на обработката и I/O.
ATtiny85 Настройки за захранване, тактов сигнал и предпазител
• ATtiny85 включва вътрешен RC осцилатор, който позволява работа без външни тактови компоненти.
• Могат да се използват външни тактови източници или кристали, когато е необходима по-висока точност на тайминга.
• Настройките на предпазителите контролират източника на тактовия сигнал, закъснението при стартиране, нивото на засичане на загоряване и поведението на пиновете при нулиране.
• Работата на по-ниски тактови честоти намалява консумацията на енергия и електрическия шум.
• Детекцията на затъмване подобрява стабилността при ниски захранващи напрежения, но леко увеличава консумацията на ток.
ATtiny85 GPIO ограничения и безопасна експлоатация
• GPIO пиновете са предназначени за контрол на сигнала и не трябва да подават захранване към външни товари.
• LED диодите, свързани към GPIO пинове, изискват резистори, ограничаващи тока, за да се предотвратят повреди.
• Мотори, релета и други високотокови устройства трябва да се управляват чрез външни транзистори или MOSFET.
• Могат да се активират вътрешни резистори за набиране на бутони и превключватели.
• Всички GPIO напрежения трябва да останат в определени граници, за да се избегнат трайни повреди.
ATtiny85 АЦП и аналогови възможности
| Характеристика | Описание |
|---|---|
| Резолюция на АЦП | 10-битов |
| Входни канали | До 4 |
| Референтни опции | VCC или вътрешна референция |
| Специален режим | Сън с намаляване на шума при ADC |
ATtiny85 разполага с вграден аналогово-цифров преобразувател, който измерва променящите се нива на напрежение и ги преобразува в цифрови стойности. Качеството на измерването зависи от стабилно референтно напрежение, чисти захранващи връзки и правилно маршрутизиране на сигнала. Използването на режим на заспиване на ADC Noise Reduction помага за намаляване на вътрешния шум по време на преобразуването, което подобрява консистентността на четене и общата надеждност.
ATtiny85 серийна комуникация с USI
ATtiny85 поддържа серийна комуникация чрез Универсален сериен интерфейс (USI). Този гъвкав интерфейс може да бъде конфигуриран чрез фърмуер да работи в SPI режим или да поддържа комуникация в стил I²C. Чрез използване на един споделен хардуерен блок устройството запазва компактен размер, като същевременно позволява основен обмен на данни.
Тъй като USI разчита силно на софтуерен контрол, е необходимо внимателно управление на времето. Подходящ е за прости и нискоскоростни комуникационни задачи, но предлага по-малко функции за автоматизация в сравнение с специализираните SPI или I²C периферни устройства, използвани в по-големите микроконтролери.
ATtiny85 програмиране чрез Arduino IDE

• ATtiny85 може да бъде програмиран в Arduino IDE след инсталиране на ядро, съвместимо с ATtiny.
• Програмирането се извършва с USB програматор или Arduino, настроен като доставчик.
• Настройките на платката в Arduino IDE трябва да съответстват на избраната тактова честота и работно напрежение на ATtiny85.
• ПИН-овете, използвани в кода, се различават от физическата конфигурация на пиновете, затова трябва да се проверяват внимателно преди окабеляване.
Минимално надежден ATtiny85 кръг

Тази схема използва само основните компоненти, необходими за стабилна работа. VCC и GND пиновете захранват, позволявайки на вътрешната логика да функционира правилно. Вътрешният осцилатор контролира времето, така че не са необходими външни часови компоненти.
LED индикатор, свързан чрез резистор с 47 Ω, демонстрира контрол на изхода, като същевременно защитава както LED-а, така и GPIO пина. RESET пинът остава достъпен за препрограмиране или рестартиране на устройството. С много малко външни компоненти, тази конфигурация осигурява проста и надеждна основа за основни приложения.
ATtiny85 Чести проблеми и бързи проверки
| Проблем | Какво да проверя или поправя? |
|---|---|
| Качването на код се провали | Провери окабеляването на доставчика и потвърди настройката на предпазителя RESET |
| Неправилно време | Проверете избрания източник на часовника и конфигурацията на предпазителя |
| Нестабилни показания на ADC | Подобряване на заземяването и добавяне на подходящи кондензатори за разкъсване |
| Грешки в комуникацията | Прегледайте настройките и тайминга на USI |
| Прегряващи щифтове | Намаляване на натоварването и използване на външни драйверни компоненти |
Заключение
ATtiny85 обединява основните контролни функции в много компактна форма. Спецификациите, функциите на пиновете, вътрешните блокове и настройките на захранването обясняват как работи в реални вериги. С правилно управление на GPIO, използване на ADC, серийна настройка и минимална схема, ATtiny85 може да бъде ясно разбран и приложен в стабилни, нискоенергийни конструкции.
Често задавани въпроси [ЧЗВ]
Колко енергия използва ATtiny85?
Потреблението на енергия зависи от напрежението на захранването, честотата на честотата и активните характеристики. По-ниските тактови честоти и изключването на неизползвани периферни устройства намаляват потреблението на ток.
Нуждае ли се ATtiny85 от външен часовник?
Не. ATtiny85 има вътрешен RC осцилатор и може да работи без външни часови компоненти. Външен часовник е необходим само за по-висока точност на тайминга.
Може ли пинът за RESET да се използва като нормален входно/изходен пин?
Да. RESET пинът може да се конфигурира като GPIO чрез настройки на предпазителите. Това изключва стандартното програмиране на ISP и изисква програмиране с високо напрежение за препрограмиране на устройството.
Може ли ATtiny85 да управлява мотори или релета директно?
Не. ATtiny85 GPIO пинове са само за контрол на сигнала. Моторите и релетата трябва да се задвижват с външни транзистори или MOSFET.
Защо показанията на ATtiny85 ADC са нестабилни?
Нестабилните показания на АЦП обикновено се дължат на шум от захранване или лошо заземяване. Добавянето на подходящи кондензатори за разкъсване и използването на режим ADC Noise Reduction подобрява стабилността.