This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMAG5173-Q1: Unable to read registers following an I2C Trigger Conversion

Part Number: TMAG5173-Q1

Summary

Our use of the sensor involves reading and triggering via I2C conversions for X-axis and Temperature in 16-bit mode with CRC enabled. In our testing we simulated a power loss by powering off/on the sensor. We hoped to rely on reading the CONV_STATUS register to make use of the POR bit to indicate a power on reset's occurrence. However once the sensor has been triggered for a conversion we can no longer read register values.
The device responds with 00 for any I2C register read.

Detail of Test

Initialization 
Configure Sensor A with unique address write 0x21 to I2C_ADDR register. Sensor B remains at the default address.
Configure 2 sensors for triaxial sampling with CRC enabled
General Call writes to configure all sensors on the I2C bus 
00 00 81 # DEVICE_CONFIG_1 : CRC_EN I2C_RD 01b for 16-bit reads
00 02 10 # SENSOR_CONFIG_1 : enable x-channel conv
00 07 01 # T_CONFIG : enable temperature conv

Power up A sensor
configure non-default address

dump A registers
init sensor
dump A registers
set to 16-bit mode

power up B sensor
dump B registers
init sensor
dump B registers
set to 16-bit mode

trigger conv
read A success
read B success

toggle sensor A and B power
trigger conv
read A
read B
Reading all 0s
power off B sensor
Reading all 0s

toggle sensor A and B power
dump registers
reading proper values
trigger conv
dump registers
reading all 0s

  • Hi Brett,

    Thank you for posting to the Sensors forum!

    When powering off/on the device, one thing to keep in mind is that you'll need to reconfigure the device upon powering it back up as the device will not save its prior configuration after powering off.

    Best,

    ~Alicia

  • Understood, we were hoping to use our regular reading of the CONV_STATUS register that has a POR power-on-reset bit to determine that the device needs to be re-initialized. However, if we issue a Trigger Conv we can no longer read registers (always get 00).

  • Hi Brett,

    Just to make sure that I understand, even after configuring the device to enable the relevant magnetic channels you are still getting 0x00 after triggering a conversion?

    Best,

    ~Alicia

  • In our operating case we are repeatedly triggering via I2C and reading conversions, after device initialization, at a high frequency 700-2400Hz. If the sensor experiences a Power-on-reset event, we had hoped to be able to see the POR bit set in the CONV_STATUS register to indicate the need to re-initialize. However; if the POR event happens just prior to a trigger the device will only respond with 00s for register reads.

  • Hi Brett,

    However; if the POR event happens just prior to a trigger the device will only respond with 00s for register reads.

    This behavior would be expected to me as if the POR event happens just after the check for it then it would miss its initial window to reconfigure itself which would mean the current configuration for the device would be all of its default values. This would result in no magnetic channels being enabled which is why you are seeing all the zeros.

    One option you could take would be implementing additional checks for a POR event (for example checking for a POR after triggering a conversion to make sure you are getting good data) so that you can reconfigure the device as needed. 

    Best,

    ~Alicia