sbb (07.06.2010 15:43, просмотров: 179) ответил vmp на Теоретически можно добавить одну линию от ЦП к ПП - запрос обслуживания. ЦП включил порт в slave, подготовил данные, настроил DMA и дернул ножкой. ПП поймал прерывание, забрал команду и данные, положил ответ. У ЦП встало прерывание либо по окончании
К этому же пришел при реализации связи через SPI хост-процессора с периферийным МК. Хост - slave, инициирующий обмен по дополнительной линии. Помимо упомянутых выше проблем с готовностью ПП из-за латентности прерываний, также на выбор повлияли сложности с транзакциями переменной длины для случая, когда хост является мастером.
Варианты с ведомым ПП получались замороченными. Годиться для случая небыстрого обмена, когда сопроцессор успевает разбирать принимаемые байты и готовить ответ в темпе обмена SPI. Или когда можно делать много мелких транзакций фиксированной длины (типа команд готовности и т.п.), что может приводить к большим накладным расходам, если на хосте крутиться "тяжелая" ОС.