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.

[参考译文] TMS570LS1227:收费闪存库初始化API返回无效时钟错误

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1089205/tms570ls1227-fee-flash-bank-initialization-api-returns-invalid-clock-error

部件号:TMS570LS1227
主题中讨论的其他部件:HALCOGEN

早上好。

fee_init()未正确初始化。 我发现其他错误来自此内部函数:

IF ((Fapi_initializeFlashBanks ((UINT32) TI_Fee操作频率))=Fapi_Status_Success)

它 返回"Fapi_Error_InvalidHclkValue"。 传递参数"TI_Fee操作频率"值为160.000F,由HalCoGen自动设置。 我使用的芯片是PGE版本(LQFP封装)。 根据您的数据表(SPNS192B–2012年10月–2015年2月修订,第46页),启用管道模式时,最大频率为160MHz,且ewait设置为3。 在HalCoGen中所有设置都正确(如下面的打印屏幕)

为了确保我设置了正确的ewait状态,我在调用fee_init()函数之前添加了您的代码:

const uint8_t flashDataWaitState = 3;

FAPI_WRIT_EWAIT (flashDataWaitState);

要使Fee功能正常工作,我必须手动将 TI_Fee操作频率”值设置为150.000F,然后一切都正常。 但下次我重新生成HalCoGen时,同样的问题将 再次出现。

您能否告诉我您的Flash API为何拒绝正确的频率?

谢谢你。

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

    您好,我们的专家在4月7日之前不在办公室。 请期待回复延迟。

    此外,请参阅此常见问题解答: software-dl.ti.com/.../index.html

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

    感谢您的回复。

    您的专家是否对此问题有任何解释?

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

    您好,Michael:

    EWAIT=3正确。 如果PLL=160,且HCLK=160MHz, TI_fee_operation_frequency=160应该起作用。 我没有检查TMS570LS1227 PGE封装,而是检查了TMS570LS1227ZWT封装。

    正确,如果您将 TI_FICE_OTIFY_FREQUENCY更改为150.000F,则每次HALCoGen更新其代码时都需要手动更新它。

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

    您好,QJ。

    问题在于:为什么我设置EWAIT=3, PLL=160和HCLK=160MHz, TI_FEA_OECTION_Frequency=160,然后设置FAPI_initializeFlashBanks(UINT32)TI_FEA_OECTION_Frequency)返回"FAPI_Error_InvalidHclkValue"?

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

    您好,Michael:

    我在具有PLL-HDK=160MHz的TMS570LS1227ZWT和TMS570LS1224PGE上进行了几次测试,但我无法产生此问题:

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

    请仔细检查等待状态是否已 正确编程到FRDCNTL寄存器和EEPROM_CONFIG寄存器:

    FRDCNTL寄存器 :RAWIT=3, ASWSTEN=1

    eeprom_config寄存器:EWAIT=3

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

    感谢您的详细回复。

    我发现我们的自定义初始化文件将错误地将RWAIT设置为2,从而取代了“system.c”文件中的HalCoGen RWAIT设置。

    现在,EWAIT和RWAIT已正确设置为3,您的闪存API接受160MHz频率输入。

    再次感谢您并致以诚挚的问候。