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.

[参考译文] TMS570LC4357-SEP:在高于最大时钟值的情况下运行控制器

Guru**** 2525040 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1555396/tms570lc4357-sep-running-the-controller-above-max-clock

器件型号:TMS570LC4357-SEP
主题中讨论的其他器件:HALCOGEN

工具/软件:

我尝试在 TMS570LC43x LaunchPad 上实现 5Mbps UART、这需要将 SCI 波特率时钟设置为接近 8MHz 。 为此、我使用 HALCoGen 将 MCU 配置为在数据表中指定的最大时钟限制以上运行。

  1. 超过额定时钟速度可能会出现哪些问题?
  2. 通过保持在最大值范围内、我可以做什么来实现此数据速率 时钟?

我已将我的 HALCoGen 配置和测试代码附加到 ZIP 文件中以供参考。

在我尝试上传新程序时、我也会遇到以下错误:

  • CortexR5:GEL 输出:闪存@地址 0x0CortexR5:loader 的存储器映射设置:程序的一个或多个段落入不可写的存储器区域。 这些区域实际上不会写入目标。 检查链接器配置和/或存储器映射。
  • CortexR5:文件加载程序:验证失败:地址 0x00000003 处的值不匹配请验证目标存储器和存储器映射。
  • CortexR5:GEL:文件: 发生数据验证错误、文件加载失败。

我可以通过按住复位按钮并在 CCS 中点击调试按钮后立即释放程序来上传新程序、但这种方法有时才有效。 我需要尝试几乎 30-40 次,随机一次,我能够刷新新的程序。 请也就此提出建议。

e2e.ti.com/.../4572.UART.zip

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

    尊敬的 Dhir:

    对延迟的回复表示歉意。

    根据提供的技术文档、以下是对您在 TMS570LC43x 器件上有关时钟速度和闪存编程错误的问题的分析。

    问题汇总

    不建议在超出指定最大时钟速度的情况下运行器件、否则可能会导致不可预测的行为和系统故障。 使用 100MHz 外设时钟时、TMS570LC43x 上的标准 SCI (UART) 模块的最大可实现波特率为 3.125Mbits/s、因此在指定条件下使用此模块无法实现 5Mbps 目标。 通过使用 MibSPI 或 FlexRay 等其他外设、可实现更高的数据速率。

    您遇到的闪存编程错误是闪存错误校正码 (ECC) 问题的特征。 当闪存包含具有无效 ECC 的数据时、可以阻止调试器写入或验证存储器、从而导致您描述的错误。


    时钟速度和高数据速率 UART

    超过额定时钟速度时的问题

    TMS570LC43x 系列的数据表指定了 CPU 和外设的最大工作频率、以确保可靠运行。 例如、TMS570LC43x CPU 被指定为在 300MHz 或 330MHz 下运行、具体取决于具体的器件型号。 微控制器在这些规定限制之外运行可能会导致时序违规、不可预测的程序执行以及对器件的潜在损坏。 在数据表电气特性之外运行时、无法保证器件的行为。

    实现 5Mbps 数据速率

    这些技术文档表明、标准 SCI 模块在指定的外设时钟限制内运行时无法实现 5Mbps 数据速率。

    • SCI 模块限制 : SCI/LIN 模块特性明确列出了“在 100MHz 外设时钟下,3.125Mbits/s 是可实现的最大波特率“。 这是标准 UART 通信的最大额定能力。

    为了实现更高的串行数据速率、可以考虑使用其他片上外设:

    • SPI 作为 UART :应用报告“使用 SPI 作为额外的 UART 发送器“演示了如何将 MibSPI 外设改用于 UART 发送器。 MibSPI 专为高速通信而设计、能够以极少的软件开销达到所需的数据速率。
    • FlexRay 控制器 :TMS570LC43x 包括一个 FlexRay 控制器、支持每通道 10 Mbps 的通信速率。 虽然它不是标准 UART、但它是器件上可用的高速串行通信选项。

    闪存编程错误

    这些错误 Memory region that is not writable  Verification failed 编程期间是闪存内 ECC 相关问题的强指标。

    闪存中的 ECC 保护

    TMS570LC43x 微控制器的闪存受单错校正双错检测 (SECDED) ECC 逻辑的保护。 此功能通过校正单个位错误并在存储器访问期间检测多位错误来提高可靠性。

    • ECC 计算 : 8 位 ECC 是基于 64 位数据字计算的,重要的是,还包括 19 位内存地址。 这意味着存储在不同地址的相同数据将具有不同的 ECC 值。
    • 错误原因 :擦除闪存时、所有位(数据和 ECC)都设置为“1"。“。 但是、对于大多数地址、数据和 ECC 的全部为 1 的块通常不是有效组合。 当调试程序或引导加载程序尝试在写入其之前读取已擦除位置时、CPU 的 ECC 逻辑会检测到一个不可纠正的错误、因为存储的0xFF ECC 位 () 与该地址计算出的 ECC 不匹配。 这会导致 CPU 发出错误信号、调试器会将该错误解释为存储器不可写或验证失败。 这可能是由于之前的编程尝试失败或擦除周期不完整所致。

    按下 RESET 按钮的权变措施可能会间歇性地成功、方法是更改调试连接的时序、有时允许调试器在 ECC 逻辑停止操作之前发出批量擦除命令。

    基本解决方案是对闪存执行完全擦除。 这会将包括所有 ECC 数据在内的整个闪存存储体复位为干净状态。 闪存完全擦除后、调试器应该能够对新应用程序进行编程而不会遇到 ECC 错误。

    --
    此致、
    Jagadish。

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

    尊敬的 Jagadish:

    感谢您的及时答复。 我感谢详细的解释。 但是、我确实担心内容可能是由 AI 生成的、我希望确保所提供信息的准确性。

    您能否确认说明是否经过验证并且与器件的技术规格一致?


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

    尊敬的 Dhir Gandhi:

    [引述 userid=“643177" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1555396/tms570lc4357-sep-running-the-controller-above-max-clock/5992557

    感谢您的及时答复。 我感谢详细的解释。 但是、我确实担心内容可能是由 AI 生成的、我希望确保所提供信息的准确性。

    您能否确认说明是否经过验证并且与器件的技术规格一致?

    [/报价]

    您是正确的。这是由我们的内部工具生成的、但我在提供给您之前验证了它的回复。 正确且准确。

    --
    此致、
    Jagadish。

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

    感谢您确认 Jagadish。