Other Parts Discussed in Thread: HALCOGEN
I have an application that uses the ASYNC EMIF on the TMS570 and setup several simple tests to test the performance of the EMIF interface. The tests just start a timer, does a EMIF transaction over 1k bytes, and then stop the transaction after it is finish, both with direct EMIF access and a DMA -> EMIF access. The configuration settings of the ASYNC EMIF were originally generated with HALCoGen, and looking at the TRM, the settings and performance for it are what I would except.
However, I was recently trying to test Synchronous EMIF, SDRAM, and noticed that I can actually get a slight performance increase (~5%) over the ASYNC interface if I set the SDCR register to 0 and unlocking the field with bit 8. Generating some HalCoGen code also does this same thing:
emifREG->SDCR = (uint32)((uint32)0U << 31U)| (uint32)((uint32)1U << 14U)| (uint32)((uint32)0U << 9U)| (uint32)((uint32)1U << 8U)| (uint32)((uint32)0U << 4U)| (uint32)((uint32)elements_256);
Reading the TRM about the SDCR field, it says that a "0" for bit 11-9 are reserved. https://www.ti.com/lit/ug/spnu563a/spnu563a.pdf#page=831
What exactly is a 0 in bit 11-9 of SDCR doing? And does it make sense that the ASYNC EMIF speeds would increase from it?