Самодельный Arduino из контроллера ATMEGA328P-PU | 04s.ru

Самодельный Arduino из контроллера ATMEGA328P-PU

Платформа Arduino стала нынче практически мейнстримом.
В этой статье напишу о том, как собрать минимальную платформу на контроллере Amega 328P-PU, чтобы ее можно было программировать на платформе Arduino IDE.

Контроллер Atmega 328 от компании ATMEL является сердцем платформ Arduino UNO , Arduino Nano, Arduino Pro Mini и ряда других. Данные платы вместе с многочисленными «шилдами» и модулями удобны для создания прототипов, но довольно громоздки и избыточны для готовых устройств.

Конечное устройство можно собрать на макетной или печатной плате. Для этого приобретаем контроллеры Atmega. Я покупал наплощадке aliexpress.com.

Цена на момент покупки была $20 за 10 контроллеров, 10 панелек и 10 кварцевых резонаторов на 16МГц. (Сейчас цена стала немного дороже)

Буковка «P» в названии микросхемы означает низкое энергопотребление, а PU-корпус DIP28, который удобно паять обычным паяльником.

Контроллеры пришли, как их теперь готовить?

Yеобходимо установить загрузчик в наши контроллеры. Для этого используем плату Arduino Uno и купленный заранее очень дешевый программатор USBasp. Чтобы не мудрить с проводками, лучше сразу взять еще и такой переходник на 6-ти пиновый разъем ICSP.

Качаем и ставим драйвер программатора.

Описываем параметры микроконтроллера в файле c:\Program Files (x86)\Arduino\hardware\arduino\boards.txt

Для себя я сделал две конфигурации — внутренний кварц 8МГц с загрузчиком optiboot и отключенной проверкой на напряжение питания (чтобы можно было запитать микросхему вольт так от трех)

    atmega328_8_33.name=Atmega328 (3.3V, 8 MHz internal)

    atmega328_8_33.upload.protocol=arduino
    atmega328_8_33.upload.maximum_size=30720
    #atmega328_8_33.upload.speed=19200
    atmega328_8_33.upload.speed=57600

    atmega328_8_33.bootloader.low_fuses=0xC2
    atmega328_8_33.bootloader.low_fuses=0xE2
    atmega328_8_33.bootloader.high_fuses=0xDE
    atmega328_8_33.bootloader.extended_fuses=0x07
    atmega328_8_33.bootloader.path=optiboot
    atmega328_8_33.bootloader.file=optiboot_atmega328.hex
    atmega328_8_33.bootloader.unlock_bits=0x3F
    atmega328_8_33.bootloader.lock_bits=0x0F

    atmega328_8_33.build.mcu=atmega328p
    atmega328_8_33.build.f_cpu=8000000L
    atmega328_8_33.build.core=arduino
    atmega328_8_33.build.variant=standard

и точная такая же с внешним кварцевым резонатором на 16МГц.

    atmega328_16.name=Atmega328_16 (3.3V, 16 MHz external)

    atmega328_16.upload.protocol=arduino
    atmega328_16.upload.maximum_size=32256
    atmega328_16.upload.speed=115200
    atmega328_16.bootloader.low_fuses=0xff
    atmega328_16.bootloader.high_fuses=0xde
    atmega328_16.bootloader.extended_fuses=0x07
    atmega328_16.bootloader.path=optiboot
    atmega328_16.bootloader.file=optiboot_atmega328.hex
    atmega328_16.bootloader.unlock_bits=0x3F
    atmega328_16.bootloader.lock_bits=0x0F
    atmega328_16.build.mcu=atmega328p
    atmega328_16.build.f_cpu=16000000L
    atmega328_16.build.core=arduino
    atmega328_16.build.variant=standard

Аккуратно вынимаем из панельки Arduino контроллер и ставим туда наш.

Запускам стандартную ArduinoIDE, выбираем в меню «Сервис->Программатор->USBasp», плату Atmega328 (3.3V, 8 MHz internal) или Atmega328_16 (3.3V, 16 MHz external) и нажимаем «Записать загрузчик». После окончания процесса загрузки мы получаем контроллер,  в который можно уже в дальнейшем заливать программы через стандартный USB Ардуины.

В принципе, если вам не требуется низковольтное питание, можно не править фал board.txt, а пошить контроллер как Arduino Uno.

Дальнейшая работа с контроллером такая — либо шить его вставляя на плату Arduino Uno через стандартный USB порт этой платы. Прошив контроллер на работу с внутренним кварцем, можно сразу использовать его практически без всякой обвязки. Например, мигать светодиодом на 13-м порту, как на этой картинке.

Если же нужно постоянно использовать контроллер в своей плате, не переставляя его — то нужно собрать такую схему

и прошивать его через конвертер USB-RS232.

Контроллер с внешним кварцем работает быстрее и гораздо стабильнее.

Где это уже работает?
Контроллер управления вентилятором в ванной комнате

5/5 - (1 голос)


Место для продажи

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

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