Crystal problem
electromanj
Posts: 270
Hello all. I have a problem that I can't figure out. It concerns the inclusion of
CON
· _clkmode = xtal1 + pll16x
· _xinfreq = 5_000_000
At first my program would work fine with the above included. Then it would work intermittently. Now I have to comment it out or the program doesn't do anything. Below is the full program.
CON
· _clkmode = xtal1 + pll16x
· _xinfreq = 5_000_000
pub ledon
· dira[noparse][[/noparse]23]:=1
· outa[noparse][[/noparse]23]:=0
· repeat
The problem is not exclusive to this one program but to any program I try to load.
Has anybody run into this before?
CON
· _clkmode = xtal1 + pll16x
· _xinfreq = 5_000_000
At first my program would work fine with the above included. Then it would work intermittently. Now I have to comment it out or the program doesn't do anything. Below is the full program.
CON
· _clkmode = xtal1 + pll16x
· _xinfreq = 5_000_000
pub ledon
· dira[noparse][[/noparse]23]:=1
· outa[noparse][[/noparse]23]:=0
· repeat
The problem is not exclusive to this one program but to any program I try to load.
Has anybody run into this before?
Comments
http://forums.parallax.com/showthread.php?p=904603
There was another, similar, thread involving the PEK; but it has mysteriously disappeared from the recent forum history. Edit: 'found it:
http://forums.parallax.com/showthread.php?p=908524
Basically, the problem boils down to inadequate bypassing (and not connecting all the Vdd and Vss pins, if that pertains to you).
BTW, not everyone uses ExpressPCB (including me). You'll get more help if you convert the layout file to a more common file type, such as pdf, gif, png, etc.
-Phil
Post Edited (Phil Pilgrim (PhiPi)) : 5/25/2010 4:16:26 AM GMT
-Phil
-Phil
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Propeller Wiki: Share the coolness!
8x8 color 80 Column NTSC Text Object
Safety Tip: Life is as good as YOU think it is!
-Phil
Yes, the prop is socketed. I have tried to change the prop with no result. I soldered a wire between both vss pins with no result.
Here is some more background. When the problem first showed up I thought I had a bad trace to the crystal. I ran the solder iron over the traces and it worked. Then it happened again so I ran a piece resistor lead over the traces from the crystal to the prop. That didn't work for long. I changed the crystal. That didn't work. Now if I touch the top of the eeprom while downloading or hold a ground wire onto the tab of the regulator,or touch the board and the eeprom and download sometimes it works, most times not. I look like a guy with his rabbit ears antenna trying to tune in the superbowl!
I have not found one thing that works everytime or evan something that works twice in a row. On the otherhand it may only work once every so many times and I'm so busy touching everthing on the board that I haven't noticed the pattern? Update: I tryed to load the program several time without touching anything. Behaves the same.
At this point I've lost interest in the project I'm working on and am facinated with this problem. I really want to understand why this is happening.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Leon Heller
Amateur radio callsign: G1HSM
@everyone -thanks for your replies and help. If I remember what solved this issue I'll post it here in this thread.
@ElectricAye- The board did taste minty fresh. mmmmmmmm!
traVis
I was experiencing random resets also on a pretty beefy project of my own, and I realized I neglected the bypass caps on the Prop. Since I was using the QFP, I added 4 ceramic .1uF caps on each pair of Vss/Vdd, and it seemed to do the trick. On a dev board like yours, I would err on the side of caution, and place one on the EEPROM too. So, for the DIP case, I would personally use 2 of them, and if your power pins are spaced far apart, as a rule of thumb I place my bypass caps as close to the Vdd as possible. This seems to clean up the voltage lines quite nicely in most cases. I don't have access to a scope to verify this, but it has worked in the past, especially when using noisy chips like 555 timers and what not.
And of course, if this info is wrong, or someone else has a better way, please let us know!