ATtiny85 — это небольшой 8-битный микроконтроллер, предназначенный для простых задач управления, где важны пространство и энергопотребление. Он объединяет память, таймеры, аналоговый вход и последовательную связь в 8-контактном корпусе. В этой статье представлена подробная информация о его характеристиках, развязке, внутренней структуре, настройках питания и тактовой частоты, программировании, схемах и распространённых проблемах.

Обзор ATtiny85
ATtiny85 — это компактный 8-битный микроконтроллер, предназначенный для простых задач управления, где необходимо поддерживать небольшое количество пространства, энергопотребления и количества компонентов. Его форм-фактор из 8 контактов помогает уменьшить размер цепи, сложность проводки и стоимость системы, при этом сохраняя базовые функции управления.
Несмотря на долгое присутствие на рынке, ATtiny85 остаётся широко используемым благодаря своей стабильности, сильной документации и совместимости с распространёнными инструментами разработки. Он работает в широком диапазоне напряжений и поддерживает несколько вариантов тактового сигнала, что делает его подходящим для компактных, энергозатратных конструкций, требующих надёжного и предсказуемого поведения.
Технические характеристики ATtiny85
| Нет. of Pins | 8 |
|---|---|
| CPU | RISC 8-битный AVR |
| Рабочее напряжение | 1,8–5,5 В |
| Память программ | 8K |
| Тип памяти программы | Вспышка |
| ОЗУ | 512 байт |
| EEPROM | 512 байт |
| Количество каналов АЦП АЦП | 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 повышает надёжность, сбрасывая устройство, если обычное выполнение программы останавливается. Внутренний генератор обеспечивает тактовый сигнал, а централизованное управление синхронизацией синхронизирует все внутренние модули.
Операции ввода и выхода управляются через регистры портов, подключённые непосредственно к внешним выводам. Устройство также интегрирует аналоговые схемы, такие как АЦП и компаратор. Все внутренние блоки связаны через общие пути данных, что обеспечивает эффективную связь между памятью, логикой обработки и вводом/выводом.
Настройки питания, тактовой частоты и предохранителей ATtiny85
• ATtiny85 оснащён внутренним RC-осциллятором, позволяющим работать без внешних тактовых компонентов.
• Внешние источники тактов или кристаллы могут использоваться при повышенной точности тайминга.
• Настройки предохранителей управляют источником тактового сигнала, задержкой запуска, уровнем обнаружения потери и поведением контактов 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, настроенного как провайдер.
• Настройки платы в IDE Arduino должны соответствовать выбранной тактовой частоте и рабочему напряжению ATtiny85.
• PIN, используемые в коде, отличаются от физической конфигурации, поэтому их необходимо тщательно проверять перед подключением.
Минимально надёжная схема ATtiny85

Эта схема использует только базовые компоненты, необходимые для стабильной работы. Выводы VCC и GND подают питание, позволяя внутренней логике работать корректно. Внутренний генератор управляет таймингом, поэтому внешние тактовые компоненты не требуются.
Светодиод, подключённый через резистор на 47 Ω, демонстрирует управление выходом, одновременно защищая как светодиод, так и вывод GPIO. Контакт RESET остаётся доступным для перепрограммирования или перезагрузки устройства. С очень малым количеством внешних компонентов такая система обеспечивает простую и надёжную основу для базовых приложений.
ATtiny85 Распространённые проблемы и быстрые проверки
| Проблема | Что проверить или исправить? |
|---|---|
| Загрузка кода не удаётся | Проверьте проводку провайдера и подтвердите настройки предохранителей RESET |
| Неправильное время | Проверьте выбранный источник тактового сигнала и конфигурацию предохранителя |
| Нестабильные показания АЦП | Улучшите заземление и добавьте правильные конденсаторы для разъединения |
| Ошибки связи | Проверьте настройки USI и настройки тайминга |
| Перегрев контактов | Снижение нагрузки и использование внешних компонентов драйвера |
Заключение
ATtiny85 объединяет основные функции управления в очень компактной форме. Его характеристики, функции контактов, внутренние блоки и настройки питания объясняют, как он работает в реальных цепях. При правильной обработке GPIO, использовании АЦП, последовательной настройке и минимальной схеме ATtiny85 можно ясно понять и применять в стабильных, энергозатратных конструкциях.
Часто задаваемые вопросы [FAQ]
Сколько энергии потребляет ATtiny85?
Энергопотребление зависит от напряжения питания, тактовой частоты и активных функций. Снижение тактовых частот и отключение неиспользуемых периферийных устройств снижают потребление тока.
Нужен ли ATtiny85 внешний тактовый сигнал?
Нет. ATtiny85 оснащён внутренним радиоуправляемым осциллятором и может работать без внешних тактовых компонентов. Внешние часы нужны только для повышения точности тайминга.
Можно ли использовать контакт RESET как обычный вывод-вывод?
Да. Вывод RESET можно настроить как GPIO с помощью настроек предохранителей. Это отключает стандартное программирование провайдера и требует высоковольтного программирования для перепрограммирования устройства.
Может ли ATtiny85 управлять моторами или реле напрямую?
Нет. Выводы GPIO ATtiny85 предназначены только для управления сигналом. Моторы и реле должны приводиться в движение с помощью внешних транзисторов или MOSFET.
Почему показания АЦП ATtiny85 нестабильны?
Нестабильные показания АЦП обычно вызваны шумом мощности или плохим заземлением. Установка правильных конденсаторов для разъединения и использование режима шумоподавления ADC повышает стабильность.