Shop OBEX P1 Docs P2 Docs Learn Events
Problem executing programs on personal propeller board design — Parallax Forums

Problem executing programs on personal propeller board design

SYKOgirl85SYKOgirl85 Posts: 6
edited 2013-04-22 09:04 in Propeller 1
I have designed a board using the propeller Q44 package, but I'm having problems running programs. I am attaching pictures of both my schematic and board layout/design. Propeller tool recognizes both the prop chip and loads the program to the EEPROM (at least it says it is) but then fails to run the programs. Will you please take a look and see if you can find any errors in my design.
newdigitalboard.jpg
newdigitalschmatic.jpg


Thanks,
Kendall
1024 x 448 - 79K
1024 x 973 - 77K

Comments

  • Mike GreenMike Green Posts: 23,101
    edited 2013-04-21 11:43
    You may be suffering from the "dreaded" PLL destruction problem. I can't tell whether you've connected all the Vdd pins and the Vss pins of the Q44 package with good sized traces under the package and I can't tell how many bypass capacitors you have for the Prop's power leads.

    This is a problem that occurs when there's a significant current flow through the power grid on the chip itself when there's inadequate bypassing of all the power and ground leads for the chip and when there is a missing connection to one of the Vdd or Vss pins of the chip. As a result, there may be transient voltage drops across the chip large enough to damage whatever is most vulnerable, usually the PLL multiplexor that selects the subharmonic of the PLL output to be used for the system clock. The downloading and EEPROM writing code uses the Prop's internal fast RC clock (RCFAST) which doesn't use the PLL. When the loaded program attempts to switch to the crystal controlled clock, the clock stops working and the program doesn't run. Unfortunately, most code requires a stable accurate clock derived from the crystal oscillator, particularly for serial I/O or video output. Try hooking up an LED to one of the unused I/O pins and write a simple program to blink the LED in a specific pattern using "_CLKMODE = RCFAST" and "_CLKFREQ = 12_000_000". The actual frequency may be off quite a bit, but the program should run. Look at the board layout for any of Parallax's boards, particularly the power bypassing and the connections among the Vdd and Vss pins for good examples of how to avoid this if that's what happened.
  • User NameUser Name Posts: 1,451
    edited 2013-04-21 12:11
    Yup. What Mike says. Regardless of the package, the Propeller benefits by having the Vdd pins wired together- and Vss pins wired together- in the most direct way practical, and then decoupled as close to the chip as practical.
  • SYKOgirl85SYKOgirl85 Posts: 6
    edited 2013-04-21 12:34
    Mike Green wrote: »
    You may be suffering from the "dreaded" PLL destruction problem. I can't tell whether you've connected all the Vdd pins and the Vss pins of the Q44 package with good sized traces under the package and I can't tell how many bypass capacitors you have for the Prop's power leads.



    This is a problem that occurs when there's a significant current flow through the power grid on the chip itself when there's inadequate bypassing of all the power and ground leads for the chip and when there is a missing connection to one of the Vdd or Vss pins of the chip. As a result, there may be transient voltage drops across the chip large enough to damage whatever is most vulnerable, usually the PLL multiplexor that selects the subharmonic of the PLL output to be used for the system clock. The downloading and EEPROM writing code uses the Prop's internal fast RC clock (RCFAST) which doesn't use the PLL. When the loaded program attempts to switch to the crystal controlled clock, the clock stops working and the program doesn't run. Unfortunately, most code requires a stable accurate clock derived from the crystal oscillator, particularly for serial I/O or video output. Try hooking up an LED to one of the unused I/O pins and write a simple program to blink the LED in a specific pattern using "_CLKMODE = RCFAST" and "_CLKFREQ = 12_000_000". The actual frequency may be off quite a bit, but the program should run. Look at the board layout for any of Parallax's boards, particularly the power bypassing and the connections among the Vdd and Vss pins for good examples of how to avoid this if that's what happened.

    Thank you!! Yeah this was my first design and I tried to go by the schematics for both the professional board and protoboard designs. I unfortunately have all four voltage pins wired separately with .1uF bypass caps, and I had a feeling all my grounds didn't get connected correctly. I'm using 8mil traces under the chip, but I don't see them on my fabricated pcb. I compared pin voltages on the professional board and my board to each pin and they came out exactly the same with the exception of the BOE and RESN pins. I thought that may be where the problem was. I also used the same voltage regulators found on the one of the propeller prebuilt board schematics I think they are LM2987s (3.3v and 5v) however the power supply I was using to power this board was pushing a current of 2.5Amps. I probably should've submitted these designs on this forum before sending the board os off for production. I guess I'lll have to do some major trace scraping and rewiring before putting the next one together.
    I'll try the LED code momentarily.
    Any other suggestions on how I can fix these problems without having to throw away 3 other copies of this PCB? It was for a school project (due tomorrow) and I imagine the purchasing folks and department heads aren't going to be too pleased with me.

    THANK YOU SOOOOO MUCH btw on this information!

    Kendall
  • Mike GreenMike Green Posts: 23,101
    edited 2013-04-21 12:43
    1) Make sure you have Vdd and Vss connected to all of the power supply pins of the package. I think there's one of each on each side of the package.
    2) Ideally, you'd have a 0.1uF SMT bypass cap on each side of the package, close to the package itself. Again, look at something like the Demo Board, ProtoBoard or Prop BOE for an example of proper layout.
    3) Make sure any cross-connect traces under the chip are actually connected to the proper pins. Use a copper fill for VSS under the chip ... better than just traces for connecting the Vss pins
    4) If the problem is that you've left off one of the Vdd or Vss connections, you can use a jumper wire ... typically some wirewrap wire from RadioShack. It's very fine and solders well.
  • SYKOgirl85SYKOgirl85 Posts: 6
    edited 2013-04-21 12:56
    I have 2 ground planes running the length of the board, one via under the chip that was "supposed" to serve as a via ground, i did accidentally run one of the ground pins to the BOE pin instead of the ground pin by accident. Is the reset switch for the RESN mandatory? As of now its wired directly to the prop plug headers.
  • SYKOgirl85SYKOgirl85 Posts: 6
    edited 2013-04-21 15:05
    Well after using a protoboard and bypassing the onboard propeller, the LCD still isn't working. I'm at a loss. I appreciate all the help and advice, but I think it's time to throw in the towel on this project working.
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2013-04-21 15:31
    The PLL issue that Mike mentioned is permanent damage if/when it happens. A post-repair to the board will not fix it without also replacing the Prop chip.

    -Phil
  • SYKOgirl85SYKOgirl85 Posts: 6
    edited 2013-04-21 15:46
    I used a different board made by parallax to attempt to control instead of my board's prop chip.
  • Mark_TMark_T Posts: 1,981
    edited 2013-04-22 03:32
    You are using signal trace widths for the power rail(s) - not good - the issue is the higher inductance of narrow
    traces allows much more voltage bounce. At the very least ensure traces between chip supply pins and the nearest
    decoupling capacitor are wide and short and run above/below the ground plane as much as possible. For the ground
    connections a ground plane is clearly the best approach so long as it isn't too fragmented (issue with 2-layer)

    With two-sided board the simplest option is to mount 4 decoupling capacitors on the underside directly
    below each Vdd pin and take a via directly between pin and cap. If you are using tiny SMT caps they can go on the
    topside without eating away too much board area (I tend to stay at 0805 as minimum size)

    Its not clear to me that your board isn't working though as you seem to have the same problems on a Parallax
    board...
  • Tracy AllenTracy Allen Posts: 6,664
    edited 2013-04-22 09:04
    Don't throw in the towel quite yet! The fact that the LCD does not work with a Parallax prop board patched into the circuit is most likely completely unrelated problem due to code or a hardware conflict.

    Did you try the experiment Mike suggested, to run a simple test program on RCslow? If that works, you might also try running it with crystal at 5MHz without the PLL enabled.

    You board photo shows a trace from pin6 BOE to pin17 Vss but no via to ground, and no connection at all to pin5 Vss. To remedy that, you might drill a hole through the board to the ground plane and attach a fine wire through to pins 5 and solder bridge to pin 6.
Sign In or Register to comment.