Array Integrity Check

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

Array Integrity Check

跳至解决方案
13,862 次查看
bjrajendra
Senior Contributor I

Hi,

This is rajendranath. I'm using MCP5602P and I had a question regarding this Flash Memory. My questions are

1) During Array Integrity Check, what are the expected results of MISR(0-4) ?

2) I checked the EEPROM Emulation Application Note AN4868 and what I understood is:

Whenever I want to write or overwrite the data, My data format in Flash Memory should contain

[8 Byte ECC Boundary+ID+Size+Data],  Only constraint is, during overwriting the I have to change 16 bit data Is it Right?

Ok, To be more specific to my question,

1) MISR(0-4) contains a 128 bit value + ECC (16 bits). And this 128 bits corresponds to which  address location (in SREC File) ?

 

 

Thanks and Regards,

RAJENDRANATH

1 解答
12,585 次查看
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi,

I hope that the description in this document is clear enough:

https://community.nxp.com/docs/DOC-102571 

In short - MISR is something like checksum.

Offline MISR calculator helps you to calculate the checksum on selected blocks using srecord file.

FlashArrayIntegrityCheck function then calculates the checksum in runtime. If the content of flash corresponds to srecord file then you will get no error from this function. That means everything is OK, the flash contains correct data.

If you will get an error, that means that the content of flash is corrupted - there's something different than in srecord file.

Regards,

Lukas

在原帖中查看解决方案

0 项奖励
回复
13 回复数
12,584 次查看
bjrajendra
Senior Contributor I

OK, Finally I got one document file for Array Integrity test for 5604B. From this I came to know that there are direct files (having all possible function with C_ArrayDriver) which we can import for all MCP56xx projects. I used this, but my project was executing ErrorTrap(returnCode); function immedietly after Flash Array Integrity Check, function call. I used MISR_C90LC and test.bat file for getting the new MISR array and updated those values in the code. So, Finally it means my Flash memory is not good and corrupted. Is it Right? or any corrections I need to make in my code ?  I didn't  initialize the clock yet. Is it necessary to initialize clock for check array Integrity check?

0 项奖励
回复
12,585 次查看
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi,

you do not need to initialize the clocks.

What kind of error code have you got? You can find the explanation of error codes in user manual for SSD drivers...

Regards,

Lukas

0 项奖励
回复
12,585 次查看
bjrajendra
Senior Contributor I

Hi Lukas,

Thanks for your reply, I got Error returnCode: Register GPR3 : $0000B000 and I didn't find any manual for these drivers. Kindly share the user manual, if any.

I wrote a code based on https://community.nxp.com/docs/DOC-102571.

Thanks and Regards,

B J Rajendranath

0 项奖励
回复
12,585 次查看
lukaszadrapa
NXP TechSupport
NXP TechSupport

Here is the package which contains drivers, examples and user manual:

https://www.nxp.com/downloads/en/device-drivers/MPC56XX_C90LC_JDP_SSD_100_DEVD.exe 

Lukas

12,585 次查看
bjrajendra
Senior Contributor I

Hi Lukas,

I just went through all the functions for MCP5602P, But I didn't see any function FlashArrayIntegrityCheck, FactoryMarginReadCheck,FlashECCLogicCheck used in main function. How to understand this particular Array Integrity Check tool?

-- What actually is MISR value? can you briefly explain about it?

-- First I need to run batch file, it will give the new updated MISR array to be passed in the FlashArrayIntegrityCheck function. Is it right? If there is a mismatch, what actually it tells?

Thanks and Regards,

BJ Rajendranath.

0 项奖励
回复
12,586 次查看
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi,

I hope that the description in this document is clear enough:

https://community.nxp.com/docs/DOC-102571 

In short - MISR is something like checksum.

Offline MISR calculator helps you to calculate the checksum on selected blocks using srecord file.

FlashArrayIntegrityCheck function then calculates the checksum in runtime. If the content of flash corresponds to srecord file then you will get no error from this function. That means everything is OK, the flash contains correct data.

If you will get an error, that means that the content of flash is corrupted - there's something different than in srecord file.

Regards,

Lukas

0 项奖励
回复
12,585 次查看
bjrajendra
Senior Contributor I

Hi Lukas,

Suppose my entire Array Integrity Code is sitting in one Flash block. Can I perform Array Integrity test on a same Flash block?

i.e..,  performing Array Integrity Check on the executing code location.

Also would you kindly explain the exact difference (execution) between the proprietary sequence and sequential sequence.

0 项奖励
回复
12,585 次查看
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi,

the code should be executed from RAM memory when performing Array Integrity test.

Proprietary sequence checks read paths more thoroughly, so it take significantly more time.

Regards,

Lukas

0 项奖励
回复
12,585 次查看
bjrajendra
Senior Contributor I

Thanks Lukas,

What will happen, if I do perform Array Integrity from the same block? Will there be any mismatch ?

Also it is mentioned that sequential sequence is particularly used for margin mode. What actually Margin Mode is?

Regards,

BJ Rajendranath

0 项奖励
回复
12,585 次查看
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi,

- What will happen, if I do perform Array Integrity from the same block? Will there be any mismatch ?

- It leads to RWE error.

- What actually Margin Mode is?

- In short - the voltage threshold for flash reading is slightly changed either up or down (can be set by MRV bit). That means you can confirm if the flash cells are erased enough or programmed enough.

pastedImage_1.png

Regards,

Lukas

12,585 次查看
bjrajendra
Senior Contributor I

Hi Lukas,

What I really wanted is to check the flash memory every time MCU got powered up.

I came to know I need to use CRC module, which provides a fast on-chip capability for verifying code and data integrity. Very thanks for your help.

If you have time kindly Help here

Thanks and Regards,

Rajendranath

0 项奖励
回复
12,585 次查看
bjrajendra
Senior Contributor I

Once again thanks Lukas for your patience,

I went through the link you sent, understood the actual theory behind it.

0 项奖励
回复
12,585 次查看
bjrajendra
Senior Contributor I

Hi,

Thanks for your reply, and it seems to be very helpful. I'll go through the manual for proper integration into my code and I'll come back if I have any questions.

Thanks and Regards,

BJ Rajendranath.

0 项奖励
回复