Вот решил связать 2 МК по SPI. USART, конечно, в разы удобнее и понятнее (ИМХО), но на ведущем МК он занят обменом с компом. А лепить туда монстра типа AtMega128 с 2-мя USART-ами ой как не хочется - перепаивать плату - бр-р

Теперь по делу.
Ведущий МК - ATMega16, ведомый пока AtTiny2313. Slave должен передать master-у где-то 5 байтов по команде с мастера.
1.
Почитал я тут AVR151 (SPI для 2-х и более МК с полноценным SPI интерфейсом, типа AtMega). Есть даже по-русски - http://www.microcontrollerov.net/microcont...-interfejsa-SPI
Вроде всё понятно, но не понял, где слейв читает принятые данные или посылает их. Такое ощущение, что он просто сравнивает то, что принял, с тем, что у него в памяти... Ну Бог с ним, в принципе понятно.
По ходу вопрос - если я хочу в слейве передать n байт, я должен положить в SPDR 1-й байт, потом в прерывании класть туда остальные по очереди? Я правильно понял?
2.
С ATTiny2313 другая песнь... Тут вообще ни хрена мне не понятно

Нормального SPI у него нету, есть какой-то USI. Надыбал я описалово AVR319, почитал.
В ихнем примере spiX_put передаёт байт. А следующий пихать тоже в прерывании?
Режим опроса пока не интересует.
Кто-то делал обмен между Mega и этим USI? Оно нормально работает?
Или проще плюнуть на этот 2313 вместе с USI и поставить туда 8-ю мегу с нормальным SPI?
Спасибо.