TI中文支持网
TI专业的中文技术问题搜集分享网站

在使用F021 Flash API时操作TMS570时 出现系统时不匹配的问题

大家好,

我在使用F021库操作flash的时候,进行flash擦/写操作时,按照说明文档给的步骤,第一步应该是初始化flash的bank,调用API:Fapi_initializeFlashBanks()。但是在进行这一步的时候,出现了错误,详情如截图所示。返回了错误:Fapi_Error_InvalidHclkValue (failure: System clock does not match specified wait value)。

但是很奇怪的是,明明是一模一样的程序,之前配置好之后也一直正常使用,能够进行正常的读取/擦/写的操作。时间隔了不到两个月,程序跑到Fapi_initializeFlashBanks的时候,便会出错。我的晶振是16MHz,系统时钟之前使用的是160MHz。不知道是不是我的系统时钟配置出现了问题?系统时钟应该如何配置?还是我的代码存在问题?

希望会有人为我解答这个疑惑,非常感谢!

user5888575:

程序会一直卡在 :while(FAPI_GET_FSM_STATUS!= Fapi_Status_Success);
也就是说,flash的擦/写操作失败了,陷入了错误循环。检查原因后发现是因为初始化的时候出错,初始化的返回值不是0(success),而是8(failure: System clock does not match specified wait value)

,

Susan Yang:

请问您现在使用的具体芯片型号是什么?在英文版E2E上有类似的问题,您可以参考一下或者发帖询问(QJ Wang是相关的资深工程师)

e2e.ti.com/…/792231

e2e.ti.com/…/686532

,

user5888575:

我使用的是TMS570LS0914PGE, 另外刚刚有一块测试用的开发板是TMS570LS1224PGE, 两块板子都是16mhz的晶振 160mhz的系统时钟1224板可以用一样的程序擦写flash,而0914突然不行了

,

Susan Yang:

参考e2e.ti.com/…/807681

1. system clock: make sure the sys_CLK in bl_config.h is same as the system clock generated from PLL (HCLK)
2. LS0914 has smaller flash than LS1224. Please define the struct of flash sectors in flash_defines.h

,

user5888575:

您好,我确认PLL和SYS_CLK都是160,这一点没有问题。在操作0914时,所选的flash sector与1224没有冲突,这一点也没有问题。
只是程序在初始化时候返回错误,并且卡在while(FAPI_GET_FSM_STATUS!= Fapi_Status_Success); ,有没有什么方法可以检测?

,

Susan Yang:

由于我手边没有570的板子,所以不好测试。我将问题放到了英文版E2E上,一般明天就会有工程师回复,您可以跟踪下面的帖子

e2e.ti.com/…/908922

,

user5888575:

非常感谢您,另外我想知道,可以直接读寄存器知道HCLK的值,以检验我的芯片配置是否正确吗?

,

Susan Yang:

RWAIT and EWAIT register values must be set before calling flash bank init API: Fapi_initializeFlashBanks()

For HCLK=160MHz, the RWAIT=3, and EWAIT=9, flash address wait state is 1     –> FRDCNTL = (3 << 8) | (1 << 4) | 1.

and EEPROM_CONFIG = (9 << 16) | 2; 

,

user5888575:

非常感谢您Susan Yang女士,您帮助我解决了初始化BANK的问题

,

Susan Yang:

谢谢您对TI产品的支持!很高兴能帮到您!

,

Susan Yang:

谢谢您对TI产品的支持!很高兴能帮到您!

赞(0)
未经允许不得转载:TI中文支持网 » 在使用F021 Flash API时操作TMS570时 出现系统时不匹配的问题
分享到: 更多 (0)