Цитата(glebka @ Sep 21 2006, 21:02)

Это понятно.Для этой цели собираюсь применить NC7SZ125M5.
Проблема немного в другом : отправить я смогу 16 бит, дергая cs когда надо, а как получить обратно 16 бит?
или читать два раза подряд SPDR?
Прошу прощение за непонимание.
Регистры SPDR MASTER и SPDR SLAVE образуют общий кольцевой регистр сдвига, поэтому если SLAVE ничего не записывал в свой SPDR, MASTERу вернётся предыдущий отправленный им байт.
Если ваш алгоритм SLAVE-устройства предусматривает какую-либо обработку принятых данных, то лучше, наверное, начать считывать данные MASTER-ом после отсылки данных SLAVE-у путём передачи каких-то дополнительных байтов/команд.
Я делаю это таким образом:
1. Отправляю команду/данные (несколько байтов) SLAVE-устройству.
2. Отправляю в цикле байт запроса 0xFD (можно любой другой), и читаю принятые от SLAVE данные.
Если ответный байт равен 0xFD, то SLAVE ещё не готов.
3. Как только SLAVE подготовил данные для ответа, он записывает в свой SPDR байт готовности к ответу 0x80 (можно и другой, не совпадающий с 0xFD) и по приёму следующего байта от мастера, подтаскивает в SPDR следующие байты ответных данных.
4. MASTER, продолжая посылать запросы, вычитывает нужное число байтов из SLAVE.
Может, написал сложно и запутанно, но этот способ оказался наиболее удобным и устойчивым.