Durante un par de días he estado aprendiendo sobre SPI y decidí probarlo con 2 dispositivos pequeños.
- DISPOSITIVO 1: Atmega328p (MASTER)
- DISPOSITIVO 2: MFRC522 (SLAVE)
Por lo que yo entiendo:
- maestro establece SS pin bajo
- el maestro mueve los datos a SPDR
- tan pronto como los datos ingresan al SPDR, el reloj comienza a transmitirse y los datos se desplazan
- al mismo tiempo, SLAVE desplaza los datos también
- así que al final de 8 pulsos de reloj, ESCLAVO recibió 1 byte y el maestro recibió 1 byte también
- El pin SS vuelve a subir
Escenario # 1
Estoy enviando el byte de dirección a MFRC522 desde Atmega328p, y estoy esperando una respuesta. Según la documentación, la primera respuesta de SLAVE es "X", la tomo como 0x00.
En el siguiente byte enviado a ESCLAVO, recibo la respuesta del primer byte que envié, y así sucesivamente hasta el final.
Dado que tiene algún tipo de desplazamiento, ¿necesitaría enviar 0x00 al esclavo para leer el último byte de información?