Arduino MEGA. Перепрошить Fuse

Jonson1974
Offline
Зарегистрирован: 15.01.2013

Доброго времени суток.

Подскажите, есть ли возможность перепрошить LFuse на плате ArduinoMEGA?

Мне необходимо получить тактовую частоту контроллера на выводе CLKO (PORTE7). Изначально этот вывод на МЕГЕ не распаян. Эту проблему я решил, порт доступен и работает (диодиком могу на нем "помигать"). Теперь (по DataSheet контроллера) необходимо прошить бит CKOUT (в Low Fuse byte).

Прежде чем прошивать во фьюз новое значение, везде советуют сначала прочесть его текущее состояние а уже потом что-то менять. Вот как раз это то и не получается. 

Пытаюсь с помощью avrdude прочесть состояние lfuse, но она в результате выдает ":01000000FF00
:00000001FF", причем выдает такое на всех трех фьюзах. Вот и сомневаюсь - правильно ли я все делаю.

Подскажите, как сделать это правильно, чтоб не "положить" Ардуину.

maksim
Offline
Зарегистрирован: 12.02.2012

Мега какая? 2560 или 1280? Каким программатором пользуетесь?

В общем я бы сделал так: открываете файл (обратите внимание на версию IDE) ...\Дуина\arduino-1.0.X\hardware\arduino\boards.txt в нем находите строки: 

##############################################################

mega2560.name=Arduino Mega 2560 or Mega ADK

mega2560.upload.protocol=stk500v2
mega2560.upload.maximum_size=258048
mega2560.upload.speed=115200

mega2560.bootloader.low_fuses=0xFF
mega2560.bootloader.high_fuses=0xD8
mega2560.bootloader.extended_fuses=0xFD
mega2560.bootloader.path=stk500v2
mega2560.bootloader.file=stk500boot_v2_mega2560.hex
mega2560.bootloader.unlock_bits=0x3F
mega2560.bootloader.lock_bits=0x0F

mega2560.build.mcu=atmega2560
mega2560.build.f_cpu=16000000L
mega2560.build.core=arduino
mega2560.build.variant=mega

##############################################################

Естественно эти строки для Мега2560 и меняете low_fuses:

mega2560.bootloader.low_fuses=0xBF

Сохранияете файл, запускаете IDE, выбираете свой программатор ,выбираете свою плату, нажимаете Burn bootloader. Прошьются и фьюзы и бутлоудер.

Jonson1974
Offline
Зарегистрирован: 15.01.2013

Мега 2560.

Программатор USBTinyISP v3.0

Сейчас попробую Ваш совет.

Jonson1974
Offline
Зарегистрирован: 15.01.2013

maksim

Огромное спасибо Вам за подсказку! Все получилось. Хоть при прошивке бутлоадера и выскочила ошибка верификации, но бит прошился (частота появилась).

Я, если честно, читал про исправление файла boards.txt, пробовал. Но не догадался, что надо прошивать именно бутлоадер. Думал что фьюзы прошиваются при каждой заливке скетча. А оказалось вон как!

Еще раз большое спасибо!

nov
Offline
Зарегистрирован: 01.08.2014

Здравствуйте. У меня проблема. Так получилось, что неправильно выставил фьюзы, отвечающие за интерфейсы ISP и JTAG в TOOLS\DEVICE PROGRAMMING в ATMEL STIDIO. У меня плата ARDUINO MEGA c ATMEGA2560. Что делать? Ни один из интерфейсов не работает и программировать не получается. ((((((( У меня в наличии программатор JTAGICE3