Forum Discussion
6 Replies
- Altera_Forum
Honored Contributor
What bit width? Do you have the extra bits needed for ECC? If so, are they programmed with the correct values?
- Altera_Forum
Honored Contributor
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. - Altera_Forum
Honored Contributor
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.
- Altera_Forum
Honored Contributor
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. - Altera_Forum
Honored Contributor
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.
- Altera_Forum
Honored Contributor
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!