With my Pololu line following robot I had strange problems with the sensor array: the sensor values were very unreliable. Until I have found the problem: Instead of the expected 3.3V, my FRDM-KL25Z RevD board provided 2.8V instead 3.3V on the P3V3 Arduino header pin:
And that voltage even was lower the more current I needed :-(. Luckily there is an easy hardware fix for this.
Voltage Drop because of Diode D1
The problem is because of Schottky Diode 1: it is causing a the voltage of about 0.5V and even larger for higher currents. So the simple ‘fix’ is to shortcut pin 1 and pin 3 of that diode D1:
That diode D1 is located nearby the KL25Z USB port:
❗ Change the hardware at your own risk. Make sure your power supply is not reverted, and that you only draw a few 100 mA.
With this, the voltage P3V3 is where it should be:
The voltage drop over D1 causes a voltage drop of 0.5V or more, which depends on the current drawn from P3V3. As my sensors on P3V3 need more than 30 mA, the voltage drop was too high to have them operating properly. Short-cutting the D1 diode solved the problem for me and my RevD board.
💡 That problem has been reported to Freescale, and the new RevD boards should have that problem solved. It looks like such RevD boards are shipping now, although my order a couple of weeks ago still had RevD boards.
Happy Shortcutting 🙂
Ha! I had the same problem with a sensor I was using. I ended up soldering a wire directly to the 3.3V regulator output to “fix” it.
I was using first a 3.3V converter to push the voltage up to 3.3V, until I had found that fix which is much easier (and less expensive).
The BAT54’s are Schottky diodes, not Zeners. 🙂
The Freescale schematic is drawn with the wrong symbol. They used the symbol commonly used for a Zener (in the USA at least).
Hi Bill, now that makes sense :-). It seems that the symbol is not standard, and I was trapped. I have fixed it now.
Instead of removing the Schottky diode, why not add the same Schottky diode in series with the linear regulator’s pin 1 and GND (cathode toward gnd)? That would raise the voltage level back to 3.3V and still maintain circuit protection.
Also, if C2 was on the other side of your Schottky diode near the MCU, when power gets disconnected from the unit, your MCU would have time to react by detecting the voltage drop, allow you to enter a deep sleep mode, and then come back out of sleep when power is restored seconds later. That’s if you ever have an issue where your voltage becomes momentarily disconnected… Just a thought…
yes, this certainly a more ‘correct’ solution of the problem. But requires more hardware modifications. Another solution in my view would be to replace the D1 Schottky Diode with a lower voltage drop. I’m not sure what exact device has been used, but I have seen better diodes than this one. Just another thought.
Putting a Schottky in series with the ground pin won’t change the output by the same amount because there’s very little current in the ground pin. The forward drop on the diode is much less at lower currents. This will result in the output voltage being higher than desired at low output current.
It was about changing the reference point of the linear regulator’s ground. So measuring across the output of the linear regulator and gnd would now be 3.8V. That would allow the voltage then at the microcontroller to then see 3.3V after the 0.5V drop from the original diode. Has never been a problem in my designs. Of course the better solution would be to replace the original diode with a FET-resistor-zener configuration to give reverse polarity protection while having virtually voltage drop. Costs more however. But in many cases is necessary.
Yes, I understand the concept of using a diode to raise a 3-terminal regulator’s output.
My point was, given the low current in the ground pin, the drop across your new diode will be give-or-take constant. Making the output voltage raise by a pretty fixed amount. Which is what you want from a regulator.
But the output is still going through the original diode, which will have different current through it depending on what you are powering (different shields, etc.). The BAT54 diode has different drop across it over a large range of current. Ranging from about 0.25V at very low current to as much as 0.8V @ 100mA.
That’s not a good design for a general purpose supply.
The LT1117 regulators have an internal diode between output and input. (not sure about clones or second source devices) So backfeeding a LT1117 will backfeed it’s source. Moving the Schottky diode to the Vin side of the ‘1117 might be a safe solution to the entire issue.
Pingback: FRDM-KL25Z RevE Board arrived | MCU on Eclipse
I also found out about this problem…. I’m using this board for students, and when a lot of shields are stacked, the voltage goes even lower, to the point where some logic IC’s no longer ‘understand’ the logic levels; at least with the shields I use.
Strange that there are no other articles about this issue. By the way, I received a version D (no new power circuit) last week from Farnell.
back in June I ordered boards from Mouser (https://mcuoneclipse.com/2013/06/09/frdm-kl25z-reve-board-arrived/) and I received RevE board. It looks like Farnell/element14 still have old boards in stock, so I recommend to get it from other distributors. And I heard others saying as well that Farnell still ships RevD boards.
Speaking of voltage regulation, any ideas on why the freedom boards, such as the FRDM-KL25Z and KL46Z, use an external 5 V to 3.3 V voltage regulator instead of the MCU’s embedded voltage regulator?
Is it because using several shields would draw more current than the embedded regulators can handle?
Yes, that converter can provide only limited amount of current (data sheet should tell about the amount): good for small on board devices, but not more.
I can see that the KL46Z’s reference manual states:
“Output current: 120 mA.”
“Automatic current limiting if the load current is greater than 290 mA.”
Does the current limiting statement imply that it’s possible to draw more than 120 mA but only for brief amounts of time? Looking at signals through an oscilloscope I can see that the GPIO and SWD’s rising edges can have an overshoot greater than 5V. I’m imagining an application that draws close to the 120 mA during peak operation with occasional current drawing spikes. So that’s why I say that it might be safe to draw more than 120 mA for very short amounts of time. Is this the idea? Please correct me on this one if needed.