Per quanto ne so, la trasmissione SPI per uno slave SPI funziona come di seguito:
- Il Master seleziona uno slave usando il pin SS
- Master e slave si scambiano dati contemporaneamente
- Il master avvia contemporaneamente l'orologio e la trasmissione dei dati (non c'è nessun orologio prima dell'operazione di scrittura)
- Il master interrompe la trasmissione ogni volta che lo desidera (interrompendo l'operazione di scrittura e la generazione dell'orologio), anche se lo slave ha più dati da inviare.
Esiste una configurazione SPI slave che consente allo slave di trasmettere dati senza il permesso del master?
Sto solo pensando ad alta voce. Supponiamo che vi sia un solo slave e un master continuo sia fornito dal master ecc.
Anche se l'istruzione presunta è vera, il master e lo slave non perdono la sincronizzazione dei byte (ovvero ricevono il flusso di bit) poiché non ci sono bit start-stop per SPI?
Sto facendo una domanda del genere perché ho letto la seguente sezione di questo documento .
2.2 Esempio SPI
L'esempio SPI allegato illustra l'uso di USART in modalità sincrona. USART1 è configurato come slave, mentre USART2 è master. Si svolgono le seguenti transazioni:
- Trasmissione dati da master a slave.
- Trasmissione dati da slave a master.
- Trasmissione dati da master a slave e da slave a master contemporaneamente.
Il documento fornisce un esempio SPI ma realizza l'esempio utilizzando i dispositivi USART. E capisco che uno slave USART può iniziare una trasmissione senza il permesso del master.
Non sono riuscito a trovare il codice sorgente a cui fa riferimento il documento.