View previous topic :: View next topic |
Author |
Message |
alen12
Joined: 14 Mar 2014 Posts: 6
|
External clock not working on 18LF24k22 |
Posted: Thu Sep 04, 2014 2:08 pm |
|
|
I am using 18LF24k22 and I get garbage on my serial rs232 but if I switch it to internal oscillator everything works ok. Anyone can help me here. I checked my hardware and everything looks ok. I replaced 22pf capacitors and also my 8MHZ crystal but no difference. I am using CCS compiler and HSM for fuse. I also put a scope on my crystal and read 50ms which is low frequency so confused.
Code: |
#include <18lf24k22.h>
#DEVICE ADC=10
#fuses HSM, NOWDT, NOLVP, NOBROWNOUT
#use delay(clock=8M)
|
thanks, |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Thu Sep 04, 2014 2:33 pm |
|
|
Use these fuses:
Code: | #fuses HSM, NOWDT, NOLVP, PUT, BORV29, NOPLLEN |
The BORV29 fuse assumes you are running the PIC at 3.3v. |
|
|
alen12
Joined: 14 Mar 2014 Posts: 6
|
|
Posted: Thu Sep 04, 2014 2:43 pm |
|
|
IT WORKED THANK YOU, I HAVE BEEN SPENDING LOTS OF TIME YOU SAVED ME ALOT, THANK YOU |
|
|
alen12
Joined: 14 Mar 2014 Posts: 6
|
|
Posted: Thu Sep 04, 2014 2:49 pm |
|
|
where do you find fuses with their explanation what is their use? |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Thu Sep 04, 2014 3:01 pm |
|
|
First, I took your fuses and made a short test program and compiled it.
Then I looked at the bottom of the .LST file and saw the PLLEN fuse.
I knew that you wanted to run at 8 MHz from a crystal. So no PLL was
needed. I then looked at the list of fuses at the top of the 18F24K22.h
file and confirmed that the one I needed was in the list, NOPLLEN.
If you have the IDE version of the compiler (PCWHD, etc), look for the
fuses.txt file in the CCS directory. |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19552
|
|
Posted: Fri Sep 05, 2014 1:28 am |
|
|
The critical thing is where PCM_programmer looked at the LST file to see what fuses are set.
Never assume a fuse will be 'off' by default. Many won't.
If you literally compile your header, with a minimum program, the fuses listed in the .LST are:
Code: |
Configuration Fuses:
Word 1: F300 HSM PLLEN PRIMARY FCMEN IESO
Word 2: 3C18 PUT NOBROWNOUT BORV19 NOWDT WDT32768
Word 3: BF00 CCP2C1 PBADEN CCP3B5 HFOFST TIMER3C0 CCP2B5 MCLR
Word 4: 0081 STVREN NOLVP NOXINST NODEBUG
Word 5: C003 NOPROTECT NOCPB NOCPD
Word 6: E003 NOWRT NOWRTC NOWRTB NOWRTD
Word 7: 4003 NOEBTR NOEBTRB
|
Now a lot have defaulted to the safe setting (code protection etc.), but as you see, 'PLLEN' has defaulted to enabled.... |
|
|
alen12
Joined: 14 Mar 2014 Posts: 6
|
|
Posted: Fri Sep 05, 2014 11:58 am |
|
|
GOT IT, I THOUGHT AFTER I SWITCH IT TO EXTERNAL CLOCK I WOULD GET RIDE OF GARBADGE OVER SERIAL BUS, BUT ONCE A WHILE WITH JUST MY "mA" READING I GET GOOFY CHARACTERS. DO YOU KNOW WHAT COULD CAUSE THAT? |
|
|
gpsmikey
Joined: 16 Nov 2010 Posts: 588 Location: Kirkland, WA
|
|
Posted: Fri Sep 05, 2014 12:12 pm |
|
|
I can't tell if you are using software or hardware uart for the serial. If it is the software uart, then any interrupts going off during character send (bit banging) will cause "goofy" characters to be sent.
mikey _________________ mikey
-- you can't have too many gadgets or too much disk space !
old engineering saying: 1+1 = 3 for sufficiently large values of 1 or small values of 3 |
|
|
alen12
Joined: 14 Mar 2014 Posts: 6
|
|
Posted: Fri Sep 05, 2014 1:41 pm |
|
|
I am using hardware uart |
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9246 Location: Greensville,Ontario
|
|
Posted: Fri Sep 05, 2014 2:53 pm |
|
|
'goofy characters' possible causes
1) bad wiring
2) bad connector
3) bad power supply
4) bad interface chips
5) use of internal oscillator
6) out of spec xtal/caps combo
7) use of sw UART
8) not using ISR with buffer
9) EMI
10) UARTs out of spec ( >3% error on speeds).
Without seeing your code, it's a toss of a 10 sided coin.
Show us a small program that shows the problem. The phrase about 'mA reading' leads me to believe you have a 'big, clunky' program.
Start small, simply send data from PC to PIC, then back to PC via UART. It should run 100% error free at 115k200 baud all day long.
hth
jay |
|
|
|