Få igång en PIC16F871

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Chrille
Inlägg: 523
Blev medlem: 24 september 2003, 23:54:12
Ort: Torekov
Kontakt:

Få igång en PIC16F871

Inlägg av Chrille »

Har programmerat en PIC16F871 med ett enkelt program som ska blinka en lysdiod men det tycks inte fungera så jag funderar på om jag kopplat något fel.

Har kopplat det så här:
Ben1: 4,7K motstånd till 5V.
Ben13: till en resonator
Ben14: till samma resonator
Ben31: till jord
Ben32: till 5V

Ben21: lysdioden

är det något som är fel här eller har jag missat något?
Användarvisningsbild
Xyzzy
Inlägg: 1260
Blev medlem: 30 januari 2004, 22:31:07
Ort: Uppsala, Sweden

Inlägg av Xyzzy »

Har du lösa kondensatorer rätt kopplade till resonatorn? (om de inte finns inbyggda i resonatorn)
Är LEDen rätt vänd? (om bökigt att ändra, mät med mulitmeter på benet)
Chrille
Inlägg: 523
Blev medlem: 24 september 2003, 23:54:12
Ort: Torekov
Kontakt:

Inlägg av Chrille »

Det är inbyggda kondensatorer.

Yepp lysdioden är rätt vänt.
Användarvisningsbild
Xyzzy
Inlägg: 1260
Blev medlem: 30 januari 2004, 22:31:07
Ort: Uppsala, Sweden

Inlägg av Xyzzy »

Oki, då får jag hoppas ngn annan som är mer van med PICar kan hjälpa dig (vissa brukar även ge tips om att mäta om du har signal ut från resonatorn, men det brukar kunna bara svårt då oscilloskop belastar)
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg av cyr »

871 har väl flera pinnar för jord och matning (+5v), koppla in alla.

Sen har vi "PGM"-pinnen som används för lågspänningsprogrammering, om du inte stängt av den funktionen så kan du behöva jorda den pinnen.
Chrille
Inlägg: 523
Blev medlem: 24 september 2003, 23:54:12
Ort: Torekov
Kontakt:

Inlägg av Chrille »

