Как изменить биты предохранителей - не общаясь?

В настоящее время я работаю над проектом с использованием микроконтроллерной карты ATmega 2560 с кристаллом 10 МГц. Моя главная цель-использовать Arduino IDE для загрузки скетчей на этот чип для запуска моей схемы макетной платы. Вначале я планировал использовать Atmel Studio для загрузки скетчей Arduino, но решил пойти более прямым путем. Я использую два программатора-Atmel ICE и Atmel AVR ISP MKii.

В любом случае, вот моя проблема. Я попытался использовать Arduino IDE и MKii, чтобы записать загрузчик на чип. Однако это не сработало. Он загрузился, но в тот момент я уже не мог общаться с устройством. Когда я переключился на студию Atmel и использовал программатор ICE, мой чип не мог быть прочитан и распознан (тогда как раньше он мог). Я даже не могу его запрограммировать. (Я купил два.)

Затем я решил, что попробую прочитать биты предохранителей на другом программаторе и записать загрузчик с помощью Atmel Studio (так как Arduino IDE не имеет никакой информации об этом), и я нашел нужные биты для изменения, а затем сжег загрузчик. Он работал нормально, а затем я изменил предохранители, что привело к ошибке, и теперь я снова мог разговаривать с устройством.

Я предполагаю, что что-то идет не так с предлагаемыми битами предохранителей, но я не знаю, как их изменить или как это исправить. Оригинальные биты предохранителей, которые я прочитал с устройства, перечислены ниже (до того, как я все испортил).

Я проверил свою проводку миллиард раз, и все это идеально. Мне просто нужны предложения, чтобы исправить этот беспорядок, спасибо.

BODLEVEL = DISABLED
OCDEN = [ ]
JTAGEN = [X]
SPIEN = [X]
WDTON = [ ]
EESAVE = [ ]
BOOTSZ = 4096W_1F000
BOOTRST = [X]
CKDIV8 = [ ]
CKOUT = [ ]
SUT_CKSEL = INTRCOSC_6CK_0MS
EXTENDED = 0xFF (valid)
HIGH = 0x98 (valid)
LOW = 0xC2 (valid)
LB = NO_LOCK
BLB0 = NO_LOCK
BLB1 = NO_LOCK

LOCKBIT = 0xFF (valid)

Detected device
Device name       ATmega2560
Device signature  0x1E9801

, 👍0

Обсуждение

Убедитесь, что кристалл подключен и к нему подключены соответствующие конденсаторы., @Gerben

Вы можете проверить настройку бита предохранителя здесь https://www.engbedded.com/fusecalc/ он расскажет вам, что делает ваша текущая настройка предохранителя. и если вы действительно запутались с предохранителем, что вы не можете даже поговорить с контроллером сейчас, то метод высоковольтного программирования-это способ исправить это и установить новые предохранители., @dharmik


1 ответ


Лучший ответ:

0

Если AVR замурован из-за неправильных предохранителей, я полагаю, что обычно это неработающий внешний генератор, вам нужно подать сигнал на определенный вывод AVR, чтобы снова заставить программатор работать. Нить, связанная с разматыванием http://www.avrfreaks.net/forum/locked-out-atmega-328p-possible-clocklow-fuse-byte-issue.

,