'Re: 12C508 too fast?'
| I've got two 12C508 JW parts, and when I tried to read the data out
with the PICStart programmer, it wouldn't show me what was in the last
memory location. I've since got a socket for my PROMATE, but haven't
tried it out yet to see if I can read the last address.
Since the top of the 12C508 JW parts is ALL window, I think you're
right about putting the number on the bottom.
______________________________ Reply Separator _________________________________
Subject: Re: 12C508 too fast?
Author: BROUHAHA.COM at internet eric
Date: 1/31/97 12:58 AM
Gary M. Diana Sr." <VIVANET.COM> wrote: gmdsr
> The word was you needed to READ the JW part before programming
> it the first time, to read the value stored in the last
> memory location. If you just went ahead and programmed the
> chip, then this valkue, for that part, is lost forever.
I don't have any 12C50x JW parts yet, but when I do get them I
think I'll read the value and write it on the ceramic with a
permanent marker. I think I've got a sufficiently fine-tipped
one around here somewhere. Might have to write it on the
Thanks to all who answered my 12C508 JW question. There have been a large
number of posts concerning the matter, so let me summarize the answer: you
must read the calibration constant out of the last location (0x01ff in the
12C508) and write it down somewhere PRIOR to the first UV erase cycle or you
will loose it.
My problem seems to be different; In the last location I have 'movlw 0xcd',
and in the first location I have 'movwf 0x5'. As the 12c508 has a 5x core,
it should vector on power-up to the last loaction, which will place the
calibration constant in W. Then the PC should roll over and write this
value into OSCCAL because of the instruction in the first byte of memory.
An increment (or decrament) of the calibration constant by one is supposed
to change the period by 4ns, according to the specs. However, I have tried
many different calibration values (FF, E0, CD), and none of them seem to
change the period of a pin I am toggling on an output port and watching with
a scope. A one ms signal is .8 ms long.
I am using a CCS compiler, and am beginning to think the problem might lie
within its delay routine, as I cannot see what else might be wrong.
However, the compiler's delay routines have worked well before, and it is
odd that changing the cal. constant wouldn't change the pin toggle rate.
Thanks to all who responded previously; this list truly is effective!
In message <netins.net> 126.96.36.19970131105156.3e074250MITVMA.MIT.EDUPICLIST
> Thanks to all who answered my 12C508 JW question. There have been a large
> number of posts concerning the matter, so let me summarize the answer: you
> must read the calibration constant out of the last location (0x01ff in the
> 12C508) and write it down somewhere PRIOR to the first UV erase cycle or you
> will loose it.
Does anyone have a simple method one could use to find what the
calibration value would have been if one were to erase the
chip before writing it down? <sigh>
|Todd Peterson <MITVMA.MIT.EDU> wrote: PICLIST
> I have tried many different calibration values (FF, E0, CD), and
> none of them seem to change the period of a pin I am toggling on an
> output port and watching with a scope. A one ms signal is .8 ms
> I am using a CCS compiler, and am beginning to think the problem
> might lie within its delay routine, as I cannot see what else might
> be wrong. However, the compiler's delay routines have worked well
> before, and it is odd that changing the cal. constant wouldn't
> change the pin toggle rate.
> Suggestions, anyone?
Does the CCS compiler have explicit support for the 12C508? If not,
and if it's just generating 16C5x code, it may be overwriting the
OSCCAL value as part of its built-in PORTA initialization (on the
12C50x, register 5 holds the OSCCAL value; on the 16C5x, that
register holds the PORTA value).
Just a thought...
=== Andrew Warren - ix.netcom.com === fastfwd
=== Fast Forward Engineering - Vista, California ===
=== Custodian of the PICLIST Fund -- For more info, see: ===
=== http://www.geocities.com/SiliconValley/2499/fund.html ===
I don't yet have any way to program one of these, but here's what
I would do:
If you have access to a short wave radio receiver that tunes in the
4 MHZ range and has an accurately calibrated frequency display,
you could power up the pic and tune between 4 and 5 MHZ with the receiver's
antenna near the PIC and look for the carrier of the oscillator's signal.
There are apt to be lots of other signals in this frequency range so you may
have to hunt a bit before you find the PIC. Since it is a RC oscillator,
it will probably be a bit shaky and may change frequency with the touch of
a finger to the chip, but once you find it, you can start changing the
calibration number until you get it as close to 4 MHZ as practical.
Short wave receivers are good for doing things like this because
you don't have to connect anything directly to the chip that might load the
oscillator and change the frequency.
Modern short wave or HF receivers usually have a PLL-based frequency
synthesizer so the digital readout of the dial is fairly close to the exact
Martin McCormick WB5AGZ Stillwater, OK 36.7N97.4W
OSU Center for Computing and Information Services Data Communications Group
Todd Peterson <netins.net> wrote: elab
> Hopefully someone from CCS is on this list
Yes, there's someone (I forget his name now) from CCS on the list.
That is, he USED to be here... I haven't seen any messages from him
since someone posted a long list of CCS-compiler bugs to the list
three weeks ago.
Andrew Warren - ix.netcom.comfastfwd
Fast Forward Engineering, Vista, California
Todd Peterson wrote:
Just something to think about:
A scope is only about 3% accurate, maybe less depening on
model. That's about + or - 4.17us or 240khz, if it's in
calibration. When was the scope last calibrated? It
might be better to use a frequency counter. And again,
check the calibration.
More... (looser matching)
- Last day of these posts
- In 1997
, 1998 only
- New search...