Программирование «голых» микроконтроллеров и использование внешних программаторов может быть пугающим занятием для новичков, но микроконтроллер ATtiny в данном деле может стать отличным началом. Здесь мы предоставим подробное руководство для начинающих, чтобы начать программировать ATtiny, используя программатор USBasp и Arduino IDE.

Сегодня широко доступны различные платы на основе микроконтроллеров. Например, плата Arduino Uno содержит микроконтроллер Atmel ATmega328 (внутри которого находится 8-разрядный микропроцессор AVR RISC), а также микроконтроллер ATmega16U2, который по умолчанию используется в качестве программатора. Обычно отладочная плата используется для тестирования микроконтроллера и создания прототипа, и как только вы закончите прототипирование, вы сможете спроектировать собственное устройство, используя только микроконтроллер и необходимые компоненты.
Atmel (теперь Microchip) производит микроконтроллеры семейств ATmega и ATtiny. ATtiny, как следует из названия, имеют меньше функций, меньше пинов ввода/вывода и меньше памяти, чем ATmega, но они по-прежнему используются во многих приложениях, как промышленных, так и образовательных. И вы можете запрограммировать их на языке программирования Arduino через Arduino IDE – хотя не ожидайте, что все библиотеки будут работать – некоторые из них полагаются на оборудование, которым ATtiny просто не оснащены.
USBasp представляет собой программатор USB на основе микроконтроллера ATmega8 с открытым исходным кодом для программирования контроллеров Atmel AVR, разработанный Томасом Фишлем. Это программатор выпускается по модели open-source, т.е. многие производители выпускают собственные версии, которые можно купить в Интернете.
Итак, приступим. В Windows (в Linux и MacOS этот шаг не требуется) установите утилиту Zadig и, подключив программатор USBasp к USB-порту вашего компьютера, выберите установку драйвера libusbK (v3.1.0.0) (в некоторых случаях libusb-win32 может не работать). Если USBasp не отображается в раскрывающемся меню, попробуйте выбрать List All Devices (Список всех устройств) в меню Options (Параметры).

На программаторе установите следующую перемычку:

Подключите USBasp к ATtiny (учитывайте ориентацию распиновки USBasp, проверьте, не зеркально ли она отображается при использовании ленточного кабеля):

Подключите светодиод через резистор к свободному контакту (в данном случае был использован пин 4) и заземлению:

Теперь приступим к настройке Arduino IDE. Перейдите в File (Файл) — Preferences (Настройки). В URL-адресах диспетчера дополнительных плат вставьте https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json.
Перейдите в Tools (Инструменты) – Boards (платы) – Board Manager (Диспетчер плат). Найдите attiny и установите платы. В Tools установите плату, процессор и тактирование на значения, соответствующие микроконтроллеру.
В Tools установите программатор на USBasp. Теперь запишем в микроконтроллер стандартный пример Blink, который даст возможность мигать светодиодом:
const uint8_t LED = 4;
const uint16_t SLEEP = 1000;
void setup() {
pinMode(LED, OUTPUT);
}
void loop() {
digitalWrite(LED, HIGH);
delay(SLEEP);
digitalWrite(LED, LOW);
delay(SLEEP);
}
Если все сделано правильно, то микроконтроллер начнет мигать светодиодом. Но если что-то пошло не так, то нужно все внимательно проверить.
Если в Arduino IDE вы получаете сообщение об ошибке, что последовательный порт не существует: убедитесь, что перемычка находится в положении, как было показано выше в данном материале.
Если что-то не так с проводкой между USBasp и ATtiny: проверьте ориентацию разъема – если вы используете ленточный кабель, вы должны проверить соединения и, возможно, подключить его, как описано в этой статье.
Если в Zadig вы получаете сообщение типа «could not find USB device with…» (не удалось найти USB-устройство с…): возможно, вы выбрали неправильный драйвер – Если вы не видите USBasp в списке устройств в Zadig: не забудьте подключить USBasp перед запуском Zadig и выберите «Параметры» > «Список всех устройств» в окне Zadig перезапустите Zadig и попробуйте снова установить libusbK.
Если время установки Zadig истекло, и он говорит, что установка не удалась, перезапустите Zadig и попробуйте снова установить libusbK.
Внутрисхемный программатор USB ISP ASP AVR
Внутрисхемный программатор для микроконтроллеров AVR
Written by Admin
1 комментарий к Как запрограммировать микроконтроллер ATtiny в Arduino IDE с помощью программатора USBasp
Обсуждение закрыто.
Спасибо