Hi-
I'm currently running code on a C6748 chip and am doing experiments in putting the chip into Deep Sleep. I'm also doing power measurements to see how much power is being drawn from the SOM when I'm in this power state. I'm still seeing a significant amount of power being drawn by the SOM even in deep sleep mode, so I wanted to test shutting down the DDR memory while being in sleep mode to see if it has much of an effect. I've been reading sprugj4.pdf which is the "DDR2/mDDR Memory Controller" User Guide and it has a section that describes how to do this. The section talks at a bit too abstract of a level for me to track down all the correct registers and bit definitions. Does anyone have a "For Dummies" code example that does what the user guide describes? (I've pasted it below)
To achieve maximum power savings VCLK, MCLK, 2X_CLK, DDR_CLK, and DDR_CLK should be gated off. The procedure for clock gating is described in the following steps. 1. Allow software to complete the desired DDR transfers. 2. Change the SR_PD bit to 0 and set the LPMODEN bit in the DDR2 SDRAM refresh control register (SDRCR) to enable self-refresh mode. The DDR2/mDDR memory controller will complete any outstanding accesses and backlogged refresh cycles and then place the external DDR2/mDDR memory in self-refresh mode. 3. Set the MCLKSTOPEN bit in SDRCR. This enables the DDR2/mDDR memory controller to shut off the MCLK. 4. Poll the PHYRDY bit in the SDRAM status register (SDRSTAT) to be a logic-low indicating that the MCLK has been stopped. 5. Program the PSC to disable the DDR2/mDDR memory controller VCLK. You must not disable VCLK in power-down mode; use only for self-refresh mode (see notes in this section). 6. Program PLLC1 registers to stop 2X_CLK to DDR2/mDDR memory controller, as well as DDR_CLK and DDR_CLK. You must note disable 2X_CLK in power-down mode; use only for self-refresh mode (see notes in this section). For information on programming PLLC1, see your device-specific
System Reference Guide