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.

TMS320C6746: TMS320C6746 EMIFA interfacing with MT29F1G08ABAEAWP_E NAND Flash memory

Part Number: TMS320C6746
Other Parts Discussed in Thread: OMAPL138

I have interfacing TMS320C6746 with Micron NAND Flash MT29F1G08ABAEAWP_E,

NAND is connected to CS3, 

I tried to read flash ID information using READID coommand,but it is not working, also flash not responded to RESET command 

can anyone tell me how to properly setup the EMIFA for 8 bit NAND 

Please help to know how to set up the timing information  in the void *hNandTimingInfo;

below from nandlib.h 

typedef struct _NAND_CTRL_INFO_
{
/* Function to initialize the NAND controller before accessing the NAND */
NandStatus_t (*CtrlInit)(NandInfo_t *nandInfo);
/* Function to get the wait pin status */
unsigned int (*WaitPinStatusGet)(NandInfo_t *nandInfo);
/* Timing info for the device and the controller */
void *hNandTimingInfo;
/* Base address of the controller */
unsigned int baseAddr;
/* ECC supported by the controller */
unsigned int eccSupported;
/* Wait pin where NAND dev R/B pin is connected */
unsigned int waitPin;
/* Wait pin polarity */
unsigned int waitPinPol;
/* Write protect pin polarity */
unsigned int wpPinPol;
/* Chip select base address */
unsigned int chipSelectBaseAddr[NAND_MAX_CHIP_SELECTS];
/* Chip select region size */
unsigned int chipSelectRegionSize[NAND_MAX_CHIP_SELECTS];
/* Curr chip select in use by the memory controller */
int currChipSelect;
}
NandCtrlInfo_t

  • Hi,

    It looks like you are correctly starting with the StarterWare software  (http://software-dl.ti.com/dsps/dsps_public_sw/c6000/starterware/01_10_04_01/index_FDS.html)

    I recommend starting from the NAND configuration that works with the NAND on the C6748 LC Dev Kit. This board has MT29F4G16ABADAH4 (16-bit) NAND also on EMA_CSn_3. If you have the LCDK board, you can verify that the software works before making it work for your 8-bit MT29F1G08ABAEAWP_E device.

    Make sure ASIZE bit in the  Asynchronous n Configuration Register (CEnCFG) is set to '0' for 8-bit data bus.
    See NandInfo_t nandInfo->busWidth in C:\ti\OMAPL138_StarterWare_1_10_04_01\nandlib\nand_emifa2.c

    For configuring hNandTimingInfo, check out C:\ti\OMAPL138_StarterWare_1_10_04_01\nandlib\nand_emifa2.c:
    writeSetup, writeStrobe, writeHold, readSetup, readStrobe, readHold, and turnAround timings (measured in EMA_CLK cycles). These timings must satisfy the NAND flash datasheet timing requirements.

    Refer to SPRUH80C TRM Figure 18-10. Timing Waveform of an Asynchronous Read Cycle in Normal Mode.
    Refer also to SPRUH80C TRM Section 18.2.5.6 NAND Flash Mode.

    Hope this helps,
    Mark

  • Dear Mark,

    Thanks for the reply,

    NAND flash is working now from example nand in startware