Как изменить биты предохранителей - не общаясь?
В настоящее время я работаю над проектом с использованием микроконтроллерной карты 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
@supremematt, 👍0
Обсуждение1 ответ
Лучший ответ:
Если AVR замурован из-за неправильных предохранителей, я полагаю, что обычно это неработающий внешний генератор, вам нужно подать сигнал на определенный вывод AVR, чтобы снова заставить программатор работать. Нить, связанная с разматыванием http://www.avrfreaks.net/forum/locked-out-atmega-328p-possible-clocklow-fuse-byte-issue.
- При использовании ардуино в качестве ISP конденсатор требуется или нет?
- Программирование пользовательских Arduino Mega с Arduino Uno
- Программирование ATmega4809 через Atmel-ICE с шестнадцатеричным файлом из Arduino IDE - почему не работает код цикла?
- Внешний программатор ArduinoISP выдает ошибку проверки?
- Ошибка при записи загрузчика на ATMega-8A с использованием Arduino Mega 2560: avrdude: invalid byte value
- Как разделить входящую строку?
- Как использовать SPI на Arduino?
- При использовании Arduino Uno в качестве ISP: "Yikes! Invalid device signature" - плохое соединение, неверную конфигурацию или неверную версию avrdude?
Убедитесь, что кристалл подключен и к нему подключены соответствующие конденсаторы., @Gerben
Вы можете проверить настройку бита предохранителя здесь https://www.engbedded.com/fusecalc/ он расскажет вам, что делает ваша текущая настройка предохранителя. и если вы действительно запутались с предохранителем, что вы не можете даже поговорить с контроллером сейчас, то метод высоковольтного программирования-это способ исправить это и установить новые предохранители., @dharmik