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.

EMIF16 Configuration

Other Parts Discussed in Thread: TMS320C6678

Hi,

I have a TMS320C6678 EVM. I was trying to configure the EMIF16 registers and study the timing diagram on a logic analyzer. However, it seems like changing the values of the registers does not affect the write setup, write strobe and write hold timing. The output that I got on the logic analyzer is always consistent at the default value regardless of whatever configuration I put. I am probing the EMIF16 from the 80-pin header on the EVM, The pins that I probed are namely EMIFD0 EMIFD1 EMIFD2 EMIFD3 EMIFWEZ. A portion of the code to configure the registers are attached below. Let me know if I am doing something incorrectly or I missed out certain parts. Thank you.

    *(Uint32*)0x20C00008 |= 0x80000000;  // Disable unused internal EMIF feature

    // Little Endian mode
    CSL_FINS(EMIF16_REGS.RCSR, EMIF16_RCSR_BE, 0);

    // enable 16-bit mode
    CSL_FINS(EMIF16_REGS.A1CR, EMIF16_A1CR_ASIZE , 1);

    /*  FOR CHIP SELECT 0  */
    EMIF16_REGS.A0CR = (0                        
              | (0 << 31)     /* selectStrobe */ 
              | (0 << 30)     /* extWait */ 
              | (1 << 26)     /* writeSetup  12 ns */ 
              | (3 << 20)     /* writeStrobe 24 ns */ 
              | (0 << 17)     /* writeHold    6 ns */ 
              | (1 << 13)     /* readSetup   12 ns */ 
              | (7 << 7)      /* readStrobe  48 ns */ 
              | (0 << 4)      /* readHold     6 ns */ 
              | (1 << 2)      /* turnAround  12 ns */ 
              | (1 << 0));    /* asyncSize   16-bit bus */ 

       /* Set the wait polarity */
          CSL_FINS(EMIF16_REGS.AWCCR, EMIF16_AWCCR_WP0, CSL_EMIF16_AWCCR_WP0_WAITLOW);
          CSL_FINS(EMIF16_REGS.AWCCR, EMIF16_AWCCR_CE0WAIT, CSL_EMIF16_AWCCR_CE0WAIT_WAIT0);
          EMIF16_REGS.AWCCR = (0x80            /* max extended wait cycle */ \
            | (0 << 16)     /* CE0 uses WAIT0 */    \
            | (0 << 28));  /* WAIT0 polarity low */ \ 

  • Can you share the snapshot of your write transaction showing the setup/strobe/hold for different timing values? Please also probe the chip select pin when you take the snapshot.

    Can you also clarify what you mean by "default value"?