Насколько я знаю, передача SPI для ведомого SPI работает следующим образом:
- Мастер выбирает раба, используя пин SS
- Ведущий и ведомый отправляют данные друг другу одновременно
- Мастер запускает часы и передачу данных одновременно (до операции записи нет часов)
- Ведущий останавливает передачу в любое время (останавливая операцию записи и генерацию тактовых импульсов), даже если ведомый имеет больше данных для отправки.
Существует ли какая-либо конфигурация ведомого SPI, которая позволяет ведомому передавать данные без разрешения ведущего?
Я просто думаю вслух. Предположим, что есть только один ведомый, а ведущий обеспечивает непрерывные часы и т. Д.
Даже если предполагаемое утверждение истинно, не теряет ли синхронизация байта ведущий и ведомый (то есть получает поток битов), так как для SPI нет начальных и конечных битов?
Я задаю такой вопрос, потому что я прочитал следующий раздел из этого документа .
2.2 Пример SPI
Прикрепленный пример SPI иллюстрирует использование USART в синхронном режиме. USART1 настроен как подчиненный, а USART2 является главным. Происходят следующие транзакции:
- Передача данных от ведущего к подчиненному.
- Передача данных от ведомого к хозяину.
- Передача данных от ведущего к подчиненному и от подчиненного к ведущему одновременно.
Документ дает пример SPI, но реализует пример с использованием устройств USART. И я понимаю, что ведомый USART может начать передачу без разрешения мастера.
Я не смог найти исходный код, на который ссылается документ.