Post Go back to editing

ADSP-21489 Watchdog Timer with external oscillator WDTRSTO# is always LOW

Category: Hardware
Product Number: ADSP-21489
Software Version: CUSTOM

Hello, in our custom board with ADSP-21489 DSP after power up WDTRSTO# pin output is always LOW (asserted).

I disconnect the pin from the rest of the circuit (by removing R6) so the pin is floating and I am expecting a HIGH level as soon as the DSP power up ( datasheet mentions there is internal pull up). I also connected an external pull up  just for testing but  output level is still LOW. 

I am using external ceramic oscillator of 2Mhz. But I cannot measure 2Mhz at the WDT_CLKIN pin either.

//Codes for initialization of Watchdog Timer

InitWDT:

    ustat1 = CMD_UNLOCK;     //0xAD21AD21
    dm(WDTUNLOCK) = ustat1;

    ustat1 = WDT_CLK_SRC_CER_RESO;
    dm(WDTCLKSEL) = ustat1;

    lcntr = 500, do loopend until lce;
    loopend: nop;

    ustat1 = COUNT_VALUE;  //2000000
    dm(WDTCNT) = ustat1; 

    ustat1 = TRIP_VALUE;   //15
    dm(WDTTRIP) = ustat1;

    r0 = 5000;
    lcntr = r0, do delay_loop until lce;
    nop;
    delay_loop: nop;

    ustat1 = dm(WDTCTL);    //WDT_EN;
    bit set ustat1 WDT_EN;
    dm(WDTCTL) = ustat1;

    ustat1 = CMD_LOCK;
    dm(WDTUNLOCK) = ustat1;
InitWDT.end:rts;

PingWDT:

   ustat1 = CMD_UNLOCK;
   dm(WDTUNLOCK) = ustat1;

   ustat1 = COUNT_VALUE;   //dummy write to Current Count Register
   dm(WDTCURCNT) = ustat1; //resets watchdog counter

   ustat1 = CMD_LOCK;
   dm(WDTUNLOCK) = ustat1;

PingWDT.end:rts;

My suspicion is it may be the ceramic resonator which is not providing necessary clock for watchdog (I am using same component - CSTCC2M00G56- as it is in EZKIT). I changed the resonator twice leading no difference.

Any suggestions? 

Note: All other peripherals I ve tested so far, are working properly (Flash, SPI, I/O operations, Core clock, ADC and DAC's) 

Parents Reply
  • I tried it with an external 2Mhz signal source and it worked OK. WDTRST0 pin worked as it is expected. Each time Watchdog expires it is asserted low and after trip count exceeds predefined value it completly stays at low.

    I thing the problem may be with the ceramic resonator circuit (which I used exactly the same layout with EZKit). 

Children