He publicado esta pregunta en el foro de TI E2E aquí . Lo estoy publicando aquí con la esperanza de lanzar una red más amplia.
Estoy escribiendo una biblioteca Arduino para el LMP91000 ( github ), y aparentemente estoy teniendo algunos problemas para obtener las escrituras para triunfar. Sé que hay un bit de bloqueo que debe borrarse antes de escribir ciertos registros, pero parece que no puedo cambiar el valor. Aquí hay una traza lógica de una escritura seguida de lectura en el registro LOCK (0x01).
Meparecequecumploconla
Además, cuando entro y leo todos los registros, obtengo los siguientes resultados, descodificados para mayor comodidad (seguimiento lógico adjunto a publicación en el foro e2e ):
STATUS: 0x01
ready
LOCK: 0x01
Registers 0x10, 0x11 in read only mode (default)
TIACN: 0x03
RLoad selection = 100 Ohm (default)
TIA feedback resistance selection = External resistance (default)
REFCN: 0x20
Reference voltage source selection = Internal (default)
Internal zero selection = 50% of the source reference (default)
Selection of the Bias polarity = Negative (VWE - VRE) < 0V (default)
BIAS selection = 0% of the source reference (default)
MODECN: 0xFF
Shorting FET feature = Enabled
Mode of Operation selection = Temperature measurement (TIA ON)
Estoy luchando para ver qué estoy haciendo mal, y agradecería alguna ayuda para resolverlo. Gracias!
Actualización # 1
Debería dar más contexto. Tengo tres chips LMP91000 (lógicamente) en un bus I2C. Los chips en sí tienen MENB cableado a GND. He puesto un repetidor I2C con una habilitación (PCA9515ADP) en cada uno para aislarlos unos de otros. Sé que podría haber usado MENB para esto, pero tengo otro chip ADC I2C con cada sensor, así que quería un solo punto para habilitar / deshabilitar todo el dominio de direcciones.
Tengo dos configuraciones de hardware ahora y las escrituras parecen estar funcionando en una de las configuraciones, y la otra configuración (original) está actuando como se describe anteriormente. Entonces, este parece ser un tipo de problema específico de la unidad relacionado con uno de mis tableros en este momento.