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 */ \