Welcome! Log In Create A New Profile

Advanced

Should the I/O pins be current protected?

Posted by cgosnell 
Should the I/O pins be current protected?
March 27, 2014 12:16PM
I am building a Mendel Prusa along with the middle school kids from our Robotics group.

We have been having some issues with the Sanguinololu v1.3 board design and have fried the 1284p in the process.

I have a board kit purchased (from Botronicz) and 'no name' pololu stepper boards from ebay. We are setting up the extruder thermistor, and dry running the printer OK until yesterday when the X-axis would not reverse direction. Upon checking the board, I found out that D21 I/O (x-dir) was 'stuck' at +5V. The stepper drivers were not blown, and work OK when switched around, but do not cure the issue with the X-direction.

I loaded and ran the 'blink' program to see if I could change the state of this pin (with no stepper drivers on the board). No luck. It seems that the pin is shorted. All other axis direction pins worked OK and could be modified by the 'blink' program.

Looking at the board design, none of the I/O pins have any type of current limiting protection. I know that the stepper boards 'should' be TTL compatible, but wouldn't it be prudent to add 470 Ohm resistors to all of the I/O lines to protect from over current issues?

Just asking,


Chris G.
Re: Should the I/O pins be current protected?
March 27, 2014 01:19PM
If the uC still work and the drivers also work, and only that pin is stuck at 5v, maybe there is in code somewhere to make it high and hence stays at 5v. Do a full chip erase and try some a single sketch with only that pin digitalwrite() to 0 and see if it does go to gnd, else it could be fried. If it is fried, you can find another pin and change in pin definitions in pins.h to have the X axis DIR pin allocated to a pin that is currently free, then you can cut the old line and put a wire between the new pin and the bottom of the 0.100 headers for the stepper drivers, that will work. If you have a free pin that is, and i think should be something, expansion header or something like that.

Whatever you want to put on a I/O line in form of protection, it would have an impact that would end up in limiting the usability of that line, so imo thats why typically there is no protection on those lines. Lack of protection lets ppls really do whatever they want with those pins without running into unexpected issues. Cant have full protection and freedom at same time, feels like a general paradigm in more than one sense. Some low value series resistors might work as long as they are specifically not inductive types (most have parasitic inductance from being coil wired). Even so what could happen, it may form dividers with other pullups or pulldown, or perhaps will form rc filter with some other caps or even other parasitic capacitances or inductances. If the resistor value is small, it may not have any significant adverse impact but also wont be much in terms of protection, so not really effective. You put series resistors on each pin thinking at 5v shorts, dont worry the kids will find ways to short it directly to 12v line, that would still be overcurrent with the 5v resistors. If you want resistors for overcurrent at 12v, it wont solve the overvoltage. Also necessary value resistors for 12v overcurrent is like >1k therefore already become relevant to the other resistors forming voltage dividers all over the place and the board instead of outputting 5v it will output 4,5v or less, the step line may become filtered, etc.
Sorry, only registered users may post in this forum.

Click here to login