Та-ак. Основная ошибка исчезла после более тщательного пролуживания ножек МК. Теперь МК виден, читается сигнатура, память, fuse bits и т.п. Так что проблема оказалась в кривых руках.

Однако теперь появился другой глюк. МК прошивается, то только один раз! После первой прошивки МК становится не виден и не читается (даже сигнатура). Загублено два МК.
Во флэш-память прошивалась элементарная программа (компилировалась WinAvr).
Код
#include <avr/io.h>
#include <avr/delay.h>
#define F_CPU 8000000UL // 8 MHz
int main(void)
{
DDRD |= 1<<3; // - PD3 на выход
while (1) {
PORTD |= 1<<3; // "1" в PD3
_delay_ms(500); // 0.5 сек.
PORTD &= ~(1<<3); // "0" в PD3
_delay_ms(500); // 0.5 сек.
}
}
Пин PD3 в документации к atmega48 обозначен как "PCINT19/OC2B/INT1" т.е. на программирование никак влиять не должен. Fuse bits не менялись - отключить RESET я не мог. Lock bits также не менялись.
В чём тут может быть дело?
И ещё пара вопросов:
- что будет, если настройки тактового генератора в fuse bits отличаются от значения F_CPU? Вроде бы у меня всё настроено правильно, но всё-таки? Что будет? Изменятся интервала времени т.е. вместо 0.5 сек задержка станет длиннее/короче? Или МК может вообще сломаться?
- что будет, если прошить из AVRProg МК, которого нет в списке? Вот у меня atmega48, но в AVRProg такого нет. Я выбрал atmega8 - там объем флеш памяти меньше т.е. "переполнения" при прошивке быть не может. Тем не менее, из-за этого может ломаться МК? Т.е. повторно не прошиваться и даже не входить в режим программирования?