Hasta donde sé, la transmisión SPI para un esclavo SPI funciona de la siguiente manera:
- El maestro selecciona un esclavo usando el pin SS
- El maestro y el esclavo se envían datos entre sí simultáneamente
- El maestro inicia el reloj y la transmisión de datos al mismo tiempo (no hay reloj antes de la operación de escritura)
- El maestro detiene la transmisión cuando lo desee (al detener la operación de escritura y la generación del reloj), incluso si el esclavo tiene más datos para enviar.
¿Existe alguna configuración de esclavo SPI que permita al esclavo transmitir datos sin permiso del maestro?
Solo estoy pensando en voz alta. Suponga que solo hay un esclavo y que el maestro proporciona un reloj continuo, etc.
Incluso si la afirmación asumida es verdadera, ¿el maestro y el esclavo no pierden la sincronización de bytes (es decir, recibe el flujo de bits) ya que no hay bits de inicio-parada para SPI?
Estoy haciendo esa pregunta porque he leído la siguiente sección de este documento .
2.2 Ejemplo de SPI
El ejemplo de SPI adjunto ilustra el uso de USART en modo síncrono. USART1 está configurado como esclavo, mientras que USART2 es maestro. Se realizan las siguientes transacciones:
- Transmisión de datos de maestro a esclavo.
- Transmisión de datos de esclavo a maestro.
- Transmisión de datos de maestro a esclavo y de esclavo a maestro simultáneamente.
El documento da un ejemplo de SPI pero se da cuenta del ejemplo usando dispositivos USART. Y entiendo que un esclavo USART puede iniciar una transmisión sin permiso del maestro.
No pude encontrar el código fuente al que hace referencia el documento.