2015-03-13 5 views
0

я успешно запрограммирован автономный ATmega328P с использованием Uno Arduino, добавив следующие строки в файле boards.txt:Использование Uno Arduino для программирования автономного ATmega2560

atmega328bb.name=ATmega328 on a breadboard (8 MHz internal clock) 
atmega328bb.upload.protocol=stk500 
atmega328bb.upload.maximum_size=30720 
atmega328bb.upload.speed=57600 
atmega328bb.bootloader.low_fuses=0xE2 
atmega328bb.bootloader.high_fuses=0xDA 
atmega328bb.bootloader.extended_fuses=0x05 
atmega328bb.bootloader.path=arduino:atmega 
atmega328bb.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex 
####atmega328bb.bootloader.file=ATmegaBOOT_168_atmega328.hex 
atmega328bb.bootloader.unlock_bits=0x3F 
atmega328bb.bootloader.lock_bits=0x0F 
atmega328bb.build.mcu=atmega328p 
atmega328bb.build.f_cpu=8000000L 
atmega328bb.build.core=arduino:arduino 
atmega328bb.build.variant=standard 
atmega328bb.bootloader.tool=arduino:avrdude 

Загрузчик работал, и я был в состоянии работать мигания пример успешно на автономном ATmega328p.

Теперь я пытаюсь загрузить пример мигания в автономный ATmega2560. Я выбрал плату ATmega2560 из меню «Сервис» (встроенная плата ATmega2560) и запустил загрузчик. Я не внес никаких изменений для ATmega2560 в файле boards.txt) Загрузочный загрузчик работал, и код был загружен в ATmega2560 успешно.

Однако проблема в том, что пример мигания не работает. Светодиод на выводе 26 на автономной плате включается в течение очень короткого периода времени, затем выключается в течение очень короткого периода времени, а затем снова включается на короткое время и, наконец, выключается на 1 секунду. Этот цикл повторяется. Тем не менее, код мигания должен включать светодиод, затем обеспечивает задержку в 1 секунду, а затем отключается на 1 секунду, и этот цикл повторяется. Микробный код не работает, так как он должен работать на моем автономном ATmega2560

Я тестировал то же самое, используя TIMER1. Я написал код, чтобы мигать светодиодом через каждые 0,03 секунды. Это отлично работает в автономном ATmega328p, но не работает на автономном ATmega2560.

В чем проблема? Нужно ли добавлять некоторые строки для автономного ATmega2560 в файл boards.txt?

Я подключил все выводы VCC, выводы GND и кристалл, включая конденсатор и резистор фильтра, как показано на рис.

После того, как я подключен штифт сброса 5V через резистор 10 кОм.

После того, я сделал следующее:

  • Arduino Uno штифт 10 для сброса штифт из автономного ATmega2560
  • Arduino Uno пин MISO к контакту MISO из автономного ATmega2560
  • Arduino Uno контактный MOSI к контакту MOSI автономного ATmega2560
  • Arduino Uno контактного SCK приколоть SCK из автономного ATmega2560

Пожалуйста ч очь!

+0

Грамматика ошибок и опечаток – rayryeng

+0

Это, вероятно, больше подходит для электротехники StackExchange: http://electronics.stackexchange.com/ – rayryeng

ответ

0

В файле Board.txt в разделе ATMEGA2560 вам необходимо заменить значение «0xD8» на «0xD9». Это так, потому что в автономных чипах ATMEGA2560, если предохранитель BOOTRST не установлен, чип будет правильно запрограммирован, но программы никогда не будут работать. Таким образом, линия может выглядеть следующим образом (мы можем сохранить оригинал линия комментировал):

# mega.menu.cpu.atmega2560.bootloader.high_fuses = 0xD8

mega.menu.cpu.atmega2560.bootloader.high_fuses = 0xD9

Учебник здесь: https://soc.ninja/documentation/programming-atmega2560-with-arduino-uno-or-mega/

+0

После этого. Я не могу загрузить эскиз снова через кабель FTDI. Если я оставлю 0xD8, я могу загружать любое количество раз, но не запускать. В то время как с 0xD9 работает нормально при каждом включении питания, но больше не загружается эскиз. – HallMark

 Смежные вопросы

  • Нет связанных вопросов^_^