S32K148 FlexNVM FTFC RDCOLERR Report

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

S32K148 FlexNVM FTFC RDCOLERR Report

1,685件の閲覧回数
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,678件の閲覧回数
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,658件の閲覧回数
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,641件の閲覧回数
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,633件の閲覧回数
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,610件の閲覧回数
cuongnguyenphu
NXP Employee
NXP Employee

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

0 件の賞賛
返信

1,607件の閲覧回数
TerryDuPower
Contributor III

TerryDuPower_0-1657518161642.png

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

0 件の賞賛
返信

1,589件の閲覧回数
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 件の賞賛
返信