van_de_luxe писал(а):а как он узнает когда его нужно выдавать?
Догадываюсь что где-то в даташите это описано, но не вижу.
В ДШ это описано быть не может, потому что это - вопрос не SPI как такового, а протокола конкретных устройств, связанных по SPI. Для запроса приема нужно использовать отдельную линию, не входящую в интерфейс SPI. Можно попробовать на какую-нибудь из линий навесить двойную функцию, например, MISO в исходном состоянии держит '1' , когда slave захочет передавать, он утягивает линию в '0', после того, как мастер изготовится к передаче и утянет CS в '0', MISO подключается к своей обычной работе -- выход slave SPI. Можно сделать чисто аппаратно, можно - программно.
Инициирует передаче слейва его окружение : что-то случилось в наблюдаемой среде, и он должен сообщить об этом мастеру.
Если время реакции не критично, можно вести обмен по опросу : мастер периодически спрашивает у слейва : что там? Если тот молчит ( а лучше - отвечает заготовленной комбинацией ПОКА НИЧЕГО - в этом случае контролируем и наличие связи ), то состояние не требует обслуживания, если нет - получаем пакет с информацией о событии.