Estoy trabajando en el chip SC18IS600 (convertidor SPI a I2C) y he tenido problemas para comunicarme con él. En este momento estoy intentando configurar el registro de direcciones I2C y establecerlo en 0x3F o 0x00. Sin embargo, al volver a leer la dirección, obtengo (afaik) un galimatías: ni siquiera está leyendo el valor de dirección predeterminado. Mientras probaba, noté que la línea CS baja mucho antes que la señal del reloj y quiero saber si la línea CS debe estar sincronizada con el reloj cuando se usa SPI , o si un retraso como el de la imagen a continuación es aceptable. Si alguien tiene otras sugerencias sobre por qué esto podría no funcionar, no dude en hacerlas.
Editar para explicación : el 'galimatías' que estaba recibiendo fue el resultado de no permitir una brecha de 8us entre cada palabra de datos. El SC18IS600 requiere esta brecha, que se explica con más detalle aquí para cualquier otra persona: https://community.nxp.com/thread/461576
Imagen: amarillo = MISO/rx, azul = MOSI/tx, rosa = clk. Imagen tomada al intentar leer la dirección. Perdón por la calidad de la imagen, es un osciloscopio muy antiguo que ya no puede guardar imágenes.
hoja de datos en https://www.nxp.com/docs/en/data-sheet/SC18IS600.pdf
No, de hecho, generalmente hay un tiempo mínimo en el que la señal CS debe subir/bajar antes de que pueda comenzar a registrar datos.
De su hoja de datos (pág. 19): :
usuario105652
eles
usuario105652