¿Cómo interactuar Si8902 con ATmega128rfa1?

0

El ATtmega128rfa1 funciona como maestro y Si8902 funciona como esclavo, está bien.

Pero cuando se da una solicitud, Si8902 requiere 8us para responder con los datos de ADC. ¿Cómo puede el maestro esperar 8 nosotros? Cómo sincronizar ambos lados. Dado que el reloj es generado por el maestro, solo cuando hay una salida de datos. Si hay que enviar datos ficticios. Cómo esperar hasta 8us. Utilizar una interrupción de temporizador aquí no tiene mucho sentido?

Actualizado para aclarar (copiado de los comentarios):

mi pregunta es ¿en qué instancia se genera el reloj? -master generar reloj pero cuando? - Cuando escribes algo en MOSI. Bien. ¿Qué sucede durante la lectura? ¿Cómo sabrá el maestro que debe generar un reloj después de las 8?

    
pregunta Jagadesh

1 respuesta

1
  

mi pregunta es ¿en qué instancia se genera el reloj? -master generar reloj pero cuando? - cuando escribes algo en MOSI.

Sí, el SPI Master debe generar el reloj (esto se hace automáticamente si usa el módulo SPI de su ATmega128) cuando los datos se escriben en el SPI Slave. Vea más abajo sobre la lectura del SPI Slave

  

Está bien lo que sucede durante la lectura,

El enfoque típico con los módulos SPI en muchas MCU es que SPI Master se utilice para enviar datos ficticios (y, por lo tanto, generar la señal de reloj SPI) para recibir datos del SPI Slave.

Si estaba "golpeando" el bus SPI en el SPI Master, entonces simplemente podría alternar la señal del reloj SPI la cantidad de veces necesaria, para que el SPI Slave le envíe datos en la línea MISO (es decir, para leer desde el esclavo SPI).

  

¿Cómo sabrá el maestro que debe generar un reloj después de las 8 us

El SPI Master no "sabe" automáticamente que necesita generar el reloj antes de 8uS después de haber enviado el Byte de comando Si8902. Este nivel de detalle varía entre los diferentes esclavos SPI y no puede ser "conocido" automáticamente por un maestro SPI.

Sin embargo, usted conoce este requisito de tiempo (después de leer Hoja de datos de Si8902 ), por lo tanto, usted debe incluir ese retraso en el programa que usted escribe en el dispositivo SPI Master (como @Asmyldof mencionó en un comentario anterior) .

    
respondido por el SamGibson

Lea otras preguntas en las etiquetas