<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>Good stuff...thanks, Ken! </div><div><br>On Feb 8, 2016, at 10:30, Ken Tait <<a href="mailto:ktait@venturesystemdesign.com">ktait@venturesystemdesign.com</a>> wrote:<br><br></div><blockquote type="cite"><div>
<meta content="text/html; charset=windows-1252" http-equiv="Content-Type">
your welcome!<br>
<br>
A little tutorial if you are interested.<br>
<br>
All current microprocessors and microcontrollers have non specific
port drive capabilites. what I mean by this is that all data sheets
are a little vague about what a pin can drive,(actually sink). This
is due to the complex structure used to enable a pin to be
multi-function and the low power current requirements.<br>
A part is specified by how much heat it can tolerate which is
directly related to it's speed and how much load is on ALL the pins.
So, if you had 20 leds at 20ma on 20 pins, you would exceed the
specs quickly...<br>
NO pins are designed to SOURCE current,(only enough to drive a
buffer) just to SINK current. This is an important aspect to a
design.<br>
<br>
As dies shrink, the pin drive capability gets worse, since it takes
physical area on the die to sink current.<br>
The newer ARM parts are making this worse still, since they are all
heading to the lowest possible power use and smallest die size for
cost....<br>
<br>
8 bit micros can easily sink 10ma of current, many have a few pins
defined as 'high drive' that will do more than that.This is mostly
for driving leds directly in low cost consumer goods. It is easier
to do this in this type of part, it has fewer transistors so die
size is not that much of an issue.<br>
<br>
The X86 family is not designed to drive anything directly without a
buffer, that is not it's purpose. Older parts like 80186 derivatives
could do this because they had very different output pins and were
intended to be used in small systems. True 'cpu' level parts are
designed to drive memory arrays and nothing else.<br>
<br>
To be safe and provide for future expansion, any X86 design should
have gpio pins buffered to the outside world. A dual voltage, 8 bit
bi-directional buffer is a good choice here since you can mate the
1.8v pin with a 5V or 3.3V output.<br>
<br>
If you pay attention to this, then when a newer, faster part comes
out it will almost be a drop in replacement with little board
re-layout required.<br>
<br>
I see this issue all the time in systems I work on. Designers do not
understand the newer parts and what their requirements are, thinking
they can treat them like the older parts.<br>
<br>
<font color="#3366ff"><i>Knowledge is power..and produces less
smoke. <span class="moz-smiley-s3"><span> ;-) </span></span></i></font><br>
Hope this helps<br>
Ken<br>
<br>
<br>
</div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>elinux-MinnowBoard mailing list</span><br><span><a href="mailto:elinux-MinnowBoard@lists.elinux.org">elinux-MinnowBoard@lists.elinux.org</a></span><br><span><a href="http://lists.elinux.org/mailman/listinfo/elinux-minnowboard">http://lists.elinux.org/mailman/listinfo/elinux-minnowboard</a></span><br></div></blockquote></body></html>