Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20703 Discussions

Micron Nand Flash program operation not possible when ECC is enabled.

Altera_Forum
Honored Contributor II
1,578 Views

Hello.. I am using Micron nand flash 16GB device. I have successfully programmed it and am able to read the values from nand flash. But after programming when I check the status whether it is successfully programmed or not, the status register shows there is some error in programming. This happens only when I enable ECC. If I disable the ECC it works cool! 

Any advice is welcome..
0 Kudos
6 Replies
Altera_Forum
Honored Contributor II
599 Views

What bit width? Do you have the extra bits needed for ECC? If so, are they programmed with the correct values?

0 Kudos
Altera_Forum
Honored Contributor II
599 Views

Nand flash is 8 bit device. I am sending the values that has to be written to it through custom component (nios 2 soft core processor).  

If I enable the ECC 2100 bytes can be written by me, rest 12 bytes will be taken by ECC module to write the Error code. 

I am able to see all these values using signal tap. During read operation too, i can see that the ECC codes are matching so that i can say, no error is occuring during read and write. 

But, as I am still testing this module, I purposly introduced error and am trying to check the ECC.  

Once I enable ECC module, after programming the nand flash, the status register shows programming is not successful.
0 Kudos
Altera_Forum
Honored Contributor II
599 Views

8 bits is not wide enough to use ECC. The ECC circuit stores additional data along with the 8 bits. I don't remember how many you need for 8 bit ECC, but it is at least 10 bits. Boards that use ECC have wider data widths to accommodate the ECC bits (e.g. 32 data bits + 4 ECC bits => 36 bit wide memory).You can't make ECC work for flash on this board because you don't have the extra data width.

0 Kudos
Altera_Forum
Honored Contributor II
599 Views

Hello Galfonz! It is of 8 bits. But, 12 bytes of memory is reserved for ECC when ECC is enabled. If ECC is disabled, this 12 bytes of memory is also taken by the Nand flash controller and not by ECC controller.  

I'm stuck at the same problem, the status register is not showing that 'program' operation is successful if I enable ECC.
0 Kudos
Altera_Forum
Honored Contributor II
599 Views

What chip are you using? I'm not aware of any micron flash chips that are 12 bits wide (only 8 or 16). If your chip has an extra area for ECC associated with each block, the Altera system doesn't know about it. See your flash chip's data sheet on how to program that.

0 Kudos
Altera_Forum
Honored Contributor II
599 Views

I am using 29f16g08faa. I actually said it is of 8 bits and 12 bytes of memory is reserved for ECC when ECC is enabled.  

yeah.. I will check the datasheet and try again. 

Thank you!
0 Kudos
Reply