Interfaz Mipi I3C, NXP P3T1755DP/Q900Z sensor de temperatura (Parte 3)

En referencia a lo artículos anteriores que son introductorios del interfaz I3C parte 1 y parte 2, aquí continuamos con la misma configuración. Por favor refieraze a los mismos antes de proceder con este artículo. El Sparkfun Logic Analyzer fue usado en estos dos artículos publicados previamente.

Luego de asignar la dirección de I3C dinámicamente para el NXP P3T1755DP/Q900Z sensor de temperatura y confirmar la asignación apropiada de la dirección tipo I3C y leer el Provisional ID del sensor de temperatura NXP P3T1755DP/Q900Z ahora podemos proceder a activar el sensor de temperatura en el registro de configuración del artefacto,

El registro de configuración del artefacto de I3C, esta localizado en el apuntador (pointer) con valor de 0x01,

Recalcando los comandos mencionados en los preivos artículos, procedemos con los siguientes comandos I3C,

digikey_coffee_cup #> i3c_clk 100
OK(0)
digikey_coffee_cup #> i3c_rstdaa
OK(0)
digikey_coffee_cup #> i3c_entdaa 0x21
OK(0),0x02,0x36,0x15,0x2a,0x00,0x90,0x03,0x63

Se usa el siguiente comando I3C SDR para leer el registro de configuración (1 byte) localizado en el apuntador (pointer) 0x01,

digikey_coffee_cup #> i3c_sdr_write 0x21 0x01
OK(0)
digikey_coffee_cup #> i3c_sdr_read 0x21 1   
OK(0),0x28 

El estado inicial de este sensor de temperatura es que está activo con un tiempo de conversión de 55 mSec. Ahora se procede con el siguiente comando I3C SDR Write-Read para leer 2 bytes del NXP P3T1755DP/Q900Z sensor de temperatura del apuntador (pointer) en 0x00 como sigue,

digikey_coffee_cup #> i3c_sdr_writeread 0x21 0x00, 2                                                                                               
OK(0),0x17,0x80,

El 0x17,0x80 es la temperatura del sensor,

Esta temperatura se convierte a Celsius como sigue,

0x178 = 376 (base 10)

entonces se multiplica este número 376 por el factor 0.0625 °C, ya que esta temperatura es positiva usando como referencia el bit MSB como indicador y resulta ser 23.5 °C equivalente a 74.3 °F.

Para desactivar el sensor de temperatura via I3C se hace lo sigueinte,

digikey_coffee_cup #> i3c_sdr_writeread 0x21 0x01,0x29 1       
OK(0),0x29              

para confirmar esta desactivación, se leen 2 bytes del registro de temperatura, y verificar que estos valores no cambien con el tiempo,

digikey_coffee_cup #> i3c_sdr_writeread 0x21 0x00, 2
OK(0),0x17,0xa0
digikey_coffee_cup #> i3c_sdr_writeread 0x21 0x00, 2
OK(0),0x17,0xa0
.....
digikey_coffee_cup #> i3c_sdr_writeread 0x21 0x00, 2
OK(0),0x17,0xa0

Aqui ya hemos confirmado la desactivación del sensor de temperatura ya que el valor no cambia como se puede ver anteriormente. Para reactivar el NXP P3T1755DP/Q900Z sensor de temperatura via el registro de control, utilize el siguiente comando I3C,

digikey_coffee_cup #> i3c_sdr_writeread 0x21 0x01,0x28 1                                                                                           
OK(0),0x28                                                                                                                     
digikey_coffee_cup #> i3c_sdr_read 0x21 1                                                                                                          
OK(0),0x28                                                                                                                     
digikey_coffee_cup #> i3c_sdr_writeread 0x21 0x00, 2                                                                                               
OK(0),0x17,0x70                                                                                                                
digikey_coffee_cup #> i3c_sdr_writeread 0x21 0x00, 2                                                                                               
OK(0),0x17,0x70                                                                                                                
digikey_coffee_cup #> i3c_sdr_writeread 0x21 0x00, 2                                                                                               
OK(0),0x17,0x70                                                                                                                
digikey_coffee_cup #> i3c_sdr_writeread 0x21 0x00, 2                                                                                               
OK(0),0x17,0x80                                                                                                                
digikey_coffee_cup #> i3c_sdr_writeread 0x21 0x00, 2                                                                                               
OK(0),0x17,0x90                                                                                                                
digikey_coffee_cup #> i3c_sdr_writeread 0x21 0x00, 2                                                                                               
OK(0),0x17,0x80                                                                                                                
digikey_coffee_cup #> i3c_sdr_writeread 0x21 0x00, 2                                                                                               
OK(0),0x17,0x90                                                                                                                
digikey_coffee_cup #> i3c_sdr_writeread 0x21 0x00, 2                                                                                               
OK(0),0x17,0x90                                                                                                                
digikey_coffee_cup #> i3c_sdr_writeread 0x21 0x00, 2                                                                                               
OK(0),0x17,0x90                                                                                                                
digikey_coffee_cup #> i3c_sdr_writeread 0x21 0x00, 2                                                                                               
OK(0),0x17,0xa0

Muestreando el sensor de temperatura como se muestra anteriormente, el NXP P3T1755DP/Q900Z temperature sensor está ahora en modo activo confirmando las transacciones en este demo de I3C.

Este artículo ha mostrado como leer via I3C SDR write y los comandos de lectura desde la Raspberry Pico 2 del NXP P3T1755DP/Q900Z sensor de temperatura que está disponible en DigiKey.

Que tenga un buen día.

Este artículo está disponible en inglés aquí.

This article is available in english here.

1 Like