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.

TMS320F2812: DSP F2812 software reset

Part Number: TMS320F2812

hello,


our company uses the DSP F2812 for motor control application (space vector modulation with EVTimer module). We perform a software-reset with stopping EVTimer and setting program counter to start address of the boot code/application software. After this software and hardware (EVTimer) initialization is performed in the same way as done by normal power up. But in some times after we performed the software reset, the motor control application does not work properly (it seems, that space vector modulation is not active at the PMW outputs of the DSP F2812). We think, that our performed software reset sequence is not correct.

Are similiar problems known?

Can you help me with doing a correct software reset for the DSP F2812?


yours sincerely


Josef Preisinger, software development engineer

  • Exactly how do you perform the s/w reset?
    What start address do you use for the PC after reset?
  • The software reset is performed with jump to address 0x3F7FF6 (no furtrher action).

  • For what it's worth, here's how we do a software reset on F2812: enable the watchdog, then write an invalid check value. This causes a hard reset of the chip immediately.

    EALLOW;
    SysCtrlRegs.WDCR= 0x0028; //enable the watchdog with a fast timeout
    SysCtrlRegs.WDCR= 0x0000; //write an invalid check value which should reset immediately
    //You can put the EDIS here, but the processor will have already done a hard reset.
    EDIS;

    Lloyd
  • The best way to do a SW reset is to force the watchdog to reset the device. This ensures the boot-ROM is executed. The BROM code ensures the CPU registers are left in a specific state to enable proper execution of the application code.

  • Thank you for your answer,

    i have also found out, that the watchdog can do the software reset. I have implemented following, which seems to work.

        /* allow modification of the protected registers */
        EALLOW;   
        /* enable software watchdog */
        SysCtrlRegs.WDCR = 0x28U;     
        /* wait for proper register setting */
        DO_NOTHING_10_CPUCLOCKS;
        /* write improper value to initiate a device reset */ 
        SysCtrlRegs.WDKEY = 0x23;                     
        /* disallow modification of the protected registers */                
        EDIS;

    Josef

  • Please close the post if your issue is resolved. Thanks.

  • we have to perform further tests, but i think, the problem is resolved.

    Josef