LMP91000 Problema de escritura I2C

1

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 hoja de datos para mí, pero La escritura no está tomando control. He comprobado y el reloj es 100kHz también. El LMP91000, creo, está reconociendo cuándo se espera que lo haga. Creo que mi controlador está haciendo lo correcto con start, stop, ack / nack por su parte.

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.

    
pregunta vicatcu

2 respuestas

0

Después de tirar mucho del pelo, lo he descubierto. Es lo peor cuando las cosas están en algún lugar entre trabajar y no funcionar como se esperaba.

Qué molesto estúpido de mi parte. Tuve resistencias de 330 ohmios que levantaban el bus I2C en lugar de los 3.3k ohms previstos. Cambié esas resistencias y todo estuvo bien con el mundo. Recuerde la lección, no siempre confíe en lo que ve en un analizador lógico, las interfaces digitales aún tienen propiedades analógicas.

    
respondido por el vicatcu
1

También tienes que controlar la línea MENB. Debe estar abajo para escribir en el chip.

    
respondido por el MAC

Lea otras preguntas en las etiquetas