PIC Hello World

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
kebabpizza
Inlägg: 34
Blev medlem: 6 maj 2008, 11:25:52
Ort: Strömstad

PIC Hello World

Inlägg av kebabpizza »

Hello !

Försöker sätta mig in i PIC-världen, och har lyckats programmera min PIC till att göra roliga saker på "labb-kortet" (tillika programmeraren).
Nu tänkte jag gå ett steg till och programmera pic till min egen krets.

Hur skall en sådan krets se ut, för ett Hello World-exempel? (tänkte mig bara blinka en enstaka LED)

PIC16F628
LED (vet inte värden, kommer från "överskott"-sats från Kjell)

Vad behövs mer ? Motstånd ?
Skall oanvända pinnar på picen jordas?

Vilka CONFIG-bits skall man använda ?
Läste http://www.elektronikforumet.com/forum/ ... hp?t=23633 men blev inte mkt klokare.
Den jag har nu ser ut följande:

Kod: Markera allt

__CONFIG        _BODEN_ON & _CP_OFF & _DATA_CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_ON & _INTRC_OSC_CLKOUT
Läst spec, och förstår mkt men inte allt.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9127
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Inlägg av AndersG »

Nu vet jag ju inte vilken programmerare du har, men kolla in Microchip's Low Pin Count Demo Board. Annars:

Bild

Det enda du eg behöver är kretsen och ICD-headern (längst till höger). För ledden behöver du ett seriemotstånd, ca 100 ohm.

Koppla ett motstånd på ca 1k från MCLR till Vdd och en konding på ca 100nF till jord.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> och förstår mkt men inte allt.

OK, och vad betyder "men inte allt" ?

> LED (vet inte värden,...

Värden och värden. En LED är en LED är en LED, i princip. :-)
Se även : http://elektronikforumet.com/wiki/index ... le=Lysdiod

> Motstånd ?

Ja, en standard labb-sats från Kjell eller C-O rekomenderas.

> Skall oanvända pinnar på picen jordas?

Oanvända I/O pinnar ska antingen programmeras som utgånger (enklast,
kräver inga extra komponenter eller kablar) eller läggas till Vdd eller GND.

> Vilka CONFIG-bits skall man använda ?

Alla används alltid, det är inget du kan påverka.
Frågan är bara hur de ska sättas (d.v.s 1/0 eller på/av).

Den __CONFIG som du visade ser väl OK ut, är det något som du är
osäker på när det gäller den ?
kebabpizza
Inlägg: 34
Blev medlem: 6 maj 2008, 11:25:52
Ort: Strömstad

Inlägg av kebabpizza »

Tack folkens !

Har nu lyckats med att få två led att blinka i min egen krets. Vilken känsla!

Bild

