Estoy trabajando en un proyecto que implica conectar directamente desde la toma TRS de un iPhone a un puerto SPI en un microcontrolador.
Así que el iPhone es el maestro y el microcontrolador es el esclavo
Entonces, digamos que el canal de altavoz izquierdo del iPhone es responsable de generar señales de reloj
Ahora, ¿cómo transmito, por ejemplo, un solo byte ASCII 'A' del maestro al esclavo?
Puedo ver que cada vez que aumenta el límite del reloj (digamos que pasa a cero), tanto el maestro como el esclavo leen un nuevo bit, independientemente del estado del respectivo MISO / MOSI
¿Pero cómo byte-align?
El binario para 'A' es 0100 0001
¿Cómo distinguimos ese primer 0 del silencio que precedió?
Me parece que un protocolo sensato sería usar 0xFF o algo como un Sentinel de inicio, y que el siguiente byte dicte el número de bytes (entre 1 y 256) en el paquete que viene.
Y luego estos bytes se envían uno tras otro, pueden ir seguidos de un byte de paridad.
¿Tal vez cada byte tendría un bit de paridad ...?
Tan pronto como llegue este 'paquete', el decodificador podría comenzar a buscar otro Sentinel de inicio.
Así es como me gustaría diseñar SPI. así que estoy tratando de encontrar alguna documentación que me diga cómo se hace realmente.
Pero estoy realmente frustrado al rebotar en Google / Wikipedia / IRC
¿Hay alguien por ahí que entienda este protocolo, y no me importaría darme un ejemplo de uso realmente simple? Enviando el único carácter "A" a través de SPI