Start problem med PIC18F4550
-
- Inlägg: 438
- Blev medlem: 27 mars 2008, 12:53:06
- Ort: Göteborg
Start problem med PIC18F4550
Hej
Jag sitter med en PIC18F4550 krets inkopplad med ICSP kontakt och en extern kristall på 8 mhz.(kondensatorer på 22p runt kristallen) (första gången jag kopplar upp utan "demoboard"). Problemet är att jag inte får kretsen att börja köra, har läst att "device flags" är lite krångliga på just denna krets. Jag kör mikroc och skulle uppskatta om någon kunde hjälpa mig med flaggorna. Vss och Vdd är kopplade på båda sidor och programmeringen går utan problem. Jag ska inte använda kretsens USB funktionalitet. Just nu ska jag bara ha igång nedanstående blink kod:
void main() {
PORTA = 0; // Initialize PORTA
TRISA = 0; // Configure PORTA as output
ADCON1 = 6; // Changes PORTA to digital
CMCON = 7; // Disable analog comparators
while(1) {
PORTA = ~PORTA; // toggle PORTA
Delay_ms(1000); // one second delay
}
}
Tack på förhand!
Jag sitter med en PIC18F4550 krets inkopplad med ICSP kontakt och en extern kristall på 8 mhz.(kondensatorer på 22p runt kristallen) (första gången jag kopplar upp utan "demoboard"). Problemet är att jag inte får kretsen att börja köra, har läst att "device flags" är lite krångliga på just denna krets. Jag kör mikroc och skulle uppskatta om någon kunde hjälpa mig med flaggorna. Vss och Vdd är kopplade på båda sidor och programmeringen går utan problem. Jag ska inte använda kretsens USB funktionalitet. Just nu ska jag bara ha igång nedanstående blink kod:
void main() {
PORTA = 0; // Initialize PORTA
TRISA = 0; // Configure PORTA as output
ADCON1 = 6; // Changes PORTA to digital
CMCON = 7; // Disable analog comparators
while(1) {
PORTA = ~PORTA; // toggle PORTA
Delay_ms(1000); // one second delay
}
}
Tack på förhand!
-
- Inlägg: 438
- Blev medlem: 27 mars 2008, 12:53:06
- Ort: Göteborg
Vad innebär *vad* ?
> MCLR är matad med 5v via ett 10k motstånd.
Bra!
(Och kunde ha nämnts i första inlägget...)
> Ska de vara off eller on?
Ingen aning, det beror på.
Huvudsaken är att *du* har koll på hur de ska vara.
D.v.s att du har satt CONFIG bitarna som du vill ha dom.
> (kondensatorer på 22p runt kristallen)
OK om du vill beskriva det på det sättet. Det säger dock inget
om hurvida du har kopplat rätt eller fel... "Runt kristallen" ??
> har läst att "device flags" är lite krångliga på just denna krets.
Vad har du läst och var har du läst det ?
> MCLR är matad med 5v via ett 10k motstånd.
Bra!
(Och kunde ha nämnts i första inlägget...)
> Ska de vara off eller on?
Ingen aning, det beror på.
Huvudsaken är att *du* har koll på hur de ska vara.
D.v.s att du har satt CONFIG bitarna som du vill ha dom.
> (kondensatorer på 22p runt kristallen)
OK om du vill beskriva det på det sättet. Det säger dock inget
om hurvida du har kopplat rätt eller fel... "Runt kristallen" ??
> har läst att "device flags" är lite krångliga på just denna krets.
Vad har du läst och var har du läst det ?
-
- Inlägg: 438
- Blev medlem: 27 mars 2008, 12:53:06
- Ort: Göteborg
PIC:en är kopplad enligt: 
Yttöver det på kopplingschemat finns ICSP kopplat sammt 8 lysdiodrar på port A.
När jag googlade och försökte hitta hur man skulle ställa flaggorna hittade jag ganska många som hade liknande problem med denna pic:en, dock hittade jag ingen lösning på problemet.
Frågan är alltså vad som behövs ställas in för att det ska fungera. Som jag förstår kan man ställa in om man vill köra med den interna eller den externa ocsilliatorn. Men vilken flagga är detta? Är det några andra flaggor som också måste ändras om man ändrar den?

Yttöver det på kopplingschemat finns ICSP kopplat sammt 8 lysdiodrar på port A.
När jag googlade och försökte hitta hur man skulle ställa flaggorna hittade jag ganska många som hade liknande problem med denna pic:en, dock hittade jag ingen lösning på problemet.
Frågan är alltså vad som behövs ställas in för att det ska fungera. Som jag förstår kan man ställa in om man vill köra med den interna eller den externa ocsilliatorn. Men vilken flagga är detta? Är det några andra flaggor som också måste ändras om man ändrar den?
Det här är en USB-PIC och alltså har den en lite mer komplex oscillatordel
än andra liknande PICs. Men det är bara att kolla oscillatorkapitlet
och ställa in det som man vill ha det.
Är koden som du har visat verkligen *allt* ?
Du gör ju i princip inga initieringar eller inställningar alls !?
Eftersom PGM pinnen "hänger i luften" så är det *viktigt* att LVP är *OFF*.
Ennu bättre är att lägga LVP til GND med ett motstånd.
än andra liknande PICs. Men det är bara att kolla oscillatorkapitlet
och ställa in det som man vill ha det.
Är koden som du har visat verkligen *allt* ?
Du gör ju i princip inga initieringar eller inställningar alls !?
Eftersom PGM pinnen "hänger i luften" så är det *viktigt* att LVP är *OFF*.
Ennu bättre är att lägga LVP til GND med ett motstånd.
-
- Inlägg: 438
- Blev medlem: 27 mars 2008, 12:53:06
- Ort: Göteborg
Jag testade att byta ut 18F4550:n mot en 18F452 (alltså ej USB), då fungerar allt klockrent. Så koden och hårdvaran fungerar om inte koden behöver någon speciell anpassning för 4550:an.
Jag ställde LVP = off, men behövs antagligen fler för det blev ingen skillnad. Ska kolla datablandet lite.
Hur gör man inställningarna i mikroC direkt i koden? har bara hittat hur man kan ställa in flaggorna via optionrutor.
Jag ställde LVP = off, men behövs antagligen fler för det blev ingen skillnad. Ska kolla datablandet lite.
Hur gör man inställningarna i mikroC direkt i koden? har bara hittat hur man kan ställa in flaggorna via optionrutor.
> om inte koden behöver någon speciell anpassning för 4550:an.
Och varför tror du att den inte skulle behöva det !!??
Den gamla 452'an och en USB-modell har väldigt olika oscillator-delar !
Var inte det uppenbart när du läste igenom databladet ?
Det jag menade var vanlig initiering av processorn (inkl oscillator), inte CONFIG flaggorna.
Och varför tror du att den inte skulle behöva det !!??
Den gamla 452'an och en USB-modell har väldigt olika oscillator-delar !
Var inte det uppenbart när du läste igenom databladet ?
Det jag menade var vanlig initiering av processorn (inkl oscillator), inte CONFIG flaggorna.
-
- Inlägg: 438
- Blev medlem: 27 mars 2008, 12:53:06
- Ort: Göteborg
Löste det, Tack
Följande flaggor använde ja (alla kanske inte behövs)
PLLDIV_2_1L = $00F9
CPUDIV_OSC1_PLL2_1L = $00E7
USBDIV_2_1L = $00FF
FOSC_HSPLL_HS_1H = $00FE
FCMEM_OFF_1H = $00BF
IESO_OFF_1H = $007F
PWRT_ON_2L = $00FE
BOR_ON_2L = $00FF
BORV_43_2L = $00EF
VREGEN_ON_2L = $00FF
WDT_OFF_2H = $00FE
WDTPS_256_2H = $00F1
MCLRE_ON_3H = $00FF
LPT1OSC_OFF_3H = $00FB
PBADEN_OFF_3H = $00FD
CCP2MX_ON_3H = $00FF
STVREN_ON_4L = $00FF
LVP_OFF_4L = $00FB
ICPRT_OFF_4L = $00DF
XINST_OFF_4L = $00BF
DEBUG_OFF_4L = $00FF
Följande flaggor använde ja (alla kanske inte behövs)
PLLDIV_2_1L = $00F9
CPUDIV_OSC1_PLL2_1L = $00E7
USBDIV_2_1L = $00FF
FOSC_HSPLL_HS_1H = $00FE
FCMEM_OFF_1H = $00BF
IESO_OFF_1H = $007F
PWRT_ON_2L = $00FE
BOR_ON_2L = $00FF
BORV_43_2L = $00EF
VREGEN_ON_2L = $00FF
WDT_OFF_2H = $00FE
WDTPS_256_2H = $00F1
MCLRE_ON_3H = $00FF
LPT1OSC_OFF_3H = $00FB
PBADEN_OFF_3H = $00FD
CCP2MX_ON_3H = $00FF
STVREN_ON_4L = $00FF
LVP_OFF_4L = $00FB
ICPRT_OFF_4L = $00DF
XINST_OFF_4L = $00BF
DEBUG_OFF_4L = $00FF
-
- Inlägg: 438
- Blev medlem: 27 mars 2008, 12:53:06
- Ort: Göteborg
-
- Inlägg: 438
- Blev medlem: 27 mars 2008, 12:53:06
- Ort: Göteborg
-
- Inlägg: 438
- Blev medlem: 27 mars 2008, 12:53:06
- Ort: Göteborg
> LVP_OFF
OK, det är ju rimligt eftersom du inte ritade någon pulldown på PGM/LVP pinnen.
Med LVP_ON kommer du att få alla möjliga skumma fel.
LVP/PGM pinnen plockar upp 50 Hz brum och kommer att sätta
processorn i programmerings-läge 50 ggr/sekund...
PLL konfigureringen hade väl med hastigheten att göra, antar jag.
OK, det är ju rimligt eftersom du inte ritade någon pulldown på PGM/LVP pinnen.
Med LVP_ON kommer du att få alla möjliga skumma fel.
LVP/PGM pinnen plockar upp 50 Hz brum och kommer att sätta
processorn i programmerings-läge 50 ggr/sekund...
PLL konfigureringen hade väl med hastigheten att göra, antar jag.