Programming mDDR/DDR2 EMIF on OMAP-L1x/C674x
Often, when it comes to programming the mDDR/DDR2 memory controller, customers reuse the values provided in an EVM GEL file. This can lead to read/write issues as the GEL file timings are specifically tuned for a particular memory chip and clock speed. The mDDR/DDR2 memory controller register settings must be tuned for the customer's specific use case.
Configuring mDDR/DDR2 Memory Controller
The mDDR/DDR2 memory controller contains a set of registers which must be programmed according to the requirements of the memory chip being used. To determine the values to program into these registers you must read through AC timing information given in the memory chip data sheet. The mDDR/DDR2 memory controller user guide contains a chapter with step by step instructions on how to calculate the values for the mDDR/DDR2 memory controller. A spreadsheet was created to aid in that calculation. You can download the spreadsheet here.
To use the spreadsheet plug in the memory-specific timings into the green cells. The spreadsheet will automatically generate the values for the mDDR/DDR2 memory controller registers. It will also automatically populate some register fields when you select between DDR2 and mDDR. The "memory clock frequency" should be programmed to reflect the frequency at which the DDR bus will run (i.e. not the max frequency of the RAM itself).
NOTE: The function DEC2HEX is used during the register value calculation. If you see an error where this function is used, you will have to install the Analysis ToolPak in Excel. Go to Tools>Add-Ins and select Analysis ToolPak from the options listed.
The spreadsheet was created with minimal functionality. Suggestions for future improvements include:
- Implementing checks on the register field calculations to guard against overflows and illegal values.
- Adding pull down lists to some options like "page size" instead of requiring user to enter specific values.
- Rev 3 & 4 - Added a separate sheet which will input a register value and decode that value into the register bit fields. Two values for the same register are entered side by side, for quick comparison of the two register values at the same time. This is helpful when you want to quickly determine what is the difference between say an EVM GEL file configuration and your custom configuration.
- Rev 5 - For mDDR, tRTP calculation formula has been updated.
- OMAP-L138 DSP+ARM Processor Technical Reference Manual, Chapter 15 "DDR2/mDDR Memory Controller"
- AM1808/AM1810 ARM Microprocessor Technical Reference Manual, Chapter 14 "DDR2/mDDR Memory Controller"
- AM1806 ARM Microprocessor Technical Reference Manual, Chapter 14 "DDR2/mDDR Memory Controller"
- AM1802 ARM Microprocessor Technical Reference Manual, Chapter 13 "DDR2/mDDR Memory Controller"
- TMS320C6748 DSP Technical Reference Manual, Chapter 13 "DDR2/mDDR Memory Controller"
- TMS320C6746 DSP Technical Reference Manual, Chapter 13 "DDR2/mDDR Memory Controller"
- TMS320C6742 DSP Technical Reference Manual, Chapter 12 "DDR2/mDDR Memory Controller"