主题中讨论的其他器件: HALCOGEN
您好!
我使用的是 TMS570LC4357、在尝试停用电源域4 (Flexray 和 FTU)时遇到了一些问题。
我想禁用电源域3、4和6。 然后、在我的代码中、我重复3次 TMS570LC4357 TRM 第5.3.4.1章中描述的逻辑、即:
写入 PDCLK_DISx 寄存器以禁用到电源域的所有时钟。
将0xA 写入 LOGICPDPWRCTRL0寄存器以关闭域电源。
(我没有对第三步进行编码、因为它是可选的、如 spna173中所示)。
我的代码如下:
//禁用电源域#3 (PCR3外设)
PDCLKDISSET->S_Fields.PDCLKDISSET1 = 1;
LOGICPDPWRCTRL0->S_Fields。LOGICPDON1 = 0xA;
//禁用电源域#4 (Flexray 和 Flexray 传输单元)
PDCLKDISSET->S_Fields.PDCLKDISSET2 = 1;
//补丁:下面的行导致 CPU 在 WinIdea 中停止(在 IDE 的右下角显示"reset"状态)。
// LOGICPDPWRCTRL0->S_Fields。LOGICPDON2 = 0xA;
//禁用电源域#6 (ePWM、eCAP、eQEP)
PDCLKDISSET->S_Fields.PDCLKDISSET4 = 1;
LOGICPDPWRCTRL1->S_Fields。LOGICPDON4 = 0xA;
如上所示执行代码(注释了 PD4断电命令)后、代码正确执行、软件继续执行。 停止执行(在调试器中)时、我可以看到状态寄存器指示电源域 PD3和 PD6处于关闭状态。 我还可以看到 PD4处于 idel 状态(因为时钟已被禁用。
如果我取消注释 PD4断电命令、当执行这一行代码时、CPU 在调试器的复位中显示为、并且我被强制执行"复位 CPU"操作、以便能够再次控制 CPU。
我已查看 TRM、数据表和勘误表(芯片 B)文档、但未列出有关此问题的任何内容、也未在 Hercules 安全微控制器论坛中列出。
您是否知道问题可能是什么?
有关信息、我使用的是 iSystem WinIdea 调试器(IC5000探针)。 我还将此帖子转发给他们的支持人员、但我认为这更像是与 TMS 相关的问题、而不是与调试器相关的问题。
谢谢、
此致、
盖尔