Nu har jag kopplat in båda benen för jord och båda för spänningsmatning.
Har provat både med och utan jord på PGM benet men det vill bara inte fungera. :(

Har skrivigt programmet så här i PicBasic Pro, det kanske är något galet där men det tycker jag inte det borde vara.

Kod: Markera allt

loop: PORTD.2 = 1
        Pause 1000
        PORTD.2 = 0 
        Pause 1000
        GoTo loop
        End
Användarvisningsbild
tusse
Inlägg: 1364
Blev medlem: 19 augusti 2003, 21:56:17
Ort: Järfälla

Inlägg av tusse »

Prova detta

loop:
Low PORTD.2
Pause 1000
High PORTD.2
Pause 1000
GoTo loop

End
Chrille
Inlägg: 523
Blev medlem: 24 september 2003, 23:54:12
Ort: Torekov
Kontakt:

Inlägg av Chrille »

Fortfarande inget liv i kretsen. :(
Användarvisningsbild
Chribbe76
EF Sponsor
Inlägg: 1167
Blev medlem: 17 januari 2004, 22:43:17
Ort: Stockholm

Inlägg av Chribbe76 »

Kan det vara så att du har glömt att sätta TRIS för den porten.

Har du ställt in rätt inställning för oscillatorn?!

Jag brukar använda en 4Mhz kristall och 15pF och XT som säkra kort.

Det är bättre om du stänger av LVP grejen på PGM-pinnen (Hata... har kostat mig en hel dags felsökning)

Har du använt verifiering när du programmerat kretsen?!


(Jag föredrar assembler-programmering. Jag tycker man får bättre koll på vad som verkligen händer då)
Chrille
Inlägg: 523
Blev medlem: 24 september 2003, 23:54:12
Ort: Torekov
Kontakt:

Inlägg av Chrille »

Vad gör TRIS?

Jag har inte ändrat några speciella inställningar med hjälp av koden utan jag har bara den koden som står här.
Man kan ändra lite olika inställningar när jag programmerar kretsen men jag vet inte riktigt vad alla gör. Har provat att ändra lite fram och tillbaka men det blir inte bättre.

Jag har provat att verifiera kretsen efter jag har programmerat den och då får jag ett ok meddelande.

Jag använder detta programmet till programmeraren. Om du kollar under fliken lösa kretsar och väljer pic16f871 så ser du vilka inställningar som finns.
Användarvisningsbild
Chribbe76
EF Sponsor
Inlägg: 1167
Blev medlem: 17 januari 2004, 22:43:17
Ort: Stockholm

Inlägg av Chribbe76 »

Jag har tittat lite på PicBasic och det verkar som om man inte behöver sätta tris, ska tydligen vara automatiskt.

Om man sätter tris till 0 så blir den pinnen en utgång. Sätter man 1 så blir det en ingång.

Jag har inga fler ide'er men om du vill så kan du skicka den färdigkompilerade filen till mig så kan jag titta på den i MPLAB.
Jag är faktiskt lite nyfiken på hur koden ser ut efter att PicBasic har varit ute och härjat :twisted:

christian.akesson@bredband.net
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

>> Chribbe76

Antingen sätter man motsvarande tris-register till 0 för att göra pinnen till output, eller så använder man sig av "low" och "high"-kommandona.

Jag blev också nyfiken på hur PICBasic "ställer till det" i assemblerspråket, så jag kikade lite närmare på kompileringsfilerna. Men assemblerfilen man får vid kompileringen är egentligen bara ett klippmönster för hur de olika biblioteken som hela språket bygger på ska användas. Jag förmår inte klippa ihop en komplett assemblerkod nu med tanke på att jag inte är speciellt bekant med assemblerkod och kommer därför lätt göra fel. Men det är ju tankens om räknas? :wink:

Huvudsaken är ju att det fungerar för oss nybörjare :D
...vilket det iofs inte verkar göra. :?

>> Chrille

Ta en titt på programmerarinställningarna och dubbelkolla så att du valt att kompilera PICBasic-koden till rätt processor (ett vanligt irriterande fel)
Användarvisningsbild
baltazar
Inlägg: 106
Blev medlem: 19 oktober 2003, 21:50:18

Inlägg av baltazar »

>>Chrille, fick du igång den sen?
Jag har nämligen suttit en halv dag med en 16F877A och får inte igång den, och den är ju liknande 871:an. I mitt fall verkar det som om inte kristallen svänger igång, för om jag sätter ett finger på OSC1-benet så blinkar dioden, fast långsamt. Med oscilloskop kan jag inte se någon sinus alls, inte ens om jag håller dit mitt finger och dioden blinkar. Jag använder en 4 Mhz-kristall och 2 kond. på 15 pF, och XT-inställningen. Med t.ex. en 16F628 så ser man ju en fin sinus på osc-ingången.
Är det någon som har något mer tips på vad som kan vara felet?
(har använt en "riktig" programmerare)
Chrille
Inlägg: 523
Blev medlem: 24 september 2003, 23:54:12
Ort: Torekov
Kontakt:

Inlägg av Chrille »

>>Chribbe76
Jag skickar över filerna till dig så du kan kolla igenom dom.

>>$tiff
Jag använder mig av CodeDesigner Lite när jag skriver koden och där har jag valt PIC16F871 i rullgardinsmenyn så jag hoppas det blir rätt när jag kompilerar det.

>>baltazar
Tyvärr så har jag inte fått igång den än. Jag kanske skulle ta och prova med ett oscilloskop och se ifall där är något liv ifrån resonatorn.
Användarvisningsbild
Chribbe76
EF Sponsor
Inlägg: 1167
Blev medlem: 17 januari 2004, 22:43:17
Ort: Stockholm

Inlägg av Chribbe76 »

Det är inget fel på Hex-filen iaf. :)

Pause-funktionen är ganska mysko och använder 2 nivåer i stacken (lite slösaktigt med tanke på att PIC16F871 bara har 8 nivåer).
Skriv svar