Друзья, я недавно купил Atmega328p(к сожалению мой проект не умещается в Atmega8A) и решил поменять фьюзы, чтобы использовать внешний кристалл. Но что-то видимо напортачил. Соединение программатор->мк правильное(ставил обратно Atmega8A и все работало как прежде). СОбственно вопрос: помогите разобраться, в чем проблема? Какой кристалл отменя хочет 328п-ой.
Вот фьюзы, которые я ставил:
Кварц на 16 МГц, фьюзы выставлены на частоту 0,4 - 0,9 Мгц. +внимательно читаем даташит по минимальному уровню питания МК в зависимости от частоты тактирования.
Я поковырял даташит и убрал конденсаторы(таблица в начале 30-ой страницы Complete версии). Питаю МК от 5V. По идее должно хватить, но не пашет... я что-то не так понял или пропустил?
Если у тебя фьюзы прошиты на 0,4-0,9 МГц то меняй кварц в соответствии с фьюзами иначе не заведётся, конденсаторы можешь обратно поставить, когда фьюзы перешьёшь на верное значение, кварц поменяешь обратно.
C:\avrdudeprog33>avrdude.exe -p m328p -c usbasp -P usb -U lfuse:w:0x62:m -U hfuse:w:0xD9:m -U efuse:w:0xFF:m -U lock:w:0xFF:m
avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude.exe: Device signature = 0x1e950f
avrdude.exe: reading input file "0x62"
avrdude.exe: writing lfuse (1 bytes):
Writing | ################################################## | 100% 0.02s
avrdude.exe: 1 bytes of lfuse written
avrdude.exe: verifying lfuse memory against 0x62:
avrdude.exe: load data lfuse data from input file 0x62:
avrdude.exe: input file 0x62 contains 1 bytes
avrdude.exe: reading on-chip lfuse data:
Reading | ################################################## | 100% -0.00s
avrdude.exe: verifying ...
avrdude.exe: 1 bytes of lfuse verified
avrdude.exe: reading input file "0xD9"
avrdude.exe: writing hfuse (1 bytes):
Writing | ################################################## | 100% 0.02s
avrdude.exe: 1 bytes of hfuse written
avrdude.exe: verifying hfuse memory against 0xD9:
avrdude.exe: load data hfuse data from input file 0xD9:
avrdude.exe: input file 0xD9 contains 1 bytes
avrdude.exe: reading on-chip hfuse data:
Reading | ################################################## | 100% -0.00s
avrdude.exe: verifying ...
avrdude.exe: 1 bytes of hfuse verified
avrdude.exe: reading input file "0xFF"
avrdude.exe: writing efuse (1 bytes):
Writing | | 0% 0.00s ***failed;
Writing | ################################################## | 100% 0.08s
avrdude.exe: 1 bytes of efuse written
avrdude.exe: verifying efuse memory against 0xFF:
avrdude.exe: load data efuse data from input file 0xFF:
avrdude.exe: input file 0xFF contains 1 bytes
avrdude.exe: reading on-chip efuse data:
Reading | ################################################## | 100% 0.02s
avrdude.exe: verifying ...
avrdude.exe: verification error, first mismatch at byte 0x0000
0x07 != 0xff
avrdude.exe: verification error; content mismatch
avrdude.exe: safemode: efuse changed! Was ff, and is now 7
Would you like this fuse to be changed back? [y/n] y
и собственно все зависло, сигнатура теперь 000000... в общем убил свой последний живой 328, но собственно вопрос - почему? пытался прошить дефолтные фьюзы, но она в efuse почему-то записала 07 вместо ff, или я чет не понимаю?
если кварц отрубить то сигнатура меняется каждый раз