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.

TM4C129ENCPDT: how to bring the HIB out of hang-up?

Part Number: TM4C129ENCPDT

Hello.

We faced with a hang-up issue of HIB module in TM4C129ENCPDT on the  device which is already works in field.


We need to clear sticky register in HIB-module. For this purpose we perform a reset of HIB-module. Because of noisy environment, XOSC clocking may be missed while restarting. As a result HIB-module hangs (HIB.CTL.WRC bit is always equal to zero). We tried to reset the HIB-module by SYSCTRL.SR.HIB, but this method doesn't help. 

We've modified a firmware. Now the availability of XOSC is checked before the restart of HIB. So this way helps us to make sure the presence of XOSC before we restart the HIB and to avoid a hang-up. After remote firmware update HIB module hangs still. The only way we found to return the HIB to active state is to reactivate the battery supply. This approach is not suitable for us, because we need to grab all of our devices from the field and bring them to factory for battery eject-insert. 

Is there any way to move the HIB out from hanging by software only, not by removing the battery supply?

Thank you.

  • HI Slava,

      According to Amit's reply in this post, the only way to reset the HIB is to remove the VBAT and VDD. Can you remotely apply nRST to the device?

  • Hello Charles,

    there is no direct access to nRST pin.

    But there is access to external Watchdog, which controls the nRST pin.

    We can stop resetting this external WD and initiate a reset level on nRST. 

    How the ability of control nRST pin can help us to bring HIB out of hanging without removing VBAT and VDD?

  • I am sorry. We are having power problems in this area of Texas USA. Charles does not have power or internet access at this point.

    I do not believe that nRST will correct the hibernation module hang-up. You might give it a try. 

  • Hi Slava,

      Sorry for getting back to you with delay due to the power outage in my area. 

      The reason I suggest nRST was because nRST can be used as a wake source. I was wondering if you could apply the nRST to first bring the device out of hibernation mode. Once the device is awake, see if you can reset the hibernation module. Did you have a chance to apply the nRST via your external WD? Per Amit's reply, remoal of VDD/Vbat is the only way to reset the HIB. I was just hoping if the nRST could possibly work. 

    7.3.11 Waking from Hibernate
    The Hibernation module can be configured to wake from Hibernate mode if any of the following are
    enabled:
    ■ External WAKE
    ■ External RST
    ■ GPIO K[7:4]
    ■ Tamper TMPR[3:0]
    ■ Tamper XOSC failure
    The Hibernation module can also be configured to wake from hibernate when the following events
    occur:
    ■ RTC match wake event
    ■ Low Battery wake event

  • Hi Slava,

      In the post answered by Amit. He said "The Hibernate module can only be reset by a full removal of VDD and VBAT supplies if RTC is enabled. If it is to be reset then RTC, external wake and tamper functions have to be disabled."

    I agree with his statement saying the removal of Vbat and VDD is the method to reset the Hibernation module. He also mentioned “ If it is to be reset then RTC, external wake and tamper functions have to be disabled.”. He seems to suggest that the Hibernation module can be reset by “software” if the RTC, external wake and tamper functions are disabled first.  However, I don’t think this will work. In order to disable RTC and external wake functions, the user must poll the state of the WRC (Write Complete) bit. This bit is a synchronization between the SYSCLK and RTCLK indicating when it is safe to write to the HIBCTL register. In the datasheet, it states that if the WRC bit is low then any writes to the HIBCTL register will be ignored. The WRC bit is stuck low per customer’s reporting and hence the hanging. Therefore, I think the removal of Vbat and VDD is the only way to reset the Hibernation module.