Briecked AVR. Установить удлиненный предохранитель? - PullRequest
0 голосов
/ 27 февраля 2020

Я загрузил программу в ATmega88p, затем выполнил avrdude с -U lfuse:w:0x63:m -U hfuse:w:0xD9:m -U efuse:w:0xFF:m, чтобы установить тактовую частоту на 128 кГц в соответствии с http://www.engbedded.com/fusecalc/ Программа работала нормально, но затем я хотел выполнить avrdude с -U lfuse:w:0x7F:m -U hfuse:w:0xD9:m -U efuse:w:0xFF:m установить обратно тактовую частоту 8 МГц, но я получил ошибку rc = -1 . Когда я использовал avrdude с -F для проверки подписи, я получил 0xdc57df, что выглядит случайным образом. Раньше я делал то же самое (с разными значениями предохранителей h и l) для ATmega8, и впоследствии он работал нормально. Я хотел знать, должен ли я установить расширенный предохранитель в будущем или достаточно ли высокого и низкого в большинстве случаев?

Ответы [ 2 ]

1 голос
/ 04 марта 2020

Тактовая частота ISP должна составлять не более 1/4 частоты процессора. Поэтому, если процессор работает на частоте 128 кГц, скорость программирования должна быть меньше 32 кГц. Т.е. один битовый период должен составлять не менее 32 микросекунд или более.

Попробуйте передать параметр -B 64 в командной строке avrdude. (полный список опций здесь )

0 голосов
/ 28 февраля 2020

Как отметил ReAl, проблема в чем-то другом. Предохранители установлены правильно, но их нельзя заменить, потому что программист не может работать так медленно. После изменения параметров avrdude все заработало.

...