Программирование ATtiny85 с помощью платы Arduino Uno

Микроконтроллер ATtiny85 является удобной и сравнительно мощной альтернативой старшим моделям микроконтроллеров семейства AVR. Его применение особенно оправданно в тех случаях, когда вы стремитесь к минимизации размеров вашего устройства.

Внешний вид процесса программирования ATtiny85 с помощью платы Arduino Uno

Микросхема ATtiny85 содержит 8 контактов – 6 контактов ввода/вывода (включая Reset) и 2 контакта питания. Но как его программировать если он не имеет USB интерфейса как большинство современных микроконтроллерных плат? В этом случае его можно запрограммировать с помощью платы Arduino Uno (этот способ мы рассмотрим в данной статье) или сконструировать самодельный USB программатор для ATtiny85.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Микроконтроллер ATtiny85 (купить на AliExpress).
  3. Светодиод (купить на AliExpress).
  4. Резистор 220 Ом (купить на AliExpress).
  5. Макетная плата.
  6. Соединительные провода.

Краткие сведения о микроконтроллере ATtiny85

ATtiny85 – это высокопроизводительный 8-битный микроконтроллер с низким энергопотреблением, построенный на основе архитектуры Advanced RISC. Он имеет 8 Кбайт перепрограммируемой флеш-памяти (память программ), 512 Байт EEPROM (энергонезависимой памяти), 512 Байт оперативной памяти (SRAM), 6 контактов ввода/вывода общего назначения 32 регистра общего назначения, один 8-битный таймер/счетчик с режимом сравнения, один 8-битный высокоскоростной таймер/счетчик, USI (универсальный последовательный интерфейс), внутренние и внешние прерывания, 4-х канальный 10-битный АЦП (аналого-цифровой преобразователь), программируемый сторожевой таймер с внутренним генератором, 3 программно управляемых режима энергопотребления.

Назначение контактов (распиновка) микроконтроллера ATtiny85 приведено на следующем рисунке.

Назначение контактов (распиновка) микроконтроллера ATtiny85

Большинство контактов ATtiny85 могут выполнять несколько функций.

Пошаговое руководство по программированию ATtiny85 с помощью платы Arduino Uno

Шаг 1. Конфигурирование платы Arduino Uno в качестве ISP

Поскольку ATtiny85 является всего лишь микроконтроллером, то для его программирования необходимо использовать ISP (In-System Programming – внутрисистемное программирование. Поэтому нам необходимо сконфигурировать Arduino Uno в качестве ISP чтобы ее можно было использовать как программатор для ATtiny85. Для этого подсоедините Arduino Uno к компьютеру и запустите Arduino IDE. После этого откройте пункт меню File > Example > ArduinoISP и загрузите код ArduinoISP в плату Arduino Uno.

Конфигурирование платы Arduino Uno в качестве ISP

Шаг 2. Схема для программирования ATtiny85

Схема для программирования ATtiny85 с помощью платы Arduino Uno представлена на следующем рисунке.

Схема для программирования ATtiny85 с помощью платы Arduino Uno

В схеме положительный вывод светодиода подключен к контакту 0 микроконтроллера ATtiny85 через резистор 220 Ом. Полная схема соединений представлена в следующей таблице.

ATtiny85 Плата Arduino Uno
Vcc 5V
GND GND
Pin 2 13
Pin 1 12
Pin 0 11
Reset 10

Внешний вид конструкции проекта в сборе выглядит примерно следующим образом:

Внешний вид конструкции проекта в сборе

Шаг 3. Программирование ATtiny85 с помощью Arduino IDE

Для программирования ATtiny85 с помощью Arduino IDE первым делом нам необходимо добавить поддержку ATtiny85 в Arduino IDE. Для этого откройте пункт меню File > Preferences, добавьте приведенную ниже ссылку в поле Additional Boards Manager URLs и нажмите ‘OK.’

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json

Добавление поддержки ATtiny85 в Arduino IDE

Затем откройте пункт меню Tools > Board > Board Manager, запустите там поиск ‘attiny’ и установите его последнюю версию.

Установка последней версии attiny

После этого вы увидите как у вас появится новый пункт в меню Arduino IDE – в пункте Board появится подпункт с именем 'Attiny25/45/85'.

В меню появился новый пункт с именем 'Attiny25/45/85'

Теперь откройте File > Examples > Basics и в нем откройте пример с миганием светодиода (Blink example).

Открытие примера с миганием светодиода (Blink example)

Измените в этом примере номер контакта с LED_BUILTIN на 0.

Изменение в примере мигания светодиода номера контакта с LED_BUILTIN на 0

Теперь снова откройте пункт меню Tools -> Board и выберите “Attiny25/45/85”, потом выберите ATtiny85 в пункте Tools > Processor.

Выбор необходимых инструментов в Arduino IDE

Теперь можете произвести загрузку кода программы в микроконтроллер. Если после загрузки программы светодиод, подключенный к контакту 0 микроконтроллера Attiny85, начнет мигать, значит, программа загружена успешно.

В следующем видео вы можете более подробно посмотреть все описанные в статье процессы.

(Проголосуй первым!)
Загрузка...
415 просмотров


Комментарии

Программирование ATtiny85 с помощью платы Arduino Uno — 2 комментария

  1. Добрый день. Меня зовут Александр, 61 год. Я хочу сделать один проэкт для моих внуков на модельной жедезной дороге. Это должно работать на Attiny85. Составные части: 1. Attiny85 2. две кнопки ( не выключатели) 3. 1 штука LED 4. Servo мотор - 1 штука ( SG90 9G Micro Mini Servo) или подобный 5. RM065 10КОм (?) потенциометр - 1 штука Принцип работы: Начальное состояние так называемое "0" состояние- ничего не происходит. Внимание: мы имеем две кнопки: А и Б Сначало нажимается кнопка А, потом Б. После нажатия Б в Attiny85 срабатывает счеткик с 0 на увеличение 1. В это время начинает мигать LED (можно сказать симметрично по 0,5 сек.). Потом через 1 сек. ( после нажатия Б) поворачивается servo-мотор на 180 град. и останавливается. LED-продолжает мигать. При нажатии АБ - 2 раз, АБ - 3 раз , и более- счетчик считает 2, 3 и более. Если на счетчике не "0", LED постоянно мигает, а серво находится в полодении 180 град. Уменьшение на счетчике только после комбинации БА, БА. Если состояния счеткика становится на "0", Servo поворачивается в положение 0 град. и только потом ( при нулевом Servo) перестает мигать LED. Потенциометр необходим для регулирования скорости вращения servo (ШИМ сигнала) Если сможите такой скейч сделать, сколько это будет стоить. С уважением Александр

    • Добрый вечер. К сожалению, временно не могу вам помочь, нет сейчас возможности работать ни с Ардуино, ни с Attiny85. По отдельности все аспекты работы вашего проекта у нас на сайте рассмотрены (подключение сервомотора, кнопок, светодиодов и т.д.). Если необходимо, могу привести ссылки на них

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *