Восстановление всех fuse-битов на AtMega328P-PU

avr avrdude error fuses

Я работал с битами Low Fuse в AVRDUDEPROG 3.3. Предохранители были неинвертированные. И по ошибке я включил SUT1 и SUT0, когда был включен SUT0. И когда я программировал avr, он показывает мне ошибку, что avrdude.exe: инициализация не удалась, rc=-1. Я читал, что могу восстановить его с помощью Avr Fuse Doctor, но не могу купить или сделать с помощью печатной платы. Могу ли я восстановить avr с помощью:

#include <avr/io.h>

int main(void) {
    DDRB = 0xFF;
    while(1) {
        PORTB ^= 0xFF;
    }
}

загрузить его на другой avr и подключить к сломанному avr?

Могу ли я сделать доктора на макете или могу ли я сделать это с помощью usbasp/isp?

Могу ли я загрузить в него новый загрузчик?

, 👍0

Обсуждение

Это не ответ на ваш вопрос, но я считаю, что этот онлайн-инструмент очень полезен при настройке предохранителей на avr-uC: http://www.engbedded.com/fusecalc/, @Sim Son


1 ответ


1

Следующее взято из: https://www.allaboutcircuits.com/projects/atmega328p-fuse -биты-и-внешний-кристаллический-осциллятор/

"Два бита, которых следует избегать, если вы не абсолютно уверены, что знаете, что делаете, - это бит 7, бит RSTDISBL (отключение внешнего сброса) и бит 5, бит SPIEN (включение последовательного периферийного интерфейса). Отключение любого из них - это часто являются причиной «кирпича» микросхем Atmel; «оставьте их в покое» — хороший совет».

Согласно статье SUT0 и SUT1 — это биты, связанные со временем запуска часов. Кажется, что для их изменения не нужно использовать что-то особенное.

Информация на сайте будет очень полезна. Я знаю, что да.

Упомянутый вами программатор высокого напряжения (также и другие названия) не понадобится, если вы заменили только предохранители SUT0 и SUT1.

ОДНАКО, если вы меняли предохранители SPIEN или RSTDISBL, вам следует либо приобрести один из специальных программаторов, либо просто купить другой микропроцессор 328P.

Если вы поищите в Интернете «программатор высокого напряжения AVR», вы найдете множество идей о том, как его создать.

Эта ссылка: https://electronics.stackexchange.com/questions/33/ arduino-as-avr-программист/71 предоставляет полезную информацию.

,

У меня есть 2 atmega328 и один uno. ХОРОШО. Но я не касался отключения отдыха или включения Spi (я не мог его трогать, потому что он был неприкосновенен). Я установил CKSEL на 0000 без инвертирования. И установил SUT1,0=11 неинвертированный, и я загрузил его в avr. С CKSEL=0000 это сработало, потому что у меня есть внешний кристалл с частотой 16 МГц. Но когда я загрузил sut1,0=11, он показывает мне ошибку, что avrdude не может его подключить., @TheFnafException

И если знаешь, что такое программатор высокого напряжения?, @TheFnafException

Если это программатор 5В?, @TheFnafException

Нет, он включает 12 В для сброса предохранителей. У Ника Гаммона есть хорошая статья об этом здесь https://gammon.com.au/forum/?id=12898 со схемой, показывающей настройку, необходимую для приведения вывода сброса к 12 В на необходимое время под программным управлением., @CrossRoads

Спасибо, но могу ли я получить адаптер на 12 В и подключить его к Atmega с помощью резистора? И на какой контакт я его подключаю?, @TheFnafException

Эй, если у меня есть usbasp, я не смогу это сделать?, @TheFnafException

Или мне придется взять Arduino Uno и сделать это., @TheFnafException

И что мне для этого нужно сделать со своим Уно, @TheFnafException

Как получить 12В от Uno?, @TheFnafException

Используйте ссылку, опубликованную CrossRoads, вы сможете «спроектировать» способ ее использования с тем, что у вас есть..., @Wendall