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.

[参考译文] TMS320F28069M:TMS320F28069上的软件复位不能正常工作(处理器无法重新启动)

Guru**** 2224720 points
Other Parts Discussed in Thread: MOTORWARE, TMS320F28069, TMS320F28027F, LAUNCHXL-F28069M, BOOSTXL-DRV8305EVM
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1435768/tms320f28069m-software-reset-not-working-properly-on-tms320f28069-processor-fails-to-restart

器件型号:TMS320F28069M
Thread 中讨论的其他器件:TMS320F28069TMS320F28027FLAUNCHXL-F28069M、MOTORWARE、 BOOSTXL-DRV8305EVM

工具与软件:

大家好!

我在 TMS320F28069微控制器上执行软件复位时遇到问题。 我在 TMS320F28027F 上具有可以正常工作的复位过程、但当我尝试在 TMS320F28069上使用相同的方法时、会导致问题。

问题: 在 TMS320F28069上执行软件复位后、处理器无法重新启动。 即使硬件复位按钮也停止工作、唯一恢复方法是完全关闭电源、然后再打开器件电源。

Fullscreen
1
2
3
4
5
6
7
8
void resetDevice(HAL_Handle halHandle) {
WDOG_disable(halHandle->wdogHandle);
EALLOW;
halHandle->wdogHandle->SCSR = 0x0;
halHandle->wdogHandle->WDCR = 0x0;
EDIS;
WDOG_enable(halHandle->wdogHandle);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

这个代码在 TMS320F28027F 上运行良好、但是它会导致 TMS320F28069挂起。

问题: 为什么 TMS320F28027F 上运行的软件复位在 TMS320F28069上不能正常运行? 我如何正确地为 TMS320F28069实现软件复位以防止其挂起?

我非常感谢您提供任何建议或建议!

GPIO37 = 1 и GPIO34 = 1。

LAUNCHXL-F28069M

谢谢!

Andrew。  

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

    Andrew、您好!

    当看门狗触发 XRSn 时、它会经历引导周期并根据所选的引导模式返回到应用程序代码。
    如果在您对闪存进行编程后将引导模式设置为闪存、则它将在 WD XRSn 触发时跳转到代码。

    如果连接了调试器、则需要设置仿真引导模式以跳 转到入口点、如下面的流程图所示


    谢谢

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

    问题没有得到解决;问题变得更加严重。 让我更详细地说明一下:

    我    使用 MotorWare 18与 LAUNCHXL-F28069M 和 BOOSTXL-DRV8305EVM 配合使用。 未安装 JP1和 JP2。 在调试器下工作时、我使用引导设置:开、开、开。 在此模式下、一切均正常运行、我可以成功调试程序。

    调试后、我切换到闪存引导模式。 引导设置为:On (开)、On (开)、Off (关)。 我打开系统电源、程序开始运行、我可以通过闪烁的 LED 进行确认。 但我无法控制电机。 通过 CAN 进行通信时工作正常。

    如果我按下"Reset"按钮或执行软件复位、一切都开始正常工作、包括电机控制。 但在首次上电后、电机控制便无法正常工作。

    对于可能导致此问题的原因、我希望提供任何建议。   

    Andrew。

    PS:我有3个  LAUNCHXL-F28069M。 相同。

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

    您能否在进行电机控制的代码部分放置 GPIO 切换开关、您需要查看代码的哪个部分会遇到通过执行 XRSn 来解决的问题。

    谢谢

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

    LED 控制位于 MAIN_ISR 中。 主域中的 CAN 通信。

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

    我不确定我的问题是否与 cmd 文件有关。 这是我的命令。

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    // FILE: F28069M.cmd
    //
    // TITLE: Linker Command File For F28069M + Flash28_API Device
    MEMORY
    {
    PAGE 0 : /* Program Memory */
    /* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE1 for data allocation */
    RAML0_1 : origin = 0x008000, length = 0x000C00 /* on-chip RAM block L0 and L1 */
    OTP : origin = 0x3D7800, length = 0x000400 /* on-chip OTP */
    //FLASHH : origin = 0x3D8000, length = 0x004000 /* on-chip FLASH */
    FLASHG : origin = 0x3DC000, length = 0x004000 /* on-chip FLASH */
    FLASHF : origin = 0x3E0000, length = 0x004000 /* on-chip FLASH */
    FLASHE : origin = 0x3E4000, length = 0x004000 /* on-chip FLASH */
    FLASHA_D : origin = 0x3E8000, length = 0x00FF80 /* on-chip FLASH */
    //FLASHC : origin = 0x3EC000, length = 0x004000 /* on-chip FLASH */
    //FLASHA_B : origin = 0x3EC000, length = 0x007F80 /* on-chip FLASH */
    CSM_RSVD : origin = 0x3F7F80, length = 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */
    BEGIN : origin = 0x3F7FF6, length = 0x000002 /* Part of FLASHA. Used for "boot to Flash" bootloader mode. */
    CSM_PWL_P0 : origin = 0x3F7FF8, length = 0x000008 /* Part of FLASHA. CSM password locations in FLASHA */
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    Andrew、您好!

    LED 控件位于 MAIN_ISR 中。 CAN 通信。
    可通过闪烁的 LED 进行确认。 但我无法控制电机。 通过 CAN 进行的通信正常。

    那么您的电机控制代码在哪里呢? 是否未执行?

    但在首次通电后、电机控制立即无法正常工作。

    我无法从 CMD 文件中说出任何内容

    谢谢