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.

TMAG5170-Q1: CONV_STATUS update details

Part Number: TMAG5170-Q1
Other Parts Discussed in Thread: TMAG5170UEVM, TMAG5170

Hello, 

We are evaluating the TMAG5170-Q1 hall sensor and need to understand the behavior of the CONV_STATUS register update. 

1. When we read the CONV_STATUS register without providing a trigger for conversion, the X, Y, Z and T status show value 1. 

Is this an expected behavior, as 1 indicates the current value, but the conversion is never triggered ?

 

2. On triggering the conversion, and reading the CONV_STATUS immediately (SPI is in blocking mode), the status return 0, (Indicating the conversion is not yet complete and data is not available). 

However reading the same after 10ms gives the result as 1. 

3. Also Temperature result registers provides the temperature result without triggering the conversion, is this not dependent on the command for conversion ?

Could you please provide some insights on these observations 

Thank you,

Aditya

  • Hi Aditya,

    Can you tell me the following:

    • Just to make sure, were you using the TMAG5170uEVM and GUI for this test or custom hardware and software?
    • Can you tell me what value is the SYSTEM_CONFIG register set to, specifically the TRIGGER_MODE bits within this register. Every time you send a SPI command to the TMAG5170, do you see the SET_COUNT bits located in the CONV_STATUS register increment by 1?  I wonder if you are unintentionally triggering conversions. 

    Regards,

    Mekre

  • Hi Mekre, 

    Please find the comments below

    1.  We are using custom hardware/ software for this test. 

    2. SYSTEM_CONFIG is set to 0x2027 

          Trigger on SPI command(00); Run all diagnostic in sequence; Diagnostic enabled; X Y Z magnetic field limit check enabled.

    3. We are triggering conversion by setting CMD0 bit to 1, once, and reading other registers like CONV_STATUS, AFE_STATUS etc later. It is observed that SET_COUNT increments for the SPI transaction when CMD0 bit is set to 1, for rest of the transaction the SET_COUNT is unchanged. 

    Following is the flow

    -> Configure Registers 

                      TESTConfig to 0x04;

                      DeviceConfig to 0x1138

                      SensorConfig to 0x41C0

                      SystemConfig to 0x2027

    -> Trigger conversion, then read the status and result registers. (CRC is disabled)         

    Thank you,

    Aditya

  • Hello Aditya,

    Thank you for providing that information.

    I will need to confirm the following when our design and systems engineers return from the holidays, likely after new years.  However, below is my understanding based on the details available to me.

    1.  CONV_STATUS bits X, Y, Z, and T will show 1 until a conversion is triggered and will only be 0 during a conversion.  After the conversion completes, the register will be 1 again, until you issue another trigger.

    2.Immediate read after trigger, but before conversion complete should be 0.  10ms after issuing a trigger, conversion should be done and RDY, X, Y, Z, and T should all be 1.  While the value in the register may not be the current value or alternatively stated an accurate reflection of the field at that very instant, it is the latest measurement value.  To get the most accurate measurement for that moment, I would read shortly after initialization time + tmeasure.  In standby mode, initialization time is 35us.  Worst case for tmeasure is 825us.  Looks like you are using 2x sample setting, so it should be even faster than that. I need to get more info from design for tmeasure for all the other settings between 1x and 32x.

    3. This is related to what I say above for 1.  Before any conversion, its likely a garbage default value.  Shortly after a conversion is completed, the value should be valid.