<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to identify the reason for a WDOG event in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-to-identify-the-reason-for-a-WDOG-event/m-p/442786#M26026</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I believe the cause of the WDOG events turns out to be how I managed the WDOG_REFRESH operations.&lt;/P&gt;&lt;P&gt;I failed to read the fine print details that the two write operations must be completed within 20 bus cycles.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have many IRQs running, which could easily exceed the 20 bus cycle delay.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;By adding a Disable/Enable interrupts operation around my WDOG_REFRESH calls, the WDOG resets stopped happening.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 24 Apr 2015 21:49:03 GMT</pubDate>
    <dc:creator>tbiberdorf</dc:creator>
    <dc:date>2015-04-24T21:49:03Z</dc:date>
    <item>
      <title>How to identify the reason for a WDOG event</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-to-identify-the-reason-for-a-WDOG-event/m-p/442785#M26025</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm working with the Kinetis K60 and I'm experiencing WDOG events happening and I cannot determine why its happening.&amp;nbsp; I cannot believe they are happening due to the WDOG not being refreshed within it's timeout period.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have the WDOG IRQ enabled and I'm taking a snap shot of the WDOG timeout periods and they appear to be well below the timeout limits.&lt;/P&gt;&lt;P&gt;I my case I've extended the timeout period to an extreme level to verify.&lt;/P&gt;&lt;P&gt;My timeout period is set to 10 seconds with a 1 second task refreshing the WDOG. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My IRQ posting is giving the following values:&lt;/P&gt;&lt;P&gt;WDOG_TMROUTH = 0x92&lt;/P&gt;&lt;P&gt;WDOG_TMROUTL = 0x7ce4&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is my WDOG init method:&lt;/P&gt;&lt;P&gt;void wdtInit()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set_irq_priority (INT_Watchdog-16, 0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; enable_irq(INT_Watchdog-16) ;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; wdtUnlock();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WDOG_TOVALH = 0x1c9c;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WDOG_TOVALL = 0x3800; /* 10 second period */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WDOG_WINH = 100;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WDOG_WINL = 100; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* WDOG_STCTRLH: DISTESTWDOG=0,BYTESEL=0,TESTSEL=0,TESTWDOG=0,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * WAITEN=1,STOPEN=1,DBGEN=1,ALLOWUPDATE=1,WINEN=0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * ,IRQRSTEN=1,CLKSRC=0,WDOGEN=1 */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WDOG_STCTRLH = WDOG_STCTRLH_BYTESEL(0x00) |&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WDOG_STCTRLH_WAITEN_MASK |&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WDOG_STCTRLH_STOPEN_MASK |&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WDOG_STCTRLH_DBGEN_MASK&amp;nbsp; |&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WDOG_STCTRLH_ALLOWUPDATE_MASK |&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WDOG_STCTRLH_IRQRSTEN_MASK |&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WDOG_STCTRLH_CLKSRC_MASK |&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WDOG_STCTRLH_WDOGEN_MASK |&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0100U;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After the WDOG event triggers, I do examine the reset registers:&lt;/P&gt;&lt;P&gt;RCM_SRS0 = 0x20&lt;/P&gt;&lt;P&gt;RCM_SRS1 = 0x0&lt;/P&gt;&lt;P&gt;and these indicate that the cause was a watchdog timeout, but with my TMROUTH and TMROUTL values do not indicate that refresh time has expired.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can there be another reason or hidden setting that I'm missing?&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Terry&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 24 Apr 2015 17:13:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-to-identify-the-reason-for-a-WDOG-event/m-p/442785#M26025</guid>
      <dc:creator>tbiberdorf</dc:creator>
      <dc:date>2015-04-24T17:13:21Z</dc:date>
    </item>
    <item>
      <title>Re: How to identify the reason for a WDOG event</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-to-identify-the-reason-for-a-WDOG-event/m-p/442786#M26026</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I believe the cause of the WDOG events turns out to be how I managed the WDOG_REFRESH operations.&lt;/P&gt;&lt;P&gt;I failed to read the fine print details that the two write operations must be completed within 20 bus cycles.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have many IRQs running, which could easily exceed the 20 bus cycle delay.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;By adding a Disable/Enable interrupts operation around my WDOG_REFRESH calls, the WDOG resets stopped happening.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 24 Apr 2015 21:49:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-to-identify-the-reason-for-a-WDOG-event/m-p/442786#M26026</guid>
      <dc:creator>tbiberdorf</dc:creator>
      <dc:date>2015-04-24T21:49:03Z</dc:date>
    </item>
  </channel>
</rss>

