Восстановление фьюзов atmega328p в Arduino Nano 3.0

DmitryAkaLBVF
Offline
Зарегистрирован: 01.05.2018

Добрый день, коллеги!

Прошу консультации. Возможно ли выполнить высоковольное программирование чипа atmega328p не выпаивая его из модуля Arduino Nano, подключив к программатору через выведенные на плате пины?

Если я верно понял из документации, то HVSP чип atmega328p не поддерживает, возможно только HVPP. Есть программатор, но нет желания перепаивать TQFP32 чип из модуля в переходник для программирования, а потом обратно в модуль Nano.

Может есть какой-то лайфхак, позволяющий восстановить фьюзы менее варварским способом? 

По смыслу нужно вернуть контроллер в режим ISP из режима отладки DebugWire.

С уважением, Дмитрий.

-NMi-
Offline
Зарегистрирован: 20.08.2018

Erase and Reset чо, нипамагает???

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

DmitryAkaLBVF пишет:
Если я верно понял из документации, то HVSP чип atmega328p не поддерживает, возможно только HVPP.
Вы неверно поняли, см. раздел 28.6 и 28.7 даташита.

DmitryAkaLBVF
Offline
Зарегистрирован: 01.05.2018

ЕвгенийП пишет:

DmitryAkaLBVF пишет:
Если я верно понял из документации, то HVSP чип atmega328p не поддерживает, возможно только HVPP.
Вы неверно поняли, см. раздел 28.6 и 28.7 даташита.

Спасибо, но разделы 28.6 и 28.7 в приведенном вами документе касаются высоковольтного параллельного программирования (HVPP). Уточните, где там про HVSP говорится? 

То, что atmega328 не поддерживает HVSP я взял из таблички здесь: https://www.microchip.com/webdoc/stk500/stk500.highVoltageProgramming.html

 

DmitryAkaLBVF
Offline
Зарегистрирован: 01.05.2018

-NMi- пишет:

Erase and Reset чо, нипамагает???

Chip Erase - это же процедура параллельного высоковольного программирования HVPP, разве нет?

Но вот с HVPP как раз и есть засада. Мало того, что вывод чипа XTAL1 (7) не выведен наружу, но его еще можно подпаять аккуратно, то вот вывод AVCC (18) разведен на плате на общее питание +5 в и дорожка уходит сразу под чип, так что ее даже временно не перережешь не отпаяв чип. :(

Feofan
Offline
Зарегистрирован: 28.05.2017

Цитата:
Chip Erase - это же процедура параллельного высоковольного программирования HVPP, разве нет?
Нет. Nano видна программатором?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Виноват, кривоо прочитал и воспринял, что Вы как раз говорите, что параллельное программирование не поддерживается. Что-то в последние дни меня не первый раз уже переклинивает. надо коньячку принять и расслабиться. Сорри.

-NMi-
Offline
Зарегистрирован: 20.08.2018

Прими, от переклина помогат стакашка-другая...

DmitryAkaLBVF
Offline
Зарегистрирован: 01.05.2018

Feofan пишет:

Цитата:
Chip Erase - это же процедура параллельного высоковольного программирования HVPP, разве нет?
Нет. Nano видна программатором?

Нет, не видна. Она не вышла корректно из режима отладки DebugWire и на reset адекватно не реагирует. Полагаю, у нее установлен сейчас fuse DWEN, который мешает перепрошивке как через бутлоадер, так и через ISP.

Feofan
Offline
Зарегистрирован: 28.05.2017

Видимо и reset изменён, если верить интернету. Тогда, предполагаю, только по высокой. Без выпайки не знаю, уже интересовался.

Upd.

Возможно, что для HVPP чип можно и не выпаивать, а изъять несколько деталей обвеса. Т.е. освободить нужные ноги (кварц, резистор reset<->Vcc, может еще...). Если не забросите, то огласите пожалуйста результат.

DmitryAkaLBVF
Offline
Зарегистрирован: 01.05.2018

Feofan пишет:

Видимо и reset изменён, если верить интернету. Тогда, предполагаю, только по высокой. Без выпайки не знаю, уже интересовался.

Upd.

Возможно, что для HVPP чип можно и не выпаивать, а изъять несколько деталей обвеса. Т.е. освободить нужные ноги (кварц, резистор reset<->Vcc, может еще...). Если не забросите, то огласите пожалуйста результат.

Мне оказалось проще выпаять чип, запаять его на переходник и сунуть в программатор. Высковольтным программированием фьюзы исправил и запаял обратно. Но не без проблем. Долго не мог понять, почему программатор (TL866II+) не может работать с чипом по ISP, пока не выяснил, что МК при опросе по ISP выдает программатору Device ID в виде 0xFFFFFF, вместо штатного 0x1E950F. Ну и программатор отказывался с ним работать, пока не снял галочку Check ID. При этом, в режиме высоковольтного программирования - все ок. Думал у программатора крыша поехала - нет, другие atmega328p читает корректно. Более того, другой программатор (AVR Dragon) у глючного чипа читает корректный ID.

Фиг знает почему так происходит.