ATmega128 + Arduino IDE + USBasp

Отладочная плата BK-AVR128

Я уже писал о том, как устанавливать различные отладочные платы и микроконтроллеры Atmel для того, чтобы их можно было программировать, используя среду разработки Arduino IDE в статье Установка дополнительных плат в Arduino IDE. Сегодня я рассмотрю еще один частный случай программирования микроконтроллера ATmega128A, используя программатор USBasp и ардуишную среду.

 

Загрузчик для ATmega128A

Для того, чтобы записать программу в память микроконтроллера непосредственно из Arduino IDE потребуется специальная программа-загрузчик (bootloader), размещенная в специальной области памяти микроконтроллера, которая постоянно опрашивает UART.

Это немного измененная версия загрузчика с сайта www.chip45.com.

Bootloader Mega128
Bootloader Mega128
bootloader_mega128.zip
10.0 KiB
521 Downloads
Details

Для компиляции я использовал AVR-GCC.

В архиве содержится исходный C-файл, объектый файл и готовый hex-файл. Для дальнейших действий понадобится только последний.

Устанавливаем фьюзы микроконтроллера и прошиваем загрузчик, используя программатор USBasp и AVRDUDE:

В Windows sudo писать не нужно.

Создадим папку atmega128 и перепишем в нее файл boot_mega128.hex в папке с загрузчиками среды Arduino для того, чтобы можно было прошивать bootloader прямо из Arduino IDE.

Создание папки внутри bootloaders в Arduino IDE

В MacOS X путь к папке с загрузчиками выглядит следующим образом:

.../arduino/Contents/Java/hardware/arduino/avr/bootloaders
 

Файл boards.txt

В Windows этот файл расположен в папке с Arduino:

.../hardware/arduino/avr/boards.txt

В Mac OS X:

.../arduino/Contents/Java/hardware/arduino/avr/boards.txt

В конец файла boards.txt среды Arduino добавляем следующие строчки:

Обратите внимание на фьюзы загрузчика.  Они в точности должны совпадать с указанными при его прошивке!

Тактовая частота микроконтроллера у меня установлена равной 8 МГц.
 

Определяем пины

Для того, чтобы было удобно обращаться к тому или иному пину, необходимо указать их соответствие для нашего микроконтроллера. В папке variants создадим новую папку mega128

Создание папки внутри variants в arduino ide

В папке mega128 необходимо создать файл pins_arduino.h с описанием пинов микроконтроллера ATmega128.

pins_arduino.h для ATmega128
2.5 KiB
457 Downloads
Details

 

Hello, world!

Осталось проверить работоспособность. Подключаем к выводу PB4 светодиод (12 пин) и наслаждаемся его незамысловатым миганием, предварительно загрузив представленный ниже скетч в микроконтроллер, выбрав  микроконтроллер Custom ATmega 128 Breakout Board using AVRISP и программатор USBasp из среды Arduino IDE.

 

Как вы оцениваете эту публикацию? 1 звезда2 звезды3 звезды4 звезды5 звезд (16 голосов, средняя оценка: 4.88 из 5)
Loading ... Loading ...

Вы можете пропустить чтение записи и оставить комментарий. Размещение ссылок запрещено.

Один комментарий к записи “ATmega128 + Arduino IDE + USBasp”

  1. Сергей пишет:

    Андрей, можно ли этот бутлоадер пересобрать под atmega64?

    Отличий между 64 и 128 минимум, но есть одно замечание касательно бутлоалдера

    The Boot Loader area is also changed. The following must be considered:

    • The No-Read-While-Write section starts at word address 0xF000 instead of

    0×7000.

Оставить комментарий