|
Как обычно - все просто.
Действительно в Спае реально один регистр (в отличии от уартов) и никакой буферизации. Во время передачи запись в регистр СПДР блокируется (и устанавливается флаг коллижион в регистре управления).
Таким образом, если слэйв не успевает засунуть данные в СПДР, а мастер начинает сдвигать следующий байт, то в ответ он получит байт переданный в предыдущем цикле обмена. И так далее.
В моем случае мастер начинал повторную передачу байта через ~12 мкс, а слэйв записывал ответ при приеме через ~18 мкс, т.е. постоянно не успевал. Поэтому мастер всегда получал, то что передал в предыдущем цикле.
А вход СС\ слэйва был не причем - он может быть постоянно = 0.
(Правда тогда CPHA лучше поставить в 1 - см. обсуждение ниже)
Вот и все.
Всем пока. Пора работать. :-)
E-mail: info@telesys.ru