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.

TMS320F28377D: 16-bits access to 32-bits asynchronous device through EMIF

Part Number: TMS320F28377D
Other Parts Discussed in Thread: C2000WARE

Hello,

I have an external asynchronous device which is connected to the EMIF with a 32-bits data bus.
The GPIO are configured accordingly.
The EMIF is configured in order to have a 32-bits access to the asynchronous device (ASYNC_CS2_CR.ASIZE = 2)

We suppose that we have a pointer to a 32-bits data Ptr32 and a pointer to a 16-bits data Ptr16.
These pointers are initialized to the same even address corresponding to an address in the external device.

- When I write a 32-bits data, it works:

*Ptr32 = 0x12345678;     // => 0x12345678 is correctly written in the external device

- When I write a 16-bits data at the address containing initially 0x00000000,  it does not work:

*Ptr16 = 0x5678;        // => 0x56785678 is written in the external device.

The MSB are written with the same value as the LSB instead of being unchanged.

Why the CPU has this behavior ? Is it a bug or a configuration problem ?

Thanks for your help

Best regards.