Hello,
for our i.MX8M HW design, we decided to use external 1.8V oscillators instead of mere crystals for the 25MHz and 27MHz clock generation. We applied them to pins XTALI_25M and XTALI_27M, which seems to be a problem: the processor does not come up on the JTAG debugging interface.
Some tests with the i.MX8M evaluation board reproduced the behaviour. When we attached the oscillator clocks to XTALO_25M and XTALO_27M though, the processor came up and booted fine.
So:
- Can anybody give me a hint, how to understand this behaviour?
- Is there a way to get the chip working without having to connect to XTALO_xxM pins? (due to layout restrictions, XTALO_25M and XTALO_27M not accessible on current hardware)
- Can we apply a resistor or capacitor divider or something like that?
Any hints warmly welcome ;-)
Thomas.
Just for the records: We got a working solution by reducing the external oscillator's output swing to approx. 700mV. Further investigation to follow...
It would be nice to get a confirmation on this behaviour ;-)
Hello Thomas Doerfler,
I will confirm but generally you should be able to use XTALI and leave XTALO floating.
I will double check but the output swing for the oscillators should follow the PADs voltage levels.
That would be:
V high between 0.7 X VDD and VDD which would translate to 1.26 to 1.8V
V low between 0 and 0.2 VDD which would translate to 0 to 0.36V
This would translate to a swing of at least around 900mV, which is similar to the voltage you are testing but it may be a good idea to increase the swing a little bit and to make sure it reaches the low and high voltage.
Regards,
Hello gusarambula,
thank you for your answer. What you are describing covers more or less what I expected: Applying an external oscillator to the XTALI with a voltage swing of 1.8V should be more than sufficent to feed the clock into the chip.
But at least our results showed that this swing would be too high. Actually we now have added a 1/3 resistor divider to the output of the external oscillator (resulting in a 600mV signal swing) with a decoupling capacitor added.
It would be nice if you could give me more insight on what are the limits and requirements...
Kind regards,
Thomas.
What were the values and topology you ended up with for your attenuate and coupling circuit?
I too can reproduce a failing evk when an oscillator is plugged directly into XTALI. And as your experience shows, it works if I plug into XTAL0.
Hi Benjamin,
sorry for the late reply, but are currently finishing our design (succfessully, yeah!).
When we investigated the problem we saw a remark in the i.MX8 documentation (electrical specs?), which pointed out the a crystal using the internal oscillator will be regulated to have a 180-300mV swing, so the internal oscillator adapts its amplification factor. That's what made us reduce the swing of the external oscillator from 1.8V to (I guess) 300mV with a resistive divider (to GND) and, after that divider, a decoupling capacitor (100nF is ok) to the input pin of the i.MX8.
This let our prototypes reliable boot up.
Actually this problem cost us 10 days, so the first thing we changed was replacing the oscillator with a crystal in the next revision.
BTW: another problem we hit: The oscillators we used had a rather long startup time (>30ms). This interfered with the i.MX8 powerup sequence, so we had to delay a certain step in this sequence.
Sorry for being so unspecific on actual values. I just typed this in out of my mind. Next monday when I am back in the office I may have forgotten you're waiting for some ideas...
Kind reqards and good luck!
Thomas.
I ended up throwing together a little test circuit between the oscillator output and XTALI, resistor divider (100 Ohm and 52.3 Ohm) to divide by 3, followed by a series 1nF cap.
The waveform going into the XTALI pin was a square wave about 500mVpp.
I am planning on playing with this a little bit more, but this has allowed us to move forward and fine tune the solution to this in parallel to the remainder of system development.
Thanks thomasdoerfler for putting this out there, and following up with your solution, it gave us a serious head start.
-Ben
Hello Thomas,
I confirmed that the voltage levels would be the same as other pads so it's correct at:
V high between 0.7 X VDD, and VDD.
V low between 0 and 0.2 X VDD.
A swing of 1.8V would indeed be too large although 600mV would be a bit too small. I would go with at least 900mV with a small offset so it's correctly centered on the thresholds. That been said. It is recommended to use crystals as they are more robust against noise etc.
I hope this helps!
Regards,