TMAG5170: Oscillators in configuration and standby mode

Part Number: TMAG5170

Hi,

Tmag5170 gives possibilty to check internal oscillators via osc_monitor and test_config.

In test config I can choose hfosc or lfosc.

Is high frequency and low frequency oscillators working in Configuration Mode and Stand-by Mode?

Or maybe hfosc and lfosc check can be made only in active mode?

  • Michal,

    The high frequency oscillator is not active while in standby or config modes, so the oscillator check will not be able to run correctly.

    Thanks,

    Scott

  • Hi Scott,

    Thank you for fast reponse.

    In that case I will probably need to put sensors into active mode just for checking these osc.

    1. Could you share information about transition time from standby mode into active mode?

    I can't find it in datasheet.

    2. In configuration and standby mode, oscillator check for low frequency osc will work correctly?

  • Michal,

    I confirmed both your questions with digital design team.

    1. Transition time is very low<= 1us

    2. Both clock oscillators must be present for the OSC check to work.  The function compares one against the other, so it is necessary that they both be running.  

    Thanks,

    Scott

  • Scott,

    2. Do you mean that sensor internally compares high and low frequencies to check if they run correctly?

    I remember that it worked that way in other sensor from TI.

    But according to datasheet for TMAG5170 I must manually read counters for high freq oscillator / low freq oscillator and compare them with

    Timer running in "external MCU".

    Another thing is bothering me, today I had  possibility to read OSC_MONITOR for high/low osc in trigger active mode and in standby mode.

    Readings were very similar for active and standby mode (I am reading OSC_MONITOR after 7 - 9 ms from starting counter for hfosc and lfosc) and for both modes these readings were in ranges from datasheet :

    OSC_MONITOR_hfosc – value from OSC_MONITOR when hfosc was set in TEST register

    OSC_MONITOR_lfosc – value from OSC_MONITOR when lfosc was set in TEST register

    hfosc_MCU_timer_us – Time in us between sending reset/start hfosc osc counter and stop/read osc_monitor, this time was calculated using timer in external MCU

    lfosc_MCU_timer_us – Time in us between sending reset/start lfosc osc counter and stop/read osc_monitor, this time was calculated using timer in external MCU

    All variables are in table because I read data from 3 sensors

     Trigger active mode:

     

     

    standby mode:

    Readings of counter for high freq oscillator shouldn't be garbage if it is not running in standby mode?

    I am asking  about that because doing oscillator integrity check in active mode will significantly increase power use of our application

  • Michal,

    The digital designer misread my request and thought I was referring to another device and sent me the wrong conditions.  My apologies for the mix-up. The comparison function is an option of the other device, and the calculation must be run in the MCU for TMAG5170.  He sent an example sequence that you might use: 

                  tb.Regs.DEVICE_CONFIG.writeWord(16'h2014); //standby

                  #(1ms)

                  tb.Regs.TEST_CONFIG.writeWord(16'h0001); //Start HF Counter

                  #(20395us)

                  tb.Regs.TEST_CONFIG.writeWord(16'h0003); //Stop Counter

                  #(100us)

                  tb.Regs.OSC_MONITOR.readWord_check(7'h10, 16'hFEF5, 4'd0, 1'b0);

                  #(100us)

                  tb.Regs.TEST_CONFIG.writeWord(16'h0000); //Reset Counter

                  #(140us)

                  tb.Regs.TEST_CONFIG.writeWord(16'h0002); //Start LF Counter

                  #(10050us)

                  tb.Regs.TEST_CONFIG.writeWord(16'h0003); //Stop Counter

                  #(100us)

                  tb.Regs.OSC_MONITOR.readWord_check(7'h10, 16'h00A2, 4'd0, 1'b0);

    Also, for TMAG5170 the HF clock is on in both Active Conversion and Standby modes, but is off for all other conditions.

    Whenever there is old data left in the register for the counter, you can reset by writing 0 to the OSC_CNT_CTL register. 

    Again, sorry for the confusion,

    Scott

  • Scott,

    I think we have implemented similar procedure for this safety check.

    Thank you for help.