Tengo un ESP8266-01 y un chip de memoria Microchip 23LC1024 que se comunica a través del bus SPI y quiero manejarlo con el ESP8266-01. Mi pensamiento es implementar el protocolo SPI en el software, es decir, bit-banging. Mi preocupación es acerca de conducir la señal del reloj en tiempos muy específicos. Básicamente, esta pregunta es una pregunta genérica sobre SPI: si SPI es un protocolo síncrono, lo que significa que el reloj del maestro le dice al esclavo cuándo leer/escribir datos, ¿la frecuencia del reloj debe ser muy específica? Quiero decir, ¿el reloj debe ir ALTO y BAJO en intervalos de tiempo muy rígidos?
La frecuencia del reloj es irrelevante, siempre que sea lo suficientemente baja.
La hoja de datos dice que la frecuencia máxima es de 20 MHz, por lo que limita la velocidad más alta. Eso equivale a un período de reloj de 50 ns.
El otro requisito para el reloj es que debe estar alto durante al menos 25 ns y bajo durante al menos 25 ns, lo que da un total de 50 ns.
El tercer requisito para el reloj es que debe hacer una transición lo suficientemente rápida, debe ir de bajo a alto y de alto a bajo en 20 ns.
No hay ningún requisito de frecuencia de reloj mínima o valor máximo para que el reloj sea alto o bajo. Puede transmitir bits con la irregularidad que desee, e incluso tomar períodos de tiempo infinitamente largos entre bits.
Juraj