Shop OBEX P1 Docs P2 Docs Learn Events
Zombie Propeller — Parallax Forums

Zombie Propeller

Duane DegnDuane Degn Posts: 10,588
edited 2014-07-13 11:12 in Propeller 1
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).
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 Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2014-06-08 14:55
    Are you sure it's the only Propeller plugged into your PC?

    -Phil
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-06-08 15:12
    Are you sure it's the only Propeller plugged into your PC?

    -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.
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2014-06-08 15:17
    Duane,

    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
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-06-08 15:33
    The code I used to test which pins went high while loading was the code in post #1. It's the complete code. It doesn't set the clock.

    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.
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-06-08 15:51
    I replaced the Propeller and I had to reprogram the EEPROM but then all I/O pins were set high when using the code from post #1. So it wasn't a problem with my PPDB keeping the Propeller from working correctly.

    I'm not aware of seeing a failure like this one before (and I've killed more than my share of Propeller chips).
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2014-06-08 15:52
    Maybe one of the pins you're attempting to set high is causing the problem. Try raising one pin at a time. Just read your prior post.

    -Phil
  • mindrobotsmindrobots Posts: 6,506
    edited 2014-06-08 17:30
    Duane Degn wrote: »
    I replaced the Propeller and I had to reprogram the EEPROM but then all I/O pins were set high when using the code from post #1. So it wasn't a problem with my PPDB keeping the Propeller from working correctly.

    I'm not aware of seeing a failure like this one before (and I've killed more than my share of Propeller chips).

    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?
  • MrBi11MrBi11 Posts: 117
    edited 2014-06-08 17:45
    try setting clockmode=rcfast, chip may have a fried PLL but could still be used in another project that doesn't require higher speed (or timing)
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2014-06-08 17:50
    MrBi11 wrote:
    try setting clockmode=rcfast, chip may have a fried PLL but could still be used in another project that doesn't require higher speed (or timing)
    He did that: it's the default when you don't specify a clock setting.

    -Phil
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-06-08 19:14
    There's more going on than just a dead Prop. After having the new Prop installed, I started wiring back up my project and current shot back up to 1.5A. I quickly turned it off rather than attempting to track down the problem.

    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.
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2014-06-08 19:53
    A lot may hinge upon how and where things are grounded. Since you are using high-current devices, it's important that the ground currents from them do not traverse through the logic portion of your circuit. IOW, the ground returns of all devices should be connected at a single point in such a way that that the currents from high-current devices do not return to the logic ground terminal but directly to the high-current ground return. High ground currents through your logic circuit could easily fry the Prop.

    Having said that, it appears that the L293 on the PPDB is laid out properly in that regard, so the mystery deepens.

    -Phil
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-06-08 21:18
    Here are some photos of my setup.

    attachment.php?attachmentid=109044&d=1402285266

    attachment.php?attachmentid=109045&d=1402285269

    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.

    Connector.jpg
    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.
    854 x 520 - 192K
    931 x 556 - 219K
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2014-06-08 22:15
    Just looking at the photo, I see the problem right away, and it's what I mentioned in my previous post. You've got the motor positive supply connected at the motor terminal, but the ground return is connected ... where? It also needs to be connected to the same terminal block.

    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
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-06-09 09:54
    You've got the motor positive supply connected at the motor terminal, but the ground return is connected ... where?

    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.
    It also needs to be connected to the same terminal block.

    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.

    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 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.)
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2014-06-09 10:04
    Duane Degn wrote:
    But what about having grounds only connected at one point?
    The "one point" in this case is the junciton of motor ground and logic ground at the L293 chip on the PPDB. That's what keeps motor ground return currents from flowing through the logic circuit.
    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'm just going by the L293 datasheet, in which an example circuit shows external diodes being used.

    -Phil
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-06-09 10:09
    The "one point" in this case is the junciton of motor ground and logic ground at the L293 chip on the PPDB. That's what keeps motor ground return currents from flowing through the logic circuit.

    Thanks for your continued patience Phil. I very much appreciate all you've taught me.
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-07-13 10:41
    The "one point" in this case is the junciton of motor ground and logic ground at the L293 chip on the PPDB. That's what keeps motor ground return currents from flowing through the logic circuit.

    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.
  • mindrobotsmindrobots Posts: 6,506
    edited 2014-07-13 10:54
    Involuntary chipslaughter and I think your community service to the forum has certainly cleared your good name. (and you do have stopping further platformocide in the RasPi community going for you!! :smile: )
  • mindrobotsmindrobots Posts: 6,506
    edited 2014-07-13 10:58
    Duane Degn wrote: »
    I had an "Ah hah!" moment when I was explaining about common grounds.

    Sorry, but would that have been a chipiphany? :innocent:
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2014-07-13 11:11
    mindrobots wrote: »
    Sorry, but would that have been a chipiphany? :innocent:

    GROAN! I pretty sure that violates some forum rule somewhere...
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-07-13 11:12
    mindrobots wrote: »
    Iand you do have stopping further platformocide in the RasPi community going for you!! :smile:

    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.
    mindrobots wrote: »
    Sorry, but would that have been a chipiphany? :innocent:

    That produced a real LOL from me.

    Thanks for the light sentence Your Honor.
Sign In or Register to comment.