> 1) I have a quite sophisticated power sequencing scheme, in which I can easily
> decide power supply ramp up speed. So I'll apply a 30 ms power-up time to 3.3V.
> Then I will ramp-up 1.5V with the same speed.
That won't work.
The critical thing is to get the oscillator running BEFORE the pins come out of tri-state.
It took weeks to get the details of what voltages feed into the "tri-state control".
Here's the incomplete table:
SDVDD IVDD Vtrip Max Vtrip Min Hysteresis3.6 Rising .980 .785 .1403.6 Falling .723 .552 .1401.6 Rising .695 .530 .1591.6 Falling .373 .117 .159Rising 0.0 .450 .115 N/A
So the trip point depends on SDVDD and IVDD and the "trip point" for one of the rails changes depending on the other rail.
But the above table is incomplete as there is another monitor in the chip on EVDD that trips somewhere between 2.0V and 2.8V, with a typical measured 2.5V on our chips.
The pins come up "three way random", meaning either output high, output low or INPUT (yes, the outputs can come up as inputs) with tri-state overrides from the SDVDD, IVDD and EVDD as above. Here's a direct quote from Freescale:
In order to prevent possible unknown states on the pads, the goal is to have IVDD at least at minimum operating voltage and the oscillator toggling before EVDD reaches 2.0V. If you do that the digital logic will be initialized before the pads are enabled.
In order for the oscillator to start, IVDD has to be at least at 0.7V and VDD at least 1.7 (although Freescale won't guarantee the oscillator below 3.0V). Very strangely, IVDD has to be at that level for the oscillator to START, but it will keep going with IVDD at zero during a brownout. Weird logic. I shouldn't have to know this!
If you need a guarantee:
> So you can actually start up the crystal if you power OSC_VDD and IVDD.> So a second option is to have two 3.3V rails--one for OSC_VDD and a> separate supply for EVDD. That way you can get the oscillator> running before EVDD reaches the 2.0V threshold.
"OSC_VDD" is one of the undocumented power pins. You can find it in any of the three reference schematics, but not in the Reference Manual or Data Sheet.
So you want a slow ramp on 3.3V and the 1.5V LDO regulator permanently enabled so it follows the 3.3V ramp. IVDD has to get to a working level before the 3.3V gets to 2.0V or the oscillator won't be going. If you take a worst-case 10ms oscillator start, then you need 10ms between your 3.3V being at 1.7V (osc start) and 2.0V (pin un-tri-state).
> I have measured the impedance of SDRAM chip selects during reset, and they seems to be in high impedance.
As soon as EVDD crosses about 2.5V the outputs are enabled. Some chips wake up driving this pin high (disabled) but different chips can wake up the opposite way. The SDRAM chip ignores "chip select" until initialised properly, half way through your boot. It takes far more notice of the floating SD_CKE and SD_CLK signals during the ramp-up, and these are the ones that set the stage for the "random" outputs of the controller to then lock it up. Having the chip select high won't stop this. Pulldowns on SD_CLK and SD_CKE seem to help. I have about 100 CRO traces on file of this sort of thing.
> 2) I have an external reset controller, capable to keep reset asserted
> for about 200 ms after power-up. This could give enough time to the
> SDRAM controller to initialize correctly, as the crystal oscillator can
> freely start well before the boot sequence.
You need the crystal running to reset the chip internals before it enables its output pins. The "random pin states" can make the SDRAM drive the data bus. In your case that could turn the crystal off and you'll never get a clock and never get out of that state. If the FLASH chip-selects wake up "random" too (I've never checked this as we're not using RCON) then they could stop your clock too. It doesn't matter how long the reset is, if the crystal isn't running you're stuck.
> Last, I will use bleeder resistors on power supply, ... I can have probably SDRAM completely turned off.
We did the same, but "completely turned off" is no guarantee. The SDRAM Controller can still be random, even from a cold power-up and the SDRAM can then still wedge.
> Of course up to now I just have a single brand of SDRAM on my prototype board.
Check your private messages.