Найти в Дзене
Электронные схемы

Прошиваю Atmega32 программатором USBasp и пишу код в Atmel Studio для мигания светодиодом

как прошить atmega32 программатором usbasp
как прошить atmega32 программатором usbasp

Прошивал микроконтроллер (МК) Atmega32 и для проверки работы взял с интернета простую программу для мигания светодиодами.В этой статье расскажу как я это сделал.

Для прошивки и написания кода использовал:

-программатор USBasp.Такой можно приобрести на известном сайте и вместе с пересылкой обойдется примерно в 200 рублей

-драйвер для программатора,он спокойно "гуглится"-находится в интернете

-Atmel Studio-программа,в которой я буду писать код и его проверять.Скачать программу можно бесплатно на сайте от производителя,работал на версии 6.2

-SinaProg-программа,которая будет прошивать микроконтроллер.Скачать ее можно также бесплатно

распиновка микроконтроллера atmega32 с портом B
распиновка микроконтроллера atmega32 с портом B

Задействованы будут выводы порта B,поэтому на фото указаны выводы МК,которые будут использованы.На программаторе надо установить перемычку в положение 5 Вольт.

программатор USBasp расположение выводов
программатор USBasp расположение выводов

На самом программаторе указаны выводы,которые должны быть подключены к МК :Vcc-это плюс питания,GND-минус,RST-reset,SCK-тактовый сигнал,MOSI-Master Out Slave In, MISO-Master In Slave Out.Эти шесть выводов надо подсоединить к одноименным выводам МК.

прошивка МК AVR программатором USBasp
прошивка МК AVR программатором USBasp

Подключаем программатор вместе с МК в гнездо USB компьютера и запускаем программу Atmel Studio.

atmel studio версия 6.2 для написания кода для микроконтроллера
atmel studio версия 6.2 для написания кода для микроконтроллера

Выбираем новый проект "New Project"

как работать в atmel studio
как работать в atmel studio

Выбираем GCC C Executable Project и папку,куда будет сохранен файл проекта.Жмем ОК

выбор папки для проекта атмел студио
выбор папки для проекта атмел студио

Далее надо выбрать МК который применяем в проекте и жмем ОК

выбор микроконтроллера в программе atmel studio
выбор микроконтроллера в программе atmel studio

Появляется поле,в котором буду писать код.Все что выделено зеленым,надо удалить.

комментарии в среде разработки
комментарии в среде разработки

Сам код для мигания восемью светодиодами от порта B показан на фото.

F_CPU 1000000-установка частоты для компилятора.

include <avr/io.h>-подключение библиотеки аппаратных описаний МК.

include <util/delay.h>- подключение библиотеки задержек

PORTB-это выбор порта B. 0b11111111-восемь единиц-это восемь выводов МК порта B и на них установлен высокий уровень

_delay_ms(1000)-задержка свечения светодиодов на 1 секунду

PORTB=0b00000000- теперь на восьми выводах МК будет ноль или светодиоды светить не будут.Время не свечения выставлено 2 секунды

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

Когда текст написан,его надо перевести в код,который поймет МК,то есть откомпилировать.Для этого нажимаем на Build Solution

компиляция текста в программе атмел студио
компиляция текста в программе атмел студио

После компиляции в папке будет сохранен hex файл кода.Если в тексте нет ошибок,снизу экрана(на фото последняя строка) появится надпись 0 failed 0 skipped.

компиляция текста в код
компиляция текста в код

Далее открываем программу SinaProg.Выставляем нужный МК и нужный программатор,вставляем из папки hex файл и нажимаем Program.Прошивка займет не более 2 секунд,после чего появится надпись ,что МК прошит успешно.

прошивка микроконтроллера atmega 32 программой sinaprog
прошивка микроконтроллера atmega 32 программой sinaprog

Теперь проверка.Подаем питание 5 Вольт на выводы 11 и 10 МК. Катод светодиода подсоединяем к минус питания,анод через резистор сопротивлением 270 Ом к любому из восьми выводов порта В.Светодиод будет светить одну секунду,а две не светить.Если резистор подключить к плюс питания а катод светодиода к выводам порта,то теперь светить будет две секунды а одну не светить.

мигание светодиодом atmega 32
мигание светодиодом atmega 32