Hittade ingen konding på 100pF, så jag drog MCLR genom 10kOhm till VDD (hittade denna sidan http://www.diylife.com/2008/02/15/progr ... ontroller/ ) och det funkade.
Lyckades hitta rätt config också.

Har storhandlat på K&C, blandad sats motstånd och blandade kondisar samt massa annat kul. Nu är jag bra bit på väg.

Tack!
kebabpizza
Inlägg: 34
Blev medlem: 6 maj 2008, 11:25:52
Ort: Strömstad

Inlägg av kebabpizza »

AndersG: Du sskrev jag skall ha ett mindre motstånd och en konding, på ett annat ställe stod det "större motstånd och en switching diode", och på sidan jag länkade till stod det bara 10kOhm motstånd, och det funkar onekligen men kanske inte att rekommendera eller?
Förslag ?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

För MCLR så gäller först och främst vad som rekomenderas i databladet,
vad det nu är. Men visst så fungerar oftast vad som helst mellan 1 och 100
KOhm utan problem.

Det som saknas är lite "avkoppling", den generella regeln är att alltid
sätta 100 nF direkt mellan Vdd och GND så nära processorn som möjligt
(men t.ex mellan de två power bussarna till vänster på bilden är helt OK).
D.v.s där den svarta och den röda tråden slutar till vänster. Denna konding
släcker ut högfrekventa störningar som processorn själv genererar.

Beroende på vad det hela matas ifrån så kan det även vara bra att sätta
ditt en 10-100 uF elektrolyt på samma plats för att "svälja" variationer i
förbrukningen (t.ex när de två LED'arna tänds och släcks).

Sen så ser de två motstånden lite väl kraftiga ut, de riskerar att
spänna ut fjädrarna i labbplattan så att det kanske glappar i framtiden när
du använder klenare trådar eller komponentben.

Slutligen så ser jag inte trådarna till programmeraren, eller är inte
kretsen programmerad på plats på labbplattan ? Om inte, så är det något
som du borde fundera på, allt blir mycket enklare.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9127
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Inlägg av AndersG »

De viktiga är att inte koppla MCLR direkt till Vdd som det står i vissa äldre böcker/webbplatser. Som Sodjan säger så är motståndet inte kritiskt, 1..100k och sedan en konding, ej heller denna kritisk, men 100nF brukar vara lagom. Samma värde är även lagom som avkoppling. Rkommenderar att du köper en trave keramiska sådana.

Som Sodjan säger så underlättare det även om man sätter en "header" för programmeraren direkt på labbplattan. På in bild ser du hur jag gjort.

PS. Du kan ladda ned PicKIT lessons från Microchip. Går du igenom dem får du en bra orientering i grunderna.
kebabpizza
Inlägg: 34
Blev medlem: 6 maj 2008, 11:25:52
Ort: Strömstad

Inlägg av kebabpizza »

Fantastiskt forum detta.
AndersG: Skall kolla på PicKIT Lessons, verkar bra. Har inte kopplat in ICSP-header för jag har ingen diod, och det blir mystiskt om jag kopplar MCLR (som också är VPP) till headern och det läggs en prog-spänning utan diod (eller?). Jag får stå ut tills jag skall till Kjell nästa gång.

Köpte ett gäng keramiska kond. men var lite svårt att läsa värdena på dem ( jag är snål så köpte "överskottspack" för 35kr :? ) hittat mängder av 33nF så det är väl inga problem att parallellkoppla tre st (så blir det 99nF) tills jag får tag på riktiga grejer. Borde funka eller ?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> om jag kopplar MCLR (som också är VPP) till headern och det läggs en prog-spänning

Ser ingen problem. MCLR måste ha Vpp. Och Vpp är ju inte kopplad
någon annstans.

> hittat mängder av 33nF

33 eller 100, spelar sannolikt ingen större roll, det är bara avkoppling...
kebabpizza
Inlägg: 34
Blev medlem: 6 maj 2008, 11:25:52
Ort: Strömstad

Inlägg av kebabpizza »

Just det !
Nu kan man inte tänka själv längre... Hänger tydligen för mkt på forum :D
Visst blir det VPP -> VDD, läste på nån sajt där de kopplade MCLR till jord, och då behövdes så klart en diod. Här bli annorlunda, och mkt lättare hehe...
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Visst blir det VPP -> VDD,...

Via ett 10 KOhm (eller så) motstånd dessutom.
Så det blir ju knappast en "kortis"...
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9127
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Inlägg av AndersG »

AndersG: Skall kolla på PicKIT Lessons, verkar bra. Har inte kopplat in ICSP-header för jag har ingen diod,
Vad skall du med diod till? De behövs bara om du ha andra funktioner kopplade på programmeringspinnarna.
kebabpizza
Inlägg: 34
Blev medlem: 6 maj 2008, 11:25:52
Ort: Strömstad

Inlägg av kebabpizza »

Vad skall du med diod till?
Skrev i förra inlägget att jag kom på att jag inte behövde dioden eftersom jag dragit MCLR till VCC och inte jord. Där jag läste hade de istället dragit MCLR till jord, och behövde då en diod för att kunna koppla VPP till samma pinne vid ICSP-programmering.
Min MCLR är nu kopplad till plus, och jag behöver ingen diod. Fantastiskt! (Så mycket lättare det går om jag tänker lite ibland istället för att bara läsa innantill)

Ha en trevlig kväll :)
De behövs bara om du ha andra funktioner kopplade på programmeringspinnarna.
Just nu är ju MCLR och VPP samma pinne, därav diod, men som sagt, jag tror inte jag behöver det, eller ?
kebabpizza
Inlägg: 34
Blev medlem: 6 maj 2008, 11:25:52
Ort: Strömstad

Inlägg av kebabpizza »

Läste manualen för programmeraren, och hittade följande kopplingsschema.
Här har de satt dioder eftersom programmeringsspänningen ligger mellan 12 och 14 V.
Bild
These IC's are converted to programming mode by applying the programming voltage of 12 to 14V to the "/MCLR" pin. From this point onwards RB6 is used as a CLOCK input while RB7 is modified into a DATA-input/output-connection.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

OK, är det en Welleman K8048 ?

När det gäller dioden vid MCLR så kommer ju 100 K
motståndet också att förhindra större problem. Det är
osannolikt att Vpp skulle kunna höja spänningen på
+5V så att det enda går att mäta.

Dioden vid Vdd förstår jag inte riktigt vad den har för funktion,
och Welleman manualerna brukar väl vara "så där"...
Skriv svar