Zombie Propeller
Duane Degn
Posts: 10,588
Yesterday while using a Propeller Professional Development Board, the current being used by the board was very high (over 1 Amp). I had been using the 16-segment display (with one of TonyP's boards) and a small motor with the L293D motor controller.
I wanted to find the device pulling so much current so I didn't immediately turn off the board. Instead I pulled the power to the motor and LEDs but the current remained very high. I disconnected the power to the breadboard (I think both 5V and 3.3V) but the current being drawn didn't change. I finally turned off the board. Now when I attempt to use the Propeller on the board, I don't get any activity on the I/O pins.
The following code doesn't bring any of the pins high (except the P29 which is pulled high).
I can understand that I burned out the Propeller (though I don't know how) but what I don't understand is why when I use F7, F10 or F11, I don't get any errors?
How can the Prop Tool program the Propeller if P30 won't go high? Doesn't the Prop have to reply to the incoming data?
The above code would set all the I/O pins as outputs and high right? After loading the above code to EEPROM (which doesn't produce any errors), none of the I/O pins are high unless pulled high externally.
With the above code "running", the PPDB pulls a total of 50mA.
I'm about to replace the DIP Propeller on the board but I was hoping one of you would have an idea of why an apparently dead chip can communicate with the Prop Tool. Attempts to send serial data to PST show no activity.
No other Propeller boards or FTDI devices are connected to the computer.
I wanted to find the device pulling so much current so I didn't immediately turn off the board. Instead I pulled the power to the motor and LEDs but the current remained very high. I disconnected the power to the breadboard (I think both 5V and 3.3V) but the current being drawn didn't change. I finally turned off the board. Now when I attempt to use the Propeller on the board, I don't get any activity on the I/O pins.
The following code doesn't bring any of the pins high (except the P29 which is pulled high).
PUB Main dira[31..0] := $FFFFFFFF outa[31..0] := $FFFFFFFF repeat
I can understand that I burned out the Propeller (though I don't know how) but what I don't understand is why when I use F7, F10 or F11, I don't get any errors?
How can the Prop Tool program the Propeller if P30 won't go high? Doesn't the Prop have to reply to the incoming data?
The above code would set all the I/O pins as outputs and high right? After loading the above code to EEPROM (which doesn't produce any errors), none of the I/O pins are high unless pulled high externally.
With the above code "running", the PPDB pulls a total of 50mA.
I'm about to replace the DIP Propeller on the board but I was hoping one of you would have an idea of why an apparently dead chip can communicate with the Prop Tool. Attempts to send serial data to PST show no activity.
No other Propeller boards or FTDI devices are connected to the computer.
Comments
-Phil
I knew you were going to ask this.
Yes, the PPDB is on Com 6 which I can verify as I unplug the PPDB and plug it back in.
I tried a few more experiments. I wired P28 through P31 to one of the LEDs on the PPDB (one at a time) and used F11 to load the program posted above. All four I/O pins caused the LED to flash while it was being programmed. So apparently P30 can be set high while the Propeller is being programmed but none of the I/O pins are high with the above code running unless pulled high externally.
It's probably the PLL burnout issue. I'll bet your program will run with the internal oscillator and no PLL. That's the way the bootloader works.
-Phil
I tell you, demonic forces are at work here.
My only guess is the hardware issue which caused the problem in the first place is still present and effecting the way the Propeller is behaving in some subtle way. I'm relatively sure at least the PLL is burned out and I suspect the chip is toast but I can't figure out why there aren't any errors when programming it.
I'm not aware of seeing a failure like this one before (and I've killed more than my share of Propeller chips).
-Phil
It's interesting that you replaced the prop AND had to reprogram the EEPROM. If it was programming the old prop correctly as it had indicated, you would have thought the EEPROM would have been itact with one of the program loads.
Did you switch back to the old prop with a known good EEPROM just for grins?
-Phil
The high current issue seems to intermittent so it has been hard to find.
Forum member P!-Ro, a friend of mine, recently gave me a bunch of his robot stuff including a PPDB. I'll likely switch over to the board he gave me. This project (using motors with encoder as servos) has been frustrating enough without having to deal with a demonic PPDB.
When/if I ever get this problem figured out, I'll make sure and update this post. Thanks for the suggestion everyone.
Having said that, it appears that the L293 on the PPDB is laid out properly in that regard, so the mystery deepens.
-Phil
The white wire on the left side of the breadboard is being used to support the motor. It's not electrically connected to the circuit. There's another long white wire connecting P23 to switch 7.
I'm using one of the $2.95 Faulhaber motors from Electronic Goldmine. I'm powering the encoders with 3.3V instead of 5V. I hooked up the motor based on the diagram provided by Robotroom.com.
The pins are of coursed mirrored when looking from the top side of the connector.
I can control the motor and get encoder feedback so I'm reasonably sure I have things connected correctly.
I'm providing this extra detail since you guys have been nice enough to express some interest in this problem but I am not requesting additional help.
I'm using one of TonyP's 16-segment driver boards (the three pin version).
I hesitate to mention it, since I don't want to suggest Tony's board has anything to do with the problem but when I started rewiring my project after replacing the Propeller, when the current jumped to 1.5A I was just connecting the three data pins on Tony's board. I don't think it's caused by Tony's board since when I previously attempted to investigate the high current, I had pulled the power connections from Tony's PCB and the current didn't change.
Things appear to be working correctly right now.
The motor was on when the above photos were taken. With the motor on, the PPDB pulls 150mA with the voltage set to 7.5V.
V+ terminal (of the L293) is connected to the 7.5V Vin. Out of laziness, I connected the ground alligator clip of the motor power (same source of power as the power socket) to the ground post next to the power socket. Thinking about Phil's earlier comment about ground paths, I think I'd be well advised to add a wire to the L293 ground terminal and connected the ground alligator clip to the proper ground location for the motor driver. I was letting the board's ground plane act as the ground to the L293 chip.
I had previously left "Input 2", "Input 3" and "Enable (2, 3)" floating. I just now tied the enable (2, 3) pin to ground.
I have a hard time believing that my lazy use of the motor's ground connection could cause the trouble I've seen but I'm willing to listen to theories on the matter.
Again, I'm not requesting any of you spend much time on this issue. The circuit is presently working correctly (if only I could say the same for the software). If the board acts up again, or I learn some new information about the problem, I'll update this thread.
Thanks for the suggestions and your interest.
Also the L293 does not have internal commutation diodes on the motor outputs, nor does the PPDB provide them. You need to add them (four of them).
-Phil
I mentioned this in the above post. It's connected to the ground post next to the power connector. I also gave the reason. Laziness.
But what about having grounds only connected at one point? Both the supply to the power connection (Vin) and the V+ connection are coming from the same 7.5V bench supply.
After posting the above photos, anticipating a scolding for not using the ground terminal block, I added a wire to the appropriate block of the motor controller and moved the alligator clip from the nice (purpose made) post to the newly installed ground wire.
I wish you guys I look up to would agree about this sort of stuff. Bill Henning has mentioned several times not using diodes on the outputs of the L293. I kind of took the lack of diodes on the PPDB as confirmation of the diodes not being needed.
I'll go find some diodes. I know I have a bunch.
BTW, please scold keep corrections coming. I find I learn the most from "you're doing it wrong" posts. (I've gotten a lot of them.)
I'm just going by the L293 datasheet, in which an example circuit shows external diodes being used.
-Phil
Thanks for your continued patience Phil. I very much appreciate all you've taught me.
While making my "How to" video about the cheap ebay L298N boards, I had an "Ah hah!" moment when I was explaining about common grounds.
Not that I didn't believe you before, but for some reason, my attempt to explain about a "common ground connection" made what I had done here come back into my mind with a vivid understanding of what I had done to the poor Propeller chip on my PPDB.
My brain could see the current flowing through the motor and then through the Propeller chip's Vss pins on its way to the corner ground post.
I plead guilty to chipslaughter.
Again, thank you for your patience as you educate myself and others in the world of electronics.
Sorry, but would that have been a chipiphany?
GROAN! I pretty sure that violates some forum rule somewhere...
Beating up on 14-year-olds is not as much fun as it sounds but someone had to put an end to the Pi's which were dropping like flies.
That produced a real LOL from me.
Thanks for the light sentence Your Honor.