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软件重置

Guru**** 2568585 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/640372/tms320f2812-dsp-f2812-software-reset

部件号:TMS320F2812

您好,


我们公司将DSP F2812用于电机控制应用(使用EVTimer模块的空间矢量调制)。 我们通过停止EVTimer和设置程序计数器来执行软件重置,以启动启动代码/应用程序软件的地址。  在 执行此软件和硬件(EVTimer)初始化后,按照  正常开机的相同方式执行初始化。 但在我们执行软件重置后的某些情况下,电机控制应用程序无法正常工作(似乎在DSP F2812的PMW输出处空间矢量调制未激活)。 我们认为,我们执行的软件重置顺序不正确。

是否已知类似问题?

您能帮我对DSP F2812执行正确的软件重置吗?


此致


软件开发工程师Josef Preisinger

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    确切地说,如何执行软件重置?
    重置后,您使用的PC起始地址是什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    执行软件重置时跳转至地址0x3F7FF6 (无换气操作)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    下面介绍了如何在F2812上执行软件重置:启用看门狗,然后写入无效的支票值。 这会立即对芯片进行硬复位。

    EALLOW;
    SysCtrlRegs.wdcr= 0x0028; //通过快速超时启用监视程序
    SysCtrlRegs.WDCR= 0x0000; //写入无效的检查值,该值应立即重置
    //您可以将EDIS放在此处,但处理器将已执行硬重置。
    EDIS;

    劳埃德
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    执行软件重置的最佳方法是强制看门狗重置设备。 这可确保执行引导ROM。 Brom代码可确保CPU寄存器处于特定状态,以便正确执行应用程序代码。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回答,

    我还发现看门狗可以执行软件重置。  我 已经执行了后续措施,这似乎是有效的。

       /*允许修改受保护的寄存器*/
       EALLOW;    
       /*启用软件监督*/
       SysCtrlRegs.WDCR = 0x28U;      
       /*等待正确的寄存器设置*/
       不采取任何行动;10_CPUCLOCKS;
       /*写入不正确的值以启动设备重置*/  
       SysCtrlRegs.WDKEY = 0x23;                      
       /*不允许修改受保护的寄存器*/                 
       EDIS;

    Josef

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果您的问题已解决,请关闭帖子。 谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们 要做进一步 的测试,但我想问题已经解决了。

    Josef