PIC16F877A + 20 MHz kristall.. Funkar ej.
PIC16F877A + 20 MHz kristall.. Funkar ej.
Hej!
Försöker få en 16F877A att funka med en 20 MHz kristall..
Jag lyckas programmera den men processorn går inte igång.
Har ett led-blink program men inget händer.
Kristallen är kopplad "som man ska", dvs över OSC1 & OSC2
med 2 st 22pF kondingar till GND.
Jag försökte hitta info i databladet om detta, men hittade inget
som verkar strida emot hur jag har gjort/kopplat.
Något som har nåt tips?
Försöker få en 16F877A att funka med en 20 MHz kristall..
Jag lyckas programmera den men processorn går inte igång.
Har ett led-blink program men inget händer.
Kristallen är kopplad "som man ska", dvs över OSC1 & OSC2
med 2 st 22pF kondingar till GND.
Jag försökte hitta info i databladet om detta, men hittade inget
som verkar strida emot hur jag har gjort/kopplat.
Något som har nåt tips?
- bengt-re
- EF Sponsor
- Inlägg: 4829
- Blev medlem: 4 april 2005, 16:18:59
- Skype: bengt-re
- Ort: Söder om söder
- Kontakt:
Vad fungerade inte?
Snurrade inte kristallen igång?
har du ställt in HS-osc?
Kolla config och kolla att du inte har kortis och att du inte har tappat kristallen..
Det brukar alltid fungera, så vore märkligt om det inte gjorde det. 32khz kristaller kan vara lite luriga att starta ibland, men HS-kristaller skall bara fungera...
Snurrade inte kristallen igång?
har du ställt in HS-osc?
Kolla config och kolla att du inte har kortis och att du inte har tappat kristallen..
Det brukar alltid fungera, så vore märkligt om det inte gjorde det. 32khz kristaller kan vara lite luriga att starta ibland, men HS-kristaller skall bara fungera...
sodjan:
Jag använder mikroPascal, öppnade en exempel-kod som följer med programmet för 16F877A, ändrade bara PORTB till PORTD i koden, och kompilerade det, sedan skickade över till PICen.
Kod:
Och jag använde samma config som redan var inställt för den kod-filen/projektet jag öppnade:
_LVP_OFF
_WDT_OFF
_HS_OSC
Jag använder mikroPascal, öppnade en exempel-kod som följer med programmet för 16F877A, ändrade bara PORTB till PORTD i koden, och kompilerade det, sedan skickade över till PICen.
Kod:
Kod: Markera allt
program led_blinking;
begin
TRISD := 0; // PORTD is output
PORTD := 0; // Turn off all diodes
while true do // An infinite loop
begin
PORTD := not PORTD; // toggle diodes
Delay_ms(1000); // wait for one second
end;
end.
_LVP_OFF
_WDT_OFF
_HS_OSC
Så där jag !
Varför hade du inte med allt det där från början?
> och kompilerade det,
Självklart utan fel, eller hur ?
Har du kollat lite i list/map filer så allt ser OK ut ?
> sedan skickade över till PICen.
Hur då ? Med vad för verktyg/programmerare ? Utan fel ?
Om vi antar att allt är rätt så långt, så skulle jag
säga att du har kopplat lysdioderna bakfram.
Eller att programmet aldrig kom in i processorn.
Varför hade du inte med allt det där från början?

> och kompilerade det,
Självklart utan fel, eller hur ?
Har du kollat lite i list/map filer så allt ser OK ut ?
> sedan skickade över till PICen.
Hur då ? Med vad för verktyg/programmerare ? Utan fel ?
Om vi antar att allt är rätt så långt, så skulle jag
säga att du har kopplat lysdioderna bakfram.
Eller att programmet aldrig kom in i processorn.
- bengt-re
- EF Sponsor
- Inlägg: 4829
- Blev medlem: 4 april 2005, 16:18:59
- Skype: bengt-re
- Ort: Söder om söder
- Kontakt:
Keramiska hålmonterade har jag stött på en och annan som varit trasig, men aldrig någon sin en SMD-konding (iofs- med kapacitans utanför spec, men inte helt trasig iaf). Oftast så beror skadan på hård hantering - värme förefaller inte döda keramiska kondensatorer. Räknade för skojs skull på det - med 0,2mm lamminat så går det faktist att få till 16-22pF bara med kretskortet om man vill....
I övrigt - hålmonterade kondensatorer över omkring 20MHz litar jag föga på... Monteringen, benlängden och kretskortslayouten kan få värdet att slå rätt många pF.... Ävenom man kör enkelsidigt och hålmonterat så är det klokt att sätta ytisar till lastkondensatorer... Eller om man inte har för höga tolleranskrav - kör med resonator som har inbyggda lastkondingar..
I övrigt - hålmonterade kondensatorer över omkring 20MHz litar jag föga på... Monteringen, benlängden och kretskortslayouten kan få värdet att slå rätt många pF.... Ävenom man kör enkelsidigt och hålmonterat så är det klokt att sätta ytisar till lastkondensatorer... Eller om man inte har för höga tolleranskrav - kör med resonator som har inbyggda lastkondingar..