<?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: K20 Watchdog Timeout Even if Refreshed in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K20-Watchdog-Timeout-Even-if-Refreshed/m-p/288436#M11306</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Withing the while loop of main.c I added a delay&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: helvetica, arial; font-size: 12px; background-color: #ffffff;"&gt; Delay_ms(&lt;/SPAN&gt;&lt;SPAN class="number" style="font-size: 12px; font-family: helvetica, arial; color: green; background-color: #ffffff;"&gt;10&lt;/SPAN&gt;&lt;SPAN style="font-size: 12px; font-family: helvetica, arial; color: #000000; background-color: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12px; font-family: helvetica, arial; color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12px; font-family: helvetica, arial; color: #000000; background-color: #ffffff;"&gt;while has solved this problem. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12px; font-family: helvetica, arial; color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12px; font-family: helvetica, arial; color: #000000; background-color: #ffffff;"&gt;so we need to think what problem it must be....does calling repeated Refresh on the watchdog very quickly create a problem? &lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 12 Jun 2013 07:29:57 GMT</pubDate>
    <dc:creator>kashyapgada</dc:creator>
    <dc:date>2013-06-12T07:29:57Z</dc:date>
    <item>
      <title>K20 Watchdog Timeout Even if Refreshed</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K20-Watchdog-Timeout-Even-if-Refreshed/m-p/288435#M11305</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The Subject is self explaining so I will paste my code here.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_1371018697791333" jivemacro_uid="_1371018697791333" modifiedtitle="true"&gt;
&lt;P&gt;Main.c&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;#include &amp;lt;stdint.h&amp;gt;&lt;/P&gt;
&lt;P&gt;#include &amp;lt;math.h&amp;gt;&lt;/P&gt;
&lt;P&gt;#include "MK20D5.h"&lt;/P&gt;
&lt;P&gt;#include "gpio.h"&lt;/P&gt;
&lt;P&gt;#include "systick.h"&lt;/P&gt;
&lt;P&gt;#include "uart.h"&lt;/P&gt;
&lt;P&gt;#include "adc.h"&lt;/P&gt;
&lt;P&gt;#include "spi.h"&lt;/P&gt;
&lt;P&gt;#include "nrf24l01.h"&lt;/P&gt;
&lt;P&gt;#include "crc.h"&lt;/P&gt;
&lt;P&gt;#include "wdog.h"&lt;/P&gt;
&lt;P&gt;//ADC Variables Store Counts&lt;/P&gt;
&lt;P&gt;uint16_t adc_channel0 = 0;&lt;/P&gt;
&lt;P&gt;uint16_t adc_channel0_last_copy = 0;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;uint16_t result = 0;&lt;/P&gt;
&lt;P&gt;unsigned char finalSendData [6] = {&lt;/P&gt;
&lt;P&gt;&amp;nbsp; 0x01,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; 0x02,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; 0x00,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; 0x00,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; 0x00,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; 0x00&lt;/P&gt;
&lt;P&gt;&amp;nbsp; };&lt;/P&gt;
&lt;P&gt;uint16_t crc_nrf = 0;&lt;/P&gt;
&lt;P&gt;uint8_t FIFO_STATUS = 0;&lt;/P&gt;
&lt;P&gt;/******************************************************************************&lt;/P&gt;
&lt;P&gt;º¯ÊýÃû³Æ£ºmain&lt;/P&gt;
&lt;P&gt;º¯Êý¹¦ÄÜ£ºÏµÍ³Ö÷º¯Êý&lt;/P&gt;
&lt;P&gt;Èë¿Ú²ÎÊý£ºÎÞ&lt;/P&gt;
&lt;P&gt;³ö¿Ú²ÎÊý£º-ÎÞ&lt;/P&gt;
&lt;P&gt;×÷Õß£ºMcuzone-freescale&lt;/P&gt;
&lt;P&gt;******************************************************************************/&lt;/P&gt;
&lt;P&gt;int main(void)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp; Systick_Initial();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;// Delay_ms(5000);&lt;/P&gt;
&lt;P&gt;// Delay_ms(5000);&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; UART0_Configuration();&lt;/P&gt;
&lt;P&gt;&amp;nbsp; ADC_Configuration();&lt;/P&gt;
&lt;P&gt;&amp;nbsp; SPI0_Configuration();&lt;/P&gt;
&lt;P&gt;&amp;nbsp; nrfTxInit();&lt;/P&gt;
&lt;P&gt;&amp;nbsp; gpio_init(PORTD, PTD, 7, OUTPUT);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; gpio_init(PORTD, PTD, 6, OUTPUT);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; Delay_ms(100);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; gpio_set_pin (PTD, 7);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; Delay_ms(100);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; gpio_clear_pin (PTD, 7);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; Delay_ms(100);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; gpio_set_pin (PTD, 7);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; wdog_init();&lt;/P&gt;
&lt;P&gt;//&amp;nbsp;&amp;nbsp; wdog_enable();&lt;/P&gt;
&lt;P&gt;&amp;nbsp; while (1)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp; nrf24l01_read_register(nrf24l01_FIFO_STATUS, &amp;amp;FIFO_STATUS, 1);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; if (FIFO_STATUS == 0x12)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; nrf24l01_clear_flush(); /* Clear the&amp;nbsp; EXTI line 0 pending bit */&lt;/P&gt;
&lt;P&gt;&amp;nbsp; wdog_refresh();&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; adc_channel0 = ADC_AverageConvert(); //PA1&lt;/P&gt;
&lt;P&gt;&amp;nbsp; finalSendData[2]&amp;nbsp; = ((adc_channel0 &amp;gt;&amp;gt; 8) &amp;amp; 0x00FF); //toSendData1[1]&lt;/P&gt;
&lt;P&gt;&amp;nbsp; finalSendData[3] =&amp;nbsp; ((adc_channel0) &amp;amp; 0x00FF); //toSendData2[0]&lt;/P&gt;
&lt;P&gt;&amp;nbsp; crc_nrf = crcNrfAdd(finalSendData);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; finalSendData[4]&amp;nbsp; = crc_nrf%256;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; finalSendData[5] =&amp;nbsp; crc_nrf/256;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; if (fabs(adc_channel0 - adc_channel0_last_copy) &amp;gt; 4) {&lt;/P&gt;
&lt;P&gt;&amp;nbsp; adc_channel0_last_copy = adc_channel0;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; wdog_refresh();&lt;/P&gt;
&lt;P&gt;&amp;nbsp; nrfSend(finalSendData);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; gpio_toggle_pin (PTD, 6);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;// wdog_refresh();&lt;/P&gt;
&lt;P&gt;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro _jivemacro_uid_13710187967892384 jive_macro_code" jivemacro_uid="_13710187967892384" modifiedtitle="true"&gt;
&lt;P&gt;wdog.h&lt;/P&gt;
&lt;P&gt;#include "wdog.h"&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;void wdog_init(void){&lt;/P&gt;
&lt;P&gt;&amp;nbsp; wdog_unlock();&lt;/P&gt;
&lt;P&gt;&amp;nbsp; delay(1);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; WDOG-&amp;gt;STCTRLH = WDOG_STCTRLH_DISTESTWDOG_MASK //Disable WDOG Test Mode&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | WDOG_STCTRLH_ALLOWUPDATE_MASK | WDOG_STCTRLH_WDOGEN_MASK | WDOG_STCTRLH_DBGEN_MASK; //Allow WDOG CTRL Ref Update&lt;/P&gt;
&lt;P&gt;&amp;nbsp; WDOG-&amp;gt;TOVALH = 0x0000;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; WDOG-&amp;gt;WINL = WDOG-&amp;gt;WINH = 0;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; WDOG-&amp;gt;TOVALL = 0x0FFF;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; WDOG-&amp;gt;STCTRLH &amp;amp;= ~(WDOG_STCTRLH_ALLOWUPDATE_MASK) ;&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;void wdog_refresh(void) {&lt;/P&gt;
&lt;P&gt;&amp;nbsp; delay(1);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; WDOG-&amp;gt;REFRESH = WDOG_REFRESH_WDOGREFRESH(WDOG_REFRESH_SEQUENCE_1);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; WDOG-&amp;gt;REFRESH = WDOG_REFRESH_WDOGREFRESH(WDOG_REFRESH_SEQUENCE_2);&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;void wdog_enable(void){&lt;/P&gt;
&lt;P&gt;&amp;nbsp; delay(600);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; wdog_unlock();&lt;/P&gt;
&lt;P&gt;&amp;nbsp; delay(1);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; WDOG-&amp;gt;STCTRLH |= WDOG_STCTRLH_WDOGEN_MASK;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; delay(20);&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;void wdog_unlock(void){&lt;/P&gt;
&lt;P&gt;&amp;nbsp; WDOG-&amp;gt;UNLOCK = WDOG_UNLOCK_WDOGUNLOCK(WDOG_UNLOCK_SEQUENCE_1);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; WDOG-&amp;gt;UNLOCK = WDOG_UNLOCK_WDOGUNLOCK(WDOG_UNLOCK_SEQUENCE_2);&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;void wdog_set_timeout(uint32_t time) {&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;void delay(uint16_t nCount) {&lt;/P&gt;
&lt;P&gt;&amp;nbsp; uint16_t delay = 0;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; for (delay=0;delay&amp;lt;nCount*10;delay++);&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have checked couple of post discussing the same problem on this forum but there was no conclusive information regarding it.&lt;/P&gt;&lt;P&gt;The above code has no interrupts so i haven't disabled interrupts while refreshing or unlocking the wdog.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 Jun 2013 06:35:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K20-Watchdog-Timeout-Even-if-Refreshed/m-p/288435#M11305</guid>
      <dc:creator>kashyapgada</dc:creator>
      <dc:date>2013-06-12T06:35:34Z</dc:date>
    </item>
    <item>
      <title>Re: K20 Watchdog Timeout Even if Refreshed</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K20-Watchdog-Timeout-Even-if-Refreshed/m-p/288436#M11306</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Withing the while loop of main.c I added a delay&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: helvetica, arial; font-size: 12px; background-color: #ffffff;"&gt; Delay_ms(&lt;/SPAN&gt;&lt;SPAN class="number" style="font-size: 12px; font-family: helvetica, arial; color: green; background-color: #ffffff;"&gt;10&lt;/SPAN&gt;&lt;SPAN style="font-size: 12px; font-family: helvetica, arial; color: #000000; background-color: #ffffff;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12px; font-family: helvetica, arial; color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12px; font-family: helvetica, arial; color: #000000; background-color: #ffffff;"&gt;while has solved this problem. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12px; font-family: helvetica, arial; color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12px; font-family: helvetica, arial; color: #000000; background-color: #ffffff;"&gt;so we need to think what problem it must be....does calling repeated Refresh on the watchdog very quickly create a problem? &lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 Jun 2013 07:29:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K20-Watchdog-Timeout-Even-if-Refreshed/m-p/288436#M11306</guid>
      <dc:creator>kashyapgada</dc:creator>
      <dc:date>2013-06-12T07:29:57Z</dc:date>
    </item>
  </channel>
</rss>

