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 Children
No Data