|
|
View previous topic :: View next topic |
Author |
Message |
thomasb
Joined: 12 Mar 2005 Posts: 7
|
PIC12F509 Oscal Init Issue |
Posted: Sat Mar 12, 2005 5:45 pm |
|
|
Re: PIC12F509
I discovered that at power up, the OSCAL value is not correctly loaded. It gets random data. I have confirmed that the PCB C Compiler, Version 3.221, is correctly generating the "MOVWF 05" at address 0000h. My OSCAL value is valid (factory data is intact and has not been altered).
But, here is the kicker. Upon wakeup-from-sleep, the OSCAL is correctly loaded with the factory constant. So, my workaround fix is to boot upon battery installation, go to sleep, then wakeup as soon as the user presses the start button. This is fine, but I would like to understand why I experienced the problem so that I can avoid it in the future.
Because of what I observed, I suspected my power source was involved, which is 2 fresh AA cells (3.0VDC). But moving the project to a very well regulated 5.0VDC bench supply did not correct the issue.
Anyone else run into this oddity?
-Thomas |
|
|
Ttelmah Guest
|
|
Posted: Sun Mar 13, 2005 5:00 am |
|
|
Simlar problems exist with a number of chips, if the supply rises enough to 'start', but is not high enough to give proper operation, when the oscillator begins. Without seeing the supply circuit, and how it is attached, it is hard to be sure what is going on, but (for example), if there is significant supply line capacitance, the rate of rise of the supply rail through this critial voltage range, may be significantly slower with the battery supply, than with the bench PSU. There are some critical questions. What is your oscillator?. Are you drinving MCLR?. Basically the biggest problem is usually that the oscillators take some time to start, and can cause problems if the chip starts before they have stabilised. The reset delay timer, is designed to make this less of a problem, but it can still occur. You could also be starting, then reading the OSCCAL value OK, but losing the value with a form of brownout, if instructions early in the boot, suddenly increase the battery load, before the rail has fully risen. What clock rate are you running?. How is the supply connected?. These will both affect how much margin there is...
There is a specification for the rise 'rate' of the supply rail in V/mSec, and if your battery supply does not achieve this, it would cause this type of problem.
Best Wishes |
|
|
thomasb
Joined: 12 Mar 2005 Posts: 7
|
|
Posted: Sun Mar 13, 2005 3:12 pm |
|
|
MCLR is disabled (used as an input). The power supply is not burdened with slow rise times -- the only cap is a single .1uF mono ceramic across the PIC (short leads). The leads to the power supply are short too (under 1.5 inches).
This is a simple circuit. A PIC12F509 (not PIC12C509), one decoupling cap, a push switch, and piezo alerting device. The problem occurs with the 3V battery (two AAA cells) as well as with a precision 5.0V bench supply.
I have created several dozen commercial PIC12C508/509 designs and have never experienced an OSCAL problem before. However, this is the first time I have used a PIC12F509, so perhaps it is related to this newly released flash part. |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|