S32K148 FlexNVM FTFC RDCOLERR Report

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

S32K148 FlexNVM FTFC RDCOLERR Report

1,683 次查看
TerryDuPower
Contributor III

Dear Supporters,

       I use S32K 148 FlexNVM as a  Data flash, the driver (MCAL )is generated by EB.

After severals time earse and write, I get a error(RDCOLERR). 

TerryDuPower_0-1656576817206.png

Could you give me some help? 

 

0 项奖励
回复
7 回复数

1,676 次查看
danielmartynek
NXP TechSupport
NXP TechSupport

Hello Jianfeng Liu,

This is explained in the description of this flag.

danielmartynek_0-1656666285103.png

During the programming / erasing FTFC operation on the DFlash block, there must be no other access to the block.

Please make sure that interrupt routines do not read the block, there is no DMA access to the block, etc.

 

BR, Daniel

 

 

0 项奖励
回复

1,656 次查看
TerryDuPower
Contributor III

Hi Daniel,

Thanks for your reply.

Before erase and write FlexNVM, I already disable interrupt, and no DMA to this block. But it still get FTFC RDCOLERR.

TerryDuPower_0-1656925943940.png

 

0 项奖励
回复

1,639 次查看
cuongnguyenphu
NXP Employee
NXP Employee

@TerryDuPower ,
Seems that you called Fls_MainFunction but not wait until the status back to IDLE before call for next time, could you try this way:

cuongnguyenphu_0-1657187798133.png

For every step to call command to Erase or Write Fls, you need to wait until the main function has done

标记 (1)
0 项奖励
回复

1,631 次查看
TerryDuPower
Contributor III

@cuongnguyenphu 

Thanks for your support!

I tried wait MEMIF_IDLE before  Fls_MainFunction(),  but still get FTFC RDCOLERR.

 

while(MEMIF_IDLE != Fls_GetStatus())
{
    Fls_MainFunction();
}

0 项奖励
回复

1,608 次查看
cuongnguyenphu
NXP Employee
NXP Employee

SO, how's about Erase function ? It's need to wait for Idle state also

0 项奖励
回复

1,605 次查看
TerryDuPower
Contributor III

TerryDuPower_0-1657518161642.png

@cuongnguyenphu  Actually, I add both earse and write. It still get FTFC RDCOLERR.

0 项奖励
回复

1,587 次查看
cuongnguyenphu
NXP Employee
NXP Employee

Can you remove the line: for (idx =0; idx < (FBL_DATA_SIZE / FLS_WRITE_DOUBLE_WORD); idx++)
In my view, only 1 while loop is enough to write data to Fls sector, despite the data size of Data to be write into Fls. 

cuongnguyenphu_1-1657705727260.png

 

 



0 项奖励
回复