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.

EMIF write 16-bit with 32-bit address range using asynchronous mode for TMS320F2377s

Other Parts Discussed in Thread: TMS320F28377S

Hi,

I am currently facing an issue with EMIF1 write (16-bit) on TMS320F28377S with a DPRAM with Asynchronous interface.

When i am trying to write into @0x00300000 (EM1CS3) a value 0x0001 and @0x00300001 to a value 0x00002 , However the write operation performing as 32-bit write, instead 16-bit operation mode and result is on both the address 0x0002 value only Written. 

So i am unable to write 16-bit data into EMIF1 in the single location @0x0030000. Where EMIF is accessing 32-bit location where i am trying to access 16-bit.

Where, i am able to read on 16-bit mode.

Please find the configuration and test code.

ASYNC_WCCR = 0x10000000h (WP0 - High, Max_Ext_Wait - 0x00h)

ASYNC_CS3_CR.ASIZE = 0x01h (16-bit)mode

ASYNC_CS3_CR.SS = Normal Mode

ASYNC_CS3_CR.EW = Disable

W_HOLD,W_SETUP,TA is correct.

#define CS3_START_ADDR 0x00300000u

volatile uint16_t *uiXMEM_wps_left;

uint16_t uiLoopCount;

uiXMEM_wps_left = (uint16_t *)(CS3_START_ADDR);

for (uiLoopCount=0x00u; uiLoopCount<uiDataLength;uiLoopCount++)
{

*uiXMEM_wps_left = (uint16_t)uiTxBuffer[uiLoopCount];
uiXMEM_wps_left += 2;

}

Regards

Chandra