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.

[参考译文] C2000WARE:sysctl.c 版本之间代码更改的影响 (driverlib C2000Ware 5.05 与 4.03)

Guru**** 2513185 points
Other Parts Discussed in Thread: TMS320F280049-Q1, C2000WARE, TMS320F280049C

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1557325/c2000ware-impact-of-code-change-between-sysctl-c-versions-driverlib-c2000ware-5-05-vs-4-03

器件型号:C2000WARE
主题中讨论的其他器件: TMS320F280049C、TMS320F280049-Q1

工具/软件:

您好支持、  

我们基于 280049 微控制器开发了一个机载应用程序、其驱动程序主要源自 C2000ware 版本 4.3、用于时钟/PLL 设置和控制 (sysctl.c)

今天、在查看我们的代码并将其与最新版本的 C2000ware (5.05) 和最新版本的 TRM 进行比较时、我们注意到某些时序和重试次数已经被修改

1) 等待 X1 时钟饱和时

添加了退出循环的超时选项:

2) 关闭 PLL 时  

添加了从  断电到 PLL 上电之间至少需要 60 个 OSCCLK 周期的延迟

3) 在 SYSCTL_O_SYSCLKDIVSET/SYSCTL_O_XTALCR/SYSCTL_O_CLKSRCCTL1  寄存器中写入分频器时

增加了延迟

SYSCTL_REGWRITE_DELAY、即 asm(“ RPT #39 || NOP“)

4) 检查丢失时钟故障时

添加了一个计数器选项以退出循环、并停止程序执行

我们能否生活在没有这些变化的情况下,或者它们真的必须 在我们的代码中实现?  

我们目前正处于修改我们的代码的阶段、我们需要重新运行所有高级测试并重放一些低级测试。  

提前感谢您。

David

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

    没有回复? 如果没有人对此有意见、您至少能告诉我 PLL 关闭后延迟发生变化 (3->11) 以及引入 SYSCTL_REGWRITE_DELAY 的原因吗?

    我们一直使用 C2000ware 4.03 版代码两年、到目前为止没有任何问题。 但是、这是否会导致某些掩码或微控制器系列 (280049/280045) 或某些型号 (TMS320F280049-Q1/TMS320F280049C) 或某些封装出现问题?

    谢谢

    David

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

    您好、David:

    根据数据表、PLL 断电后应该等待 60 个周期。 请查看 E2E - (+) TMS320F280049C:C2000Ware v4 使用 24 个周期而非 60 个周期来关闭 PLL - C2000 微控制器论坛 — C2000Tm︎ 微控制器 — TI E2E 支持论坛

    关于  SYSCTL_REGWRITE_DELAY、请查看 TRM 中的“系统控制寄存器配置限制“部分、其中提到了某些 SYSCTL 寄存器之间后续写入之间的延迟。 我们根据 TRM 说明添加了延迟。  

    谢谢

    Aswin

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

    好的、感谢您的答复。  

    1) 关于 SYSCTL_REGWRITE_DELAY、sprui33 的修订版 G 中似乎出现了“系统控制寄存器配置限制“、但本文档的修订历史记录中未出现。 这对我们来说是个问题、因为我们无法跟踪每 3000 页文档修订的发布差异。

    是否有其他地方跟踪详尽的文档修订以防止此情况再次发生? 例如在 Jira 中?  

    如果我很清楚  系统控制寄存器配置限制的§3.14、每次我们写入表 3-19 中列出的寄存器时、都必须根据 SYSCLK 频率添加延迟 (SYSCTL_REGWRITE_DELAY)。

    它用于在同一寄存器上进行 2 次写入(如上面显示的 SysCtl_O_SYSCLKDIVSEL)  或在表 3.19 中列出的任何寄存器上进行 2 次写入?

    2) 对于 C2000ware 代码的演进,我看到有一个 Git 用于 管理版本

    GitHub - TexasInstruments/c2000ware-core-SDK:C2000Ware 的存储库

    但跟踪问题很少

    是否在 JIRA 中跟踪问题? 您能否提供检索请求?

    我们的目标是在发生更改/修改时解决(来自 TRM 或 C2000ware)、以避免在工程结束时处理这些更改。

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

    您好、David:

    我来咨询 TRM 专家、看看是否可以跟踪 TRM 修订历史记录中的变化。  

    它适用于对同一寄存器进行 2 次写入(如上面显示的 SysCtl_O_SYSCLKDIVSEL)  或对表 3.19 中列出的任何寄存器进行 2 次写入?

    在表中寄存器的后续写入之间会添加延迟、否则第二次写入可能会丢失。

    根据 TRM、您需要添加延迟、以便正确写入寄存器而不会出现任何失败情况。

    JIRA 中是否跟踪了问题? 您能否提供检索请求?

    是的,我们内部创建了 JIRA,用于跟踪问题。 我们针对外部可见性发布了几个高优先级项目。

    您应该能够在发行说明中找到已在发行版中修复的新问题。

    谢谢

    Aswin