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.

[参考译文] TMDSLCDK138:我可以#39;t 复位 McASP 或写入其任何寄存器

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/663227/tmdslcdk138-i-can-t-reset-mcasp-or-write-to-any-of-its-registers-at-all

器件型号:TMDSLCDK138

您好!

我正在使用此代码来重置 McASP、它似乎工作正常:

McaspRegs* McASP = MCBSP_0;
//Reset
McASP->GBLCTL = 0;
while (!(McASP->GBLCTL =0)); 

当然、在这之后、我会执行所有 McASP 配置。 我有一个正常工作的应用程序、但出于某种原因、有一天开发板拒绝重置 McASP0。 所有 McASP 寄存器都保持为零、应用程序会卡在该时间(回读以确保 GBCTL 已更改)、即使当 GBLCTL 为零(或调试器)时也是如此。 其余的工作似乎正常、我用 AIC3106作为主器件。 我已经用示波器检查了编解码器的时钟、并且频率正常、这意味着 I2C 和编解码器仍然正常工作。

我已经尝试过 PDK 中的 McASP 示例工程、但在文件 McASP_drv.c 的4082行中的某个断言时失败  我已经检查过它、这是一个超时、代码无法设置 bit GBLCTLX、因此它失败了。

发生什么事了? 我已经尝试了所有东西、问题仍然存在。 McASP 寄存器没有反应、其他的一切似乎都正常。 这可能是硬件问题吗? 如何检查它是否是?

谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当您说所有 McASP 寄存器都为0时、是否可以在 McASP 寄存器存储器映射的开头确认只读 REVID 寄存器是否为 true?

    如果是这样、通常原因是您没有通过片上 PSC (电源睡眠控制器)启用时钟-这通常是您在 GEL 文件或次级引导加载程序等中进行初始化时所要执行的操作 请确认是否已通过 PSC 启用 McASP?

    如果您有调试器/CCS、则可以通过此调试 GEL 文件查看 PSC 寄存器的状态。

    processors.wiki.ti.com/.../OMAP-L1x_Debug_Gel_Files

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

    这就是问题所在、GEL 文件未执行。 该死的,我浪费了几个小时,这是如此的明显。

    谢谢、问题迎刃而解。