Цитата(Dimonira @ Oct 25 2008, 20:31)

И, кстати, ещё такой вопрос: пока не наступила синхронизация (не вошёл в режим программирования), контроллер будет выдавать хотябы что-то с MISO или нет?
Что значит пока не наступила синхронизация?
алгоритм программирования следующий:
1. Установить резет в 1 и 100ms подождать.
2. Установить резет в 0 и 20ms подождать.
3. послать последовательность 0xAC 0x53 0x00 0x00 (вход в режим программирования).
4. послать любую комнаду на которую чип должен откликнуться, например чтение сигнатуры, если чип откликнулся правильно - то вот она синхронизация. Для синхронизации можно использоваться младший байт сигнатуры который по адресу 0, он должен быть всегда 0x1E.
0x000: 0x1E (indicates manufactured by Atmel).
пункт 4 можно оформить например так:
Код
long readSignature( char len )
{
long signature = 0;
len &= 0x3;
do
spiTransfer( 0x30 );
spiTransfer( 0x00 );
spiTransfer( len );
signature <<= 8;
signature |= spiTransfer( 0x00); // <-- read signature (здесь гарантировано на MISO должен меняться сигнал).
while(len--);
return signature;
}
До тех пор пока вы не пошлете чипу команду на которую он должен слать ответ, ничего на MISO меняться не будет.