Shop OBEX P1 Docs P2 Docs Learn Events
Could use some help/advice on troubleshooting a PCB with a propeller chip on-board. — Parallax Forums

Could use some help/advice on troubleshooting a PCB with a propeller chip on-board.

Hey guys,
So I have been making various devices over the past year using the propeller chip (the QFP 44 package), getting PCB's made, and everything works just fine. Well... I finally got 2x batches of boards (2 different designs) in, along with some new parts, and both of them I get the "No Propeller chip found on any serial port.". I have a DIP version of the propeller chip here in a breadboard circuit and I can connect to that one just fine. I am using the "usb prop plug" and "propeller tool - version 1.3.2".

Here is the schematic that I use for just about every board design:
propeller_problem_1.jpg

What I attempted next was to build one of the PCB's, but leave off all other components, only soldering on the bare bones parts for the propeller. In this case I soldered on only the parts in the diagram above (and using an external power source)..... still doesn't work.

I went through the board and verified that 3.3v power was present at all of the pins, verified the grounds, resistor values, I checked for shorts and hot parts.... nothing seems out of the ordinary. I did notice that all of the I/O pins that are not tied to ground (e.g. pin 0 to pin 10 and are floating in this case since I didn't solder the rest of the components to the PCB) are reading around 0.1V. Does that mean anything?

So yeah I am at a complete loss on how to debug this thing. Should I build an even more bare bones PCB only consisting of the QFT propeller, the 4x decoupling caps, and then just the 1x4 header for the USB and thats it? (I was thinking I could still attempt to "identify hardware" or "load ram" function without the EEPROM or crystal?)

Any other things I can try? Thanks and any help is greatly appreciated!

EDIT:
Ok I built another board with just the QFP 44 propeller, 4x 0.1uf power decoupling capacitors, and a 1x4 header for the prop plug, and still nothing :-/

794 x 908 - 144K

Comments

  • Can you post pictures of the board design?
  • kwinnkwinn Posts: 8,697
    One thing I would never do is short I/O pins directly to ground (or 3.3V) like that. At best a programming error could damage those pins, worst case the entire cpu. Should have at least 120 ohm resistors on the pins.

    The reset circuit also could be a problem. A short duration input pulse might not discharge C3 to a low enough voltage. Try one without the 0.1uF capacitor.
  • I would just leave the unused pins floating. In your program, you can set them all to outputs. Connecting them all together is, like kwinn says, a bad idea. And, yes, get rid of C3.

    -Phil
  • Can you post pictures of the board design?
    propeller_problem_2.jpg
    kwinn wrote: »
    One thing I would never do is short I/O pins directly to ground (or 3.3V) like that. At best a programming error could damage those pins, worst case the entire cpu. Should have at least 120 ohm resistors on the pins.

    The reset circuit also could be a problem. A short duration input pulse might not discharge C3 to a low enough voltage. Try one without the 0.1uF capacitor.
    The I/O pins are not shorted directly to ground though... there is a 1K resistor in there.

    I mentioned I built another board with just the propeller chip, decoupling capacitors, and thats it (so C3 was missing in this one) and I still could not communicate with it.
    737 x 872 - 547K
  • I would just leave the unused pins floating. In your program, you can set them all to outputs. Connecting them all together is, like kwinn says, a bad idea. And, yes, get rid of C3.

    -Phil
    I had another thread going a while back where I was experiencing a lot of EMI/EMF problems, and it was recommended to me that I tie all of the unused pins to either GND or 3.3V. What do these chips default to from the factory when you power them up for the first time? I believe every I/O pin defaults to an input correct?
  • kwinnkwinn Posts: 8,697
    Yep, they should default to inputs.

    Since you cannot communicate with the prop it's time for some troubleshooting drudgery. Take a blank board to ohm out and verify that every pin on the propeller chip goes where it is supposed to go and is not shorted to another pin, ground, or 3.3V.
  • MahonroyMahonroy Posts: 175
    edited 2015-12-12 05:17
    What does it mean when i read an I/O pin with voltmeter and I get 0.1 volts? (One that is floating, and should be defaulted to an input). Is that normal?

    What is the minimum to communicate with the propeller? Is it just power, ground, 4x decoupling capacitors, and thats it?
  • Mahonroy wrote:
    I had another thread going a while back where I was experiencing a lot of EMI/EMF problems, and it was recommended to me that I tie all of the unused pins to either GND or 3.3V. What do these chips default to from the factory when you power them up for the first time? I believe every I/O pin defaults to an input correct?
    True. But an errant program could set one pin output high; another, output low. That would be bad. If you must tie them to ground, tie each through a separate resistor. But, as I said, I'd just leave them floating and set them to output in your program.

    -Phil
  • kwinn wrote: »
    Yep, they should default to inputs.

    Since you cannot communicate with the prop it's time for some troubleshooting drudgery. Take a blank board to ohm out and verify that every pin on the propeller chip goes where it is supposed to go and is not shorted to another pin, ground, or 3.3V.

    Thanks again for the reply!

    So here is where I am confused. I am trying to think of a scenario that would cause this failure. It seems as long as the power and ground are present, that pretty much any pin could have a short with +3.3 or ground and it would be just fine? The only pins that would be the exception would be the RX, TX, and RESET pins right?
  • Cluso99Cluso99 Posts: 18,069
    You don't appear to have a bulk capacitor on the board. Try a 10uF tantalum on the board across the power and ground inputs. A noisy supply could be causing erroneous resets.

    Next remove the reset resistor to ground and the capacitor to ground. You already have the proper circuit in the propplug.

    BTW 2K is a bit low for the SDA pull-up. I always use 10K although some I2C ICs recommend 5K or 4K7. I also use 10K pull-up on the SCL line too although not specifically necessary.

    I noted you also have 24LC32. Is this a typo?

    You are correct that an EEPROM and the pull-ups are not required to identify the prop. In fact, neither is a crystal. I see you have correctly tied BOE to Gnd.

    So, there is very little that can be wrong - power, reset, p31 & p30, and decoupling, BoE.

    What PC OS are you using? I have just found my windows 10 will not identify my prop board but everything is fine on window 7. I have yet to debug the timing.
  • Cluso99 wrote:
    Next remove the reset resistor to ground ...
    That resistor goes to 3.3V and should be okay. (The posted schematic is a bit confusing, since the lead to Vdd points down instead of up.)
    BTW 2K is a bit low for the SDA pull-up. I always use 10K although some I2C ICs recommend 5K or 4K7.
    A typical I2C circuit powered from 5V would use a 4.7K pull-up resistor, per the I2C specs. However, to get the same pull-up current from a 3.3v circuit, a 3.3K resistor would be better. I've never understood why 10K has become the norm for the Prop's EEPROM.

    -Phil
  • Cluso99 wrote: »
    You don't appear to have a bulk capacitor on the board. Try a 10uF tantalum on the board across the power and ground inputs. A noisy supply could be causing erroneous resets.

    Next remove the reset resistor to ground and the capacitor to ground. You already have the proper circuit in the propplug.

    BTW 2K is a bit low for the SDA pull-up. I always use 10K although some I2C ICs recommend 5K or 4K7. I also use 10K pull-up on the SCL line too although not specifically necessary.

    I noted you also have 24LC32. Is this a typo?

    You are correct that an EEPROM and the pull-ups are not required to identify the prop. In fact, neither is a crystal. I see you have correctly tied BOE to Gnd.

    So, there is very little that can be wrong - power, reset, p31 & p30, and decoupling, BoE.

    What PC OS are you using? I have just found my windows 10 will not identify my prop board but everything is fine on window 7. I have yet to debug the timing.
    Hi Cluso, thanks for the reply.
    I mentioned earlier that I am using an external power source with bulk capacitors for testing, and that I had built another board with only the propeller chip and decoupling capacitors for the power and thats it (and still nothing).

    I am using windows 7. I mentioned earlier that I have a DIP package propeller plugged into a prototype board and I can communicate with that just fine... I just cannot communicate with these QFP 44's.

    I got the 2K value straight out of the propeller documentation manual thats why I had been using it.
  • MahonroyMahonroy Posts: 175
    edited 2015-12-12 20:00
    So I found this for a barebones... technically I don't need the crystal either correct? And I don't need the eeprom stuff either right? This diagram shows no decoupling capacitors and only using one pair of the VDD/VSS pins. I am talking complete barebones here as I am trying to troubleshoot why I can't get the prop stick to see the propeller.

    PropConnections.jpg
  • I am far from an expert on this but I have had some experience. You can read about my previous problems and the things that I did to solve the problems those in my previous posts. I had a number of helpful suggestions and posted things that I did and the results. Perhaps they would be helpful to you.

    For sure.. mounting a by pass very close to the power pins is a must.

    If you don't have a program in the EEPROM and the communication isn't established at reset then the chip, including the clock, shuts down. I tried looking at the clock for 'running status' indicator in the early stages and couldn't find one. After Caps and a test EEPROM I had a clock. That got me back to the communications and reset areas. I used a scope to look at the TX RX lines to the chip when I ran the 'Identify Hardware' from the Propeller Tool. That helped verify that signals through the FTDI chip to the propeller. I also found that if communication is not established immediately after a reset, then the EEPROM code is loaded and run; if there is no EEPROM code, the chip shuts down. Perhaps that's why they use the DTR as a reset.

    I have moved on to attempting a design with SMD devices. I'm new at working with SMD's and not good with mounting them. That project is not going very well. I'm having the same problem you are but I think that's because of my soldering more than anything else. I'll have to work out a way to program an EEPROM and start working backward again.

    I probably should redo the board and use a PROP PLUG (reset is derived from DTR by the PROP PLUG).


    Good luck
  • kwinnkwinn Posts: 8,697
    Mahonroy wrote: »
    So I found this for a barebones... technically I don't need the crystal either correct? And I don't need the eeprom stuff either right? This diagram shows no decoupling capacitors and only using one pair of the VDD/VSS pins. I am talking complete barebones here as I am trying to troubleshoot why I can't get the prop stick to see the propeller.

    PropConnections.jpg

    The thing is that a lot of schematics leave out a lot of the minor details that "everyone" knows are needed in order to keep the schematic simple. Unfortunately that "everyone" is not someone relatively new to designing digital electronics.

    Sometimes one just has to make sure every detail of a design is done correctly. Time consuming but still faster than guessing and shotgunning a circuit.
  • Alright guys I figured it out. Just want to say thanks again for taking the time to read my post and providing me with insight!

    So I took a blank board, and pin by pin I verified that everything was indeed how it was supposed to be. I soon realized that the RESET pin from the header was not reaching the RESET pin on the propeller. This would explain that my bare bones PCB attempt was flawed and I needed to include R16 in order for it to reach the prop. I quickly soldered the component in and VOILA! The computer was able to find the propeller. I then realized the only difference between one I had built before, and this one was this barebones one did not have the C3 capacitor for the reset pin.

    So I desoldered C3 (reset pin capacitor 0.1 uF) and everything works now. So kwinn was correct, the 0.1 uF capacitor was too large (and this makes sense too because my old designs that worked used a 0.0047 uF capacitor...)

    I tell you what... I have troubleshooted a lot of propeller circuits, and 9 out of 10 times it has to do with the reset pin haha something to keep in mind.
  • kwinnkwinn Posts: 8,697
    @Mahonroy

    Glad to hear you found the problem, and thanks for posting the cause. I am sure that will be of help to others.
  • Cluso99Cluso99 Posts: 18,069
    Great to hear you have found the problem :)
    Mahonroy wrote: »
    So I found this for a barebones... technically I don't need the crystal either correct? And I don't need the eeprom stuff either right? This diagram shows no decoupling capacitors and only using one pair of the VDD/VSS pins. I am talking complete barebones here as I am trying to troubleshoot why I can't get the prop stick to see the propeller.

    PropConnections.jpg
    That circuit is a big NO! NO!
    It's a recipe for killing the PLL. Both sets of power & gnd pins must be conncted. On the QFP44 there are 4 pairs of pins and each requires a 0.1uF bypass cap.

  • Heater.Heater. Posts: 21,230
    I'm amazed that circuit has not been fixed up in all these years.

    It looks as if it's intended to be a "wire the Prop up like this and it will work" circuit. What with it's nice diagrams of the chips and pins and the picture of the Prop Plug.

    What's wrong with it?

    1) Pins 29 and 32 are not connected. A major no-no and known way to blow your Prop.

    2) No decoupling capacitors anywhere.

    3) No caps on the XTAL (Perhaps optional)

    4) RST is floated when the Prop Plug is removed. Meaning all kind of random reset is going to happen.


  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2015-12-13 17:01
    heater wrote:
    3) No caps on the XTAL (Perhaps optional)

    4) RST is floated when the Prop Plug is removed. Meaning all kind of random reset is going to happen.

    3) The Propeller chip provides programmable capacitor loading. No external caps are required.

    4) /RST is pulled up internally when /BOE is grounded.

    I definitely agree with your points 1) and 2). This schematic needs to be fixed!

    -Phil
  • Heater.Heater. Posts: 21,230
    edited 2015-12-13 17:25
    RST does indeed have a pull up.

    Still reset was firing when not needed for me. When connecting (hot plugging) to a serial port on another device. Took the addition of a stiffer pull up and cap to ground to fix it if I remember correctly. Clusso and and I spent quite awhile trying to sort out the best solution there.

    Not a problem for most I guess.
  • Cluso99Cluso99 Posts: 18,069
    edited 2015-12-15 22:20
    Agreed the schematic should have been fixed a long time ago, especially because of the audience it's being addressed to.

    Just to reiterate...
    No caps are required on the xtal.
    I put a 10K pull-up on reset as it helps reduce unwanted resets due to noise. A cap to ground is usual unusual for the prop.

    As for USB, plugging in the USB is a no no while running. It's a totally different problem. I mostly use the USB for power too and this gets over the USB problem as a side effect too. The USB problem perhaps should be briefly mentioned on the schematic.

    Postedit: OOPS, meant to say that the cap on reset is not normal for the prop
  • Heater.Heater. Posts: 21,230
    Clusso,

    What's the deal with plugging/unplugging the USB?

    I would like to think that if I have a board running I can plug in a PropPlug and talk to it over serial/USB without crashing whatever is running at the time.

    The Prop Plug is not providing power in the circuit above so why not?
  • If you have the Prop Plug plugged in with no computer attached, and if you're using serial I/O, the Prop will continue to reset itself. This is because the high (marking state) on P30 will power the Prop Plug, which then pulls /RST low momentarily. A 2.2K pull-up on P30 and/or P31 typically cures this by keeping the Prop Plug powered enough to eliminate edges on /RST. Crappy solution, but it works.

    -Phil
  • Cluso99Cluso99 Posts: 18,069
    heater,
    As Phil said, it's to do with the FTDI chip only requiring low power to sort of operate, and taking this power from the P30 (serial out from the prop) pin. It is to do with the static protection where diodes are placed between the pin and the power and ground rails. The prop also has these too, as do many chips these days! So it comes about when you mix chips where their power coes from different sources. The FTDI chip (in the PropPlug circuit) derives its power from the USB. If its not present then the power on any interface pin will attempt to power it. The prop provides just enough power from P30 to partially power up the FTDI where it then powers down. It is this power up and down that causes a glitch on the DTR pin which resets the prop. BTW this is not good for the FTI chip either!
  • Tracy AllenTracy Allen Posts: 6,658
    edited 2015-12-15 19:27
    Conversely, If the Prop Plug is powered up from a computer it can supply parasite power to an otherwise unpowered Propeller circuit through its tx output. You might find 2.5V or so on the Prop Vdd, below the brownout threshold. Usually that is not a problem, but I recall a radio module (Iris) that would enter a bad brownout state under that condition and subsequently would not power up properly unless the main power was switched on before the USB was connected. There are ways to avoid the issue, which have been implemented on some of the more recent Parallax boards.

    Also conversely, I usually install a ~4.7kΩ pulldown rather than a pullup resistor on the Prop rx pin, p31. Then at startup or during execution the program can test that pin, if low, it does not start (or stops) the system serial port. A resistor value much higher than 5kΩ does not work for some reason.
  • Cluso99Cluso99 Posts: 18,069
    Just noticed I typed the usual instead of unusual in my post above. It's meant to be..

    I put a 10K pull-up on reset as it helps reduce unwanted resets due to noise. A cap to ground is usual unusual for the prop.
  • So I am going to start a new thread so we can iron out a solid default propeller setup, I would definitely appreciate your guys input on it as well.
  • The diagram here:

    https://www.parallax.com/sites/default/files/downloads/P8X32A-Propeller-Datasheet-v1.4.0_0.pdf

    shows connections to pins 29 and 32 though the reset pin doesn't show any pullups?
    could this be because its expected that the prop plug will stay connected as primarily Parallax seems to have its philosophy tied to educational use rather than application in the field?
  • kwinnkwinn Posts: 8,697
    By now having a capacitor across every Vdd/Vss pair of pins is a requirement as is having a pullup on /RES. Typical values are 0.01 - 0.1 uF for the capacitor and 10K for the pullup.
Sign In or Register to comment.