Китайский Arduino UNO R3 с ATmega8A

Прикупил я случайно в Китае плату Arduino UNO для опытов.  Оказалось что это творение сумрачного гения почему-то вместо микроконтроллера ATmega328 построено на базе ATmega8A.  Обидно, но для моих экспериментов это не имеет никакого значения.  Вопрос был только в том, как заставить это работать.  Оказалось что очень просто:

Arduino UNO на ATmega8A
Arduino UNO на ATmega8A

В Linux драйвер последовательного порта обнаруживает сей девайс без каких-либо проблем по умолчанию.  В Windows все несколько сложнее: по умолчанию порт не видится в системе.  Для решения это проблемы необходимо пройти по ссылке https://wch-ic.com/download/list.asp?id=126, скачать и установить драйвер для микросхемы порта CH340.  После этого порт немедленно обнаружится и будет готов к работе.

Дальше самое интересное – необходимо заставить работать с микроконтроллером Arduino IDE.  Для этого нужно добавить описание этого чуда в файл boards.txt.  В Linux он обычно находится в каталоге /usr/share/arduino/hardware/arduino/, а в Windows его следует искать в папке C:\Program Files (x86)\Arduino\hardware\arduino.

Добавить к конец файла boards.txt нужно следующие строки:

opti8.name=Arduino Optiboot8
opti8.upload.protocol=arduino
opti8.upload.maximum_size=7680
opti8.upload.speed=115200

opti8.bootloader.low_fuses=0xbf
opti8.bootloader.high_fuses=0xcc
opti8.bootloader.path=optiboot
opti8.bootloader.file=optiboot_atmega8.hex
opti8.bootloader.unlock_bits=0x3F
opti8.bootloader.lock_bits=0x0F

opti8.build.mcu=atmega8
opti8.build.f_cpu=16000000L
opti8.build.core=arduino
opti8.build.variant=standard

После этого остается только выбрать в Arduino IDE плату с именем Arduino Optiboot8, и можно приступать к работе.

Китайский Arduino UNO R3 с ATmega8A: 17 комментариев

  1. все как надо сделал, выбрал плату, пишет ошибку компиляции file included from C:\Users\Maxim\Downloads\arduino-1.5.6-r2-windows (1)\arduino-1.5.6-r2\hardware\arduino\avr\cores\arduino\HardwareSerial.cpp:32:
    C:\Users\Maxim\Downloads\arduino-1.5.6-r2-windows (1)\arduino-1.5.6-r2\hardware\arduino\avr\cores\arduino\/HardwareSerial_private.h: In member function ‘void HardwareSerial::_rx_complete_irq()’:
    C:\Users\Maxim\Downloads\arduino-1.5.6-r2-windows (1)\arduino-1.5.6-r2\hardware\arduino\avr\cores\arduino\/HardwareSerial_private.h:98: error: ‘UPE’ was not declared in this scope

    This report would have more information with
    “Show verbose output during compilation”
    enabled in File > Preferences.

  2. Спасибо. заработало. правда у меня стоит все-таки ATmega328 и последнее действие не пришлось делать. Подскажите, пожалуйста, как его в DFU загнать?

  3. Сделал все как написано, но выдавало ошибку как уже описывалось выше. Почитав комментарии решил попробовать перебрать версии Arduino. Изначально была установлена Arduino 1.0.5 r2, заменил на Arduino 1.0.4 и все заработало. Спасибо большое Автору за статью и всем кто писал комментарии!

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