The CKE pad can be forced to tri-state when the CTRL_CORE_SMA_SW_0[0] CKE_GATING_CTRL bit is set to 0x1. This functionality facilitates fast resume by allowing a strong external pull-down resistor to hold the CKE memory pad low thus keeping the SDRAM in self-refresh while the device is completely powered off. Figure 15-51 and the following example sequence provide more details how this functionality can be used:
- When device is running configure EMIF for self refresh. As a result it drives CKE low.
- Disable VTT supply (can be controlled through a device GPIO pad).
- Ramp down all power rails to the device. When power is already off, EMIF doesn't drive CKE low. The external pull-down does this instead. Note that only VTT must be off. All SDRAM supplies (including VREF) must be on.
- After these three steps the device is completely powered off and the SDRAM is in self-refresh. The waking-up from this state is system specific.
- To resume from self-refresh the CKE pad must be forced to tri-state by writing 0x1 to one of the CKE_GATING_CTRL bits previously mentioned. Then EMIF must be configured for self-refresh so that its state becomes consistent with the actual SDRAM state.
- Write 0x0 to the corresponding CKE_GATING_CTRL bit to release CKE driver from tri-state. This allows EMIF to take control over CKE which is now driven low as EMIF has already been configured for self-refresh.
- Enable VTT supply.
- Access the SDRAM to bring it out of self refresh and resume application.
Note: In case the device is powered off but the SDRAM is in self-refresh (as previously described) it must be taken into account that the SDRAM RESET# signal has to be controlled externally to preserve the SDRAM contents. This is needed as ddr1_rst signal is not controlled by the CTRL_CORE_SMA_SW_0 register and therefore cannot be used.