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.

[参考译文] TMS320F28377D:RWAIT 配置

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1311855/tms320f28377d-configuration-of-rwait

器件型号:TMS320F28377D
主题中讨论的其他器件:C2000WARE

尊敬的专家:

我的代码遇到了 Fapi_initializeAPI() 返回的问题Fapi_Error_InvalidHclkValue, indicating the FCLK is above FCLK_max。 以下是我的设置:

flsLibReturn = Fapi_initializeAPI (F021_CPU0_BASE_ADDRESSFLASHDRV_HCLK_FREQUENCY);
其中F021_CPU0_BASE_ADDRESS等于FLASH_CTRL_REGS(0x0005F8000)、并FLASHDRV_HCLK_FREQUENCY设置为100。 在这种情况下、FRDCNTL将寄存器设置为0x00000F00 (RWAIT = 15)、这是复位值。

我 找到并遵循这个线程https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1062754/tms3202838-cannot-initialize-flash-api-fapi_setactiveflashbank-returns-fapi_error_invalidhclkvalue?tisearch=e2e-sitesearch&keymatch=Fapi_Error_Invalid HclkValue# 设置寄存器FRDCNTL0x00000200 (RWAIT=2),并通过这个改变, Fapi_initializeAPI() 返回Fapi_Status_Success.

我的问题是关于返回值的含义Fapi_Error_InvalidHclkValue—具体而言、最大值是多少FCLK_max? 根据数据表,FCLK = HCLK / (RWAIT + 1)。 我很困惑为什么我的原始设置与RWAIT = 15结果Fapi_Error_InvalidHclkValue(在这种情况下,FCLK = 6.25 MHz)。 但是,当RWAIT更改为2时,会导致较高的FCLK(33.33 MHz),返回值为Fapi_Status_Success。 您能否说明为什么较低的 FCLK 会导致 Fapi_initializeAPI ()返回错误?

为什么应将 RWAIT 配置为2?

感谢您的支持。

此致、

C·C·刘

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

    C.C.

    我同意、大于最小值规格的 RWAIT 值不应返回错误。  您能否告知您正在使用的 C2000Ware 的版本、最终我将尝试确认闪存 API 版本、以查看我是否可以看到源代码中的任何限制、但 C2000Ware 版本应该能满足我的需要。

    您还能评论一下您的时钟源(INTOSC 或 XTAL 等)和您的 PLL 设置吗?

    此致!
    马修

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

    Matthew、您好!

    由于我们的软件是从第三方购买的(包括闪存 API 实现)、因此我们不知道他们采用的 C2000Ware 版本。 不过、我们已经确定 F021版本为 v1.54 (F021_API_F2837xD_FPU32.lib 库已链接到我们的项目)。

    请在下面找到 CLK_CFG_REGS 和 CPU_SYS_REGS 的寄存器设置。

    由于我们的软件不是由我们开发的,因此我们缺乏有关其实施的信息。 如果需要任何具体信息、请指导我们如何提供这些信息以供您进行分析。  由此给您带来的不便、我们深表歉意。

    非常感谢、

    C·C·刘

     

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

    Matthew、您好!

    请问 TI 是否发现了任何问题?

    谢谢。

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

    C.C.、

    找到可返回  Fapi_Error_Invalid .clkValue 的函数、它只在一个位置。  基本上、它会比较基于 Hclk 和 RWAIT 的闪存访问时间(对 Hclk/RWAIT+1进行简单分频、以确保其低于存储在 TI OTP 存储器中的最大闪存频率。  

    奇怪的是、2的 RWAIT 通过、0xF 的 RWAIT 不通过、0xF 应得到较小的数字、因此如果2通过、2以上的也应通过。   

    我将看看能否在我的设置上复制此内容、然后看看代码中发生的错误、看看函数是否有一些问题。

    此致!

    马修