Я программировал ATMega644PA с помощью avr-gcc и avrdude в Linux некоторое время без проблем. Ну пока не решил поменять пару предохранителей. Я использовал опцию avrdude -p ATMEGA644P
для программирования чипа, хотя это чип ATMega644P A.
Прочитав даташит (и прочитав предохранители на микросхеме) сделал следующее
avrdude -v -c avrispmkII -p ATMEGA644P -P usb -U lfuse:w:0x63:m
Чип больше не будет общаться. После этого я понял, что проблема, возможно, заключалась в том, что я установил биты для внешней синхронизации, а не для кварцевого генератора, но даже с использованием ATTiny для генерации сигнала 1 МГц на соответствующий контакт на моем Mega644 я все еще ничего не получаю.
Любые идеи относительно того, почему чип не отвечает? Может быть, причиной является использование определения avrdude для версии чипа P, а не для версии PA?
И, наконец, что я могу сделать, чтобы спасти свой чип? Я слышал, что это возможно с программированием высокого напряжения или JTAG. Смогу ли я сделать это с STK500?
Нет, ваша настройка 0x63 в байте lfuse выбрала внутренний генератор 128 кГц в качестве источника тактового сигнала. (байты 3..0 — CKSEL, см. таблицу 7.1 на стр. 28 таблицы данных ATmega644 , где 0011 — «Внутренний RC-генератор 128 кГц»). Это хорошо и маломощно, но это означает, что ваш программатор, вероятно, не работает достаточно медленно, чтобы запрограммировать ваше устройство. Я не знаком ни с avrdude, ни с STK500, но вот откуда ваша проблема.
However, it will be difficult for you to brick your chip, because you've got the STK500, which can do high voltage programming and rescue it from most situations. As I've never used the device, I'll defer to the many other threads where others have posted problems and solutions for AVR fuse settings. There's also one here on Chiphacker (see my comment.)
Next time, this fuse setting calculator is a nice resource. It's fantastic that you read the datasheet, and tried to calculate what you wanted yourself, but the tool makes it much easier.
BTW, what were the fuses set to before you made the change?
Редактировать: похоже, что вариант «A» просто указывает, что он не является членом серии «* P * ico Power», так что это не должно иметь значения.
Кевин Вермеер