ATtiny85 — це невеликий 8-бітний мікроконтролер, призначений для простих завдань керування, де важливий простір і споживання енергії. Він поєднує пам'ять, таймери, аналоговий вхід і послідовний зв'язок у 8-контактному корпусі. У цій статті наведено детальну інформацію про його специфікації, розташування, внутрішню структуру, налаштування живлення та тактового сигналу, програмування, схеми та поширені проблеми.

Огляд ATtiny85
ATtiny85 — це компактний 8-бітний мікроконтролер, призначений для простих завдань керування, де потрібно тримати мінімальний обсяг простору, енергоспоживання та кількість компонентів. Його 8-контактний форм-фактор допомагає зменшити розмір схеми, складність проводки та вартість системи, при цьому зберігаючи базові функції керування.
Незважаючи на тривалу присутність на ринку, ATtiny85 залишається широко використовуваним завдяки своїй стабільності, якісній документації та сумісності з поширеними інструментами розробки. Він працює в широкому діапазоні напруг і підтримує кілька варіантів тактового сигналу, що робить його придатним для компактних, енергоефективних конструкцій, які потребують надійної та передбачуваної поведінки.
Технічні характеристики ATtiny85
| Ні. Пінів | 8 |
|---|---|
| CPU | RISC 8-бітний AVR |
| Робоча напруга | 1,8–5,5 В |
| Пам'ять програми | 8K |
| Тип пам'яті програми | Спалах |
| RAM | 512 байт |
| EEPROM | 512 байт |
| Кількість каналів ADC ADC | 10-біт 4 |
| Компаратор | 1 |
| Пакети | PDIP (8-контактний) SOIC (8-контактний) TSSOP (8-контактний) QFN/MLF (20-контактний) |
| Осцилятор | до 20 МГц |
| Таймер (2) | 8-бітні таймери |
| Покращене живлення при скиданні | Так |
| Таймер для запуску сил | Так |
| Контакти введення/виведення | 6 |
| Виробник | Мікрочіп |
| SPI | Так |
| I2C | Так |
| Таймер Watchdog | Так |
| Виявлення коричневого виходу (BOD) | Так |
| Скидання | Так |
| USI (Універсальний послідовний інтерфейс) | Так |
| Мінімальна робоча температура | -40 C |
| Максимальна робоча температура | 125 C |
Конфігурація розпинування ATtiny85

| Пін | Назва | Основні функції |
|---|---|---|
| 1 | PB5 | СКИДАННЯ, 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-осцилятором, що дозволяє працювати без зовнішніх тактових компонентів.
• Зовнішні джерела тактового сигналу або кристали можуть використовуватися, коли потрібна вища точність синхронізації.
• Налаштування запобіжників контролюють джерело тактового сигналу, затримку запуску, рівень виявлення brownout та поведінку контактів RESET.
• Робота на нижчих тактових частотах знижує енергоспоживання та зменшує електричний шум.
• Виявлення «brownout» покращує стабільність при низьких напругах живлення, але трохи збільшує споживання струму.
Обмеження GPIO ATtiny85 та безпечна робота
• GPIO-контакти призначені для керування сигналом і не повинні подавати живлення на зовнішні навантаження.
• Світлодіоди, підключені до контактів GPIO, потребують резисторів, що обмежують струм, щоб запобігти пошкодженню.
• Двигуни, реле та інші пристрої високострумного керування мають керуватися за допомогою зовнішніх транзисторів або MOSFET.
• Внутрішні підтягувальні резистори можна увімкнути для спрощення з'єднань кнопок і перемикача.
• Всі напруги GPIO мають залишатися в межах визначених меж, щоб уникнути постійних пошкоджень.
ATtiny85 АЦП та аналогові можливості
| Особливість | Опис |
|---|---|
| Роздільна здатність АЦП | 10-бітний |
| Вхідні канали | До 4 |
| Опції посилання | VCC або внутрішнє посилання |
| Особливий режим | АЦП з шумозменшенням сну |
ATtiny85 оснащений вбудованим аналогово-цифровим перетворювачем, який вимірює зміну рівнів напруги та перетворює їх у цифрові значення. Якість вимірювання залежить від стабільної опорної напруги, чистих з'єднань живлення та правильної маршрутизації сигналу. Використання режиму сну ADC Noise Reduction допомагає знизити внутрішній шум під час конвертації, що покращує стабільність читання та загальну надійність.
Послідовна комунікація ATtiny85 з USI
ATtiny85 підтримує послідовний зв'язок через універсальний послідовний інтерфейс (USI). Цей гнучкий інтерфейс можна налаштувати через прошивку для роботи в режимі SPI або підтримки зв'язку в стилі I²C. Використовуючи єдиний спільний апаратний блок, пристрій зберігає компактний розмір, водночас забезпечуючи базовий обмін даними.
Оскільки USI значною мірою залежить від програмного контролю, потрібне ретельне управління часом. Він підходить для простих і низькошвидкісних завдань зв'язку, але пропонує менше функцій автоматизації, ніж спеціалізовані периферійні пристрої SPI або I²C, які використовуються у великих мікроконтролерах.
Програмування ATtiny85 через Arduino IDE

• ATtiny85 можна запрограмувати в IDE Arduino після встановлення ядра, сумісного з ATtiny.
• Програмування здійснюється за допомогою USB-програматора або Arduino, налаштованого як провайдер.
• Налаштування плати в Arduino IDE повинні відповідати вибраній тактовій частоті та робочій напругі ATtiny85.
• PIN, що використовуються в коді, відрізняються від фізичного розташування контактів, тому їх потрібно ретельно перевіряти перед підключенням.
Мінімально надійна схема ATtiny85

Ця схема використовує лише базові компоненти, необхідні для стабільної роботи. Контакти VCC і GND подають живлення, дозволяючи правильній роботі внутрішньої логіки. Внутрішній генератор керує таймінгом, тому зовнішні тактові компоненти не потрібні.
Світлодіод, підключений через резистор на 47 Ω, демонструє керування виходом, одночасно захищаючи як світлодіод, так і контакт GPIO. Контакт RESET залишається доступним для перепрограмування або перезавантаження пристрою. З дуже малою кількістю зовнішніх компонентів ця система забезпечує просту та надійну основу для базових застосувань.
ATtiny85 Поширені проблеми та швидкі перевірки
| Проблема | Що перевірити або виправити? |
|---|---|
| Завантаження коду не вдалося | Перевірте проводку провайдера і підтвердьте налаштування запобіжника RESET |
| Неправильний таймінг | Перевірте вибране джерело тактового сигналу та конфігурацію запобіжника |
| Нестабільні показники АЦП | Покращте заземлення та додайте відповідні конденсатори для роз'єднання |
| Помилки зв'язку | Перегляньте налаштування USI та налаштування таймінгу |
| Перегрів контактів | Зменшуйте струм навантаження та використовуйте зовнішні компоненти драйвера |
Висновок
ATtiny85 поєднує елементи керування ядрами у дуже компактній формі. Його специфікації, функції контактів, внутрішні блоки та налаштування живлення пояснюють, як він працює в реальних схемах. З правильним управлінням GPIO, використанням АЦП, послідовним налаштуванням і мінімальною схемою ATtiny85 можна чітко зрозуміти і застосовувати у стабільних, енерговитратних конструкціях.
Поширені запитання [FAQ]
Скільки енергії споживає ATtiny85?
Споживання енергії залежить від напруги живлення, тактової частоти та активних функцій. Нижчі тактові частоти та вимкнення невикористаних периферійних пристроїв зменшують споживання струму.
Чи потрібен ATtiny85 зовнішній тактовий процесор?
Ні. ATtiny85 має внутрішній RC-осцилятор і може працювати без зовнішніх тактових компонентів. Зовнішній такт потрібен лише для вищої точності таймінгу.
Чи можна використовувати контакт RESET як звичайний контакт введення/виведення?
Так. Контакт RESET можна налаштувати як GPIO за допомогою налаштувань запобіжників. Це виключає стандартне програмування провайдера і вимагає високовольтного програмування для перепрограмування пристрою.
Чи може ATtiny85 керувати моторами або реле безпосередньо?
Ні. Контакти GPIO ATtiny85 призначені лише для керування сигналом. Двигуни та реле мають приводитися в рух зовнішніми транзисторами або MOSFET.
Чому показники АЦП ATtiny85 нестабільні?
Нестабільні показники АЦП зазвичай спричинені шумом потужності або поганим заземленням. Додавання належних конденсаторів для роз'єднання та використання режиму шумоподавления ADC покращують стабільність.