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

TMS570LS3137, FEE, 写操作,写817次后写入失败,状态BUSY

Other Parts Discussed in Thread:TMS570LS3137

使用的TMS570LS3137的FEE功能时,遇到了一些问题。

现在的现象是:

1、单独测试读功能 TI_Fee_ReadSync(), 返回值一直为E_OK;

2、单独测试写功能 TI_Fee_WriteSync(), 在连续写817次后,该函数会返回E_NOT_OK,然后读取状态为BUSY,间隔一会在读取状态还是为BUSY;

3、在检测状态为BUSY后,重新初始化FEE,就可以接着进行写操作,但是又是再连续写816次后重复现象2。

初始化参考了HCG中的程序,HCG配置如下图所示:

测试的程序如下:

int main(void)
{uint16 pos_No = 0;uint16 read_pos_No = 0;

eepromInit();
while (1){sciPrintf("\n->write %d", pos_No);eepromWrite(2, (uint8 *)&pos_No);TI_Fee_ReadSync(2, 0, (uint8 *)&read_pos_No, 2);sciPrintf("\n->read %d", read_pos_No);delay_ms(300);pos_No++;} } uint8 eepromWrite(uint16 block, uint8 *data) {Std_ReturnType error = E_OK;TI_FeeModuleStatusType status;error = TI_Fee_WriteSync(block, data);if (error != E_OK){status = TI_Fee_GetStatus(0);printEEPROMStatus(block, status);eepromInit();}return error; } void printEEPROMStatus(uint16 block, TI_FeeModuleStatusType status) {switch (status){case UNINIT:sciPrintf("UNINIT");break;case IDLE:sciPrintf("IDLE");break;case BUSY:sciPrintf("BUSY");break;case BUSY_INTERNAL:sciPrintf("BUSY_INTERNAL");break;default:break;} }

希望TI工程师能解答探讨一下,谢谢。

Susan Yang:

很抱歉,由于手边没有这个板子,暂时不好测试。

我已经询问了美国工程师,请您跟踪下面的链接

e2e.ti.com/…/918635

,

kevin Yang:

,

Susan Yang:

已经有相关回复了,请您查收一下

e2e.ti.com/…/3398193

,

kevin Yang:

好的,谢谢,已经解决了我的疑惑。

,

user1658391:

我也是用了你的程序,测试出817次之后就busy了,我改用TI_Fee_WriteAsync(block, data)函数,读出来的数始终是0,请教一下是什么情况?您测试没问题的demo能借我学习一下吗

,

kevin Yang:

如果用了Async,需要添加如下代码,具体可以参考TI提供的历程。

TI_FeeModuleStatusType eeprom_status;do{// DBG_PRINTF(". ");TI_Fee_MainFunction();delay();eeprom_status = TI_Fee_GetStatus(0);}while(eeprom_status != IDLE);

,

user1658391:

好的,谢谢!

,

user1658391:

顺便请教一下,这个模拟的eeprom是否只支持block写入?能否单字节写入?

,

kevin Yang:

我看了提供的函数,写只有按照block写。
读倒是可以按照字节读。

,

user1658391:

我测试EEPROM读写的时候,用官方的例程,注释掉
/* Invalidate a written block */
// TI_Fee_InvalidateBlock(BlockNumber);
// do
// {
// TI_Fee_MainFunction();
// delay();
// Status=TI_Fee_GetStatus(0);
// }
// while(Status!=IDLE);

/* Format bank 7 */
// TI_Fee_Format(0xA5A5A5A5U);
理论上,写入的数据应该 可以掉电不丢失。
可是debug的时候发现,写入数据后,通过memory broswer查看,如果执行restart命令,eeprom中的数据不丢失,但是如果stop再重新debug,进入main函数后,再通过memory broswer查看,地址中的数据全部恢复成了0xff。
请教一下这是什么问题?

,

kevin Yang:

没遇到这样的问题额,我这边帮不了你。

赞(0)
未经允许不得转载:TI中文支持网 » TMS570LS3137, FEE, 写操作,写817次后写入失败,状态BUSY
分享到: 更多 (0)