Цитата(Metallist64 @ Oct 15 2008, 11:57)

Здравствуйте!Уважаемые знатоки.
Помогите определиться со следующими вопросами по интерфейсу SPI.
На графиках передачи данных можно заметить, что Master и Slave могут осуществлять передачу данных одновременно.
т.е и Master и Slave передают данные друг другу.
В связи с этим возникли следующие вопросы :
- Как сделать одновременно прием и передачу? Ведь регистр данных один и адрес у него один.
- Что будет если прочитать регистр данных Slave если передача от Master еще не закончена?Ведь флаг SPIF устанавливается для передатчика, а не приемника.
- Что будет если во время приема байта от мастера я буду записывать в регистр данных байт который я хочу передать мастеру.
- Как убедиться,в том, что мастер закончил прием байта от slave?
- Не получится ли так, что придется самому придумывать протокол обмена м\у устройствами. Я имею в виду пересылать флаги окончания передачи, готовности и т.д.?
- Какое максимальное расстояние м/у приемником и передатчиком?
Большое спасибо.
PS MK - ATMega8.
Регистр действительно один, но данные заходят с другой стороны, посему следует их забирать после окончания передачи кроме того для чтения присутствует буфер. про расстояние однозначно сказать нельзя это зависит от скорости обмена от разводки платы и т д. У меня например работает до 50 см, при тактовой 1 МГц.