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.

[参考译文] TMS320F28234:低功耗模式错误

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/978355/tms320f28234-low-power-mode-error

器件型号:TMS320F28234

您好!

我们制作了一个包含 TMS320F28234的定制板

如果我在 CCS 上的调试会话上"运行"应用程序、则错误消息"MCU 处于低功耗模式"

JTAG、VDD 和 VDDIO 连接只正确、1.9V 和3.3V 分别获得 VDD 和 VDDIO。

请帮助我们解决错误  

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

    Chandran、

    感谢您联系 E2E。

    这可能是代码安全模块导致的、如果代码从安全存储器执行、则会故意导致 JTAG 通信中断。  即使您尚未设定密码(默认状态为所有0xFFFF)、您仍需要执行代码中密码密钥位置的初始读取以解锁器件。  这需要在加电/复位时执行一次。   

    如果您查看我们的代码示例、您会发现一个名为"CsmUnlock"的函数、该函数将处理此问题。  如果您已经对 CSM 进行了编程、您还可以在此函数中插入您唯一的密码值以解锁器件。  我复制了下面的函数、以防您希望快速内联读取。

    器件 TRM 的这一部分更详细地介绍了正在使用的逻辑。

    CsmUnlock()
    {
    易失性 uint16温度;
    
    //
    //使用当前密码加载密钥寄存器。 0xFFFF 是虚拟的
    //密码。 用户应使用的正确密码替换它们
    // DSP。
    //
    EALLOW;
    CsmRegs.KEY0 = 0xFFFF;
    CsmRegs.key1 = 0xFFFF;
    CsmRegs.key2 = 0xFFFF;
    CsmRegs.key3 = 0xFFFF;
    CsmRegs.KEY4=0xFFFF;
    CsmRegs.KEY5=0xFFFF;
    CsmRegs.KEY6 = 0xFFFF;
    CsmRegs.KEY7=0xFFFF;
    EDIS;
    
    //
    //如果密码位置与密钥匹配,则执行密码位置的虚拟读取
    //值、CSM 将解锁
    //
    temp = CsmPwl.PSWD0;
    temp = CsmPwl.PSWD1;
    temp = CsmPwl.PSWD2;
    temp = CsmPwl.PSWD3;
    temp = CsmPwl.PSWD4;
    temp = CsmPwl.PSWD5;
    temp = CsmPwl.PSWD6;
    temp = CsmPwl.PSWD7;
    
    //
    //如果 CSM 未锁定,则返回成功,否则返回失败。
    //
    if (CsmRegs.CSMSCR.bit.SECURE = 0)
    {
    返回 STATUS_SUCCESS;
    }
    其他
    {
    返回 STATUS_FAIL;
    }
    } 

    最棒的

    Matthew