This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM3505AZERA GPMC Programming

Hello,

For our customers commercial video processor they are using an AM3505AZERA processor interfacing to Micron NAND flash (MT29F4G16ABADAH4:AIT:D). Thay have had a recent issue come to light where the flash is having bit flips occur after long periods of not being reprogrammed. This is found both in products that are running and products that are in storage. They have already explored the possibility of this being an ECC issue, and now they are entertaining the idea that our flash programming times are close enough to work but not long enough to fully charge cells.  The key engineer has investigated this a little bit and they are using the following values for GPMC initialization:

 

WRITE         GPMC_CONFIG1_0       0x00001800

WRITE         GPMC_CONFIG2_0       0x00080800

WRITE         GPMC_CONFIG3_0       0x00080800

WRITE         GPMC_CONFIG4_0       0x06000600

WRITE         GPMC_CONFIG5_0       0x00070808

WRITE         GPMC_CONFIG6_0       0x000003cf

WRITE         GPMC_CONFIG7_0       0x00000848

 

(^ default initializations for the AM3517EVM kit)

 

I have an issue with this because bits 12:8 of GPMC5 is the write cycle time as you can see above this is being programmed to 8 which at 600 Mhz is only 13.33 ns, the micron datasheet states a minimum 20ns.

 

I have done a considerable amount of browsing the e2e forums and app notes and programming guides provided by TI, I have also calculated what I think the timings should be, but I could be way off base. As this is pretty mission critical we are hestitant to make any changes without a “smoking gun”, however, our current reliability is unacceptable. I am hoping that there is a TI engineer who can help me get that smoking gun by providing the GPMC initialization values that are needed to be ONFI 1.0 compliant:

 

Write Cycle Time

Read Cycle Time

CS Low Time

OE Low Time

OE High Time

WE Low Time

WE High Time

Data Latch Time

 

What would be even better is the actual register initializations.

 

To help things along I have attached the ONFI standard and the datasheet for the flash we are using.m60a_4gb_8gb_16gb_ecc_nand.pdfONFI_1_0_Standard.pdf

  • Hi Alexander,

    Alexander Coffin said:
    now they are entertaining the idea that our flash programming times are close enough to work but not long enough to fully charge cells.

    I don't think that internal NAND cell programming timings are in any way related to GPMC timings.

    Alexander Coffin said:
    I have an issue with this because bits 12:8 of GPMC5 is the write cycle time as you can see above this is being programmed to 8 which at 600 Mhz is only 13.33 ns, the micron datasheet states a minimum 20ns.

    All GPMC timing calculations are based on the GPMC functional clock, which is 100MHz max.

    The timing parameters you require should be taken from the NAND datasheet, that they use.

  • From Customer:

    TI “All GPMC timing calculations are based on the GPMC functional clock, which is 100MHz max.

    The timing parameters you require should be taken from the NAND datasheet, that you use. “

     

    Is there an application note or tutorial on how to do this? I have looked through the technical reference manual section 9.1.6 which is a nice tutorial for NOR flash, however I am struggling to cross reference the memory side AC Characteristics to anything in the ONFI standard. I would like to see how TI arrived at the values that are being used in its flash tool

  • NAND programming is covered in section 9.1.5.14