Mikrokontrollers för nybörjare

Här skriver vi inga frågor. Här finns svaren.
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Mikrokontrollers för nybörjare

Inlägg av $tiff »

Här ges lite tips åt dig som vill börja laborera med mikrokontrollers.

Mikrokontroller?

En mikrokontroller (förkortas ofta µC), även populärt kallad enchipsdator, är ett chip som innehåller alla funktioner som behövs för att exekvera en kod som du själv kan programmera in i den. För att läsa om hur dessa fungerar, se HowStuffWorks.


För att börja programmera mikrokontrollers krävs följande:

Hårdvara
- Dator
- Mikrokontroller (med kristall)
- Programmerare

Mjukvara
- Programmeringsmjukvara
- IDE (Integrated Development Environment) = programmeringsmiljö
- Kompilator





Dator
En dator antar jag att du har eftersom du läser detta. Det går bra att arbeta i både Windows- och Linuxmiljö. Den mesta mjukvaran finns för båda plattformar. Ett krav är dock en ledig serieport, USB eller parallellport (se "programmerare").


Mikrokontroller
Självklart behöver man själva mikrokontrollern för att komma igång. Det finns många olika µC att välja på. Tre vanliga som jag tänker presentera här är:
- Basic Stamp
- PIC
- AVR



Basic Stamp är grupp färdiga moduler tillverkade av Parallax. Stampen är mycket nybörjarvänlig, det går snabbt att komma igång att experimentera. Detta på bekostnad av priset (högt) och styrkan (låg hastighet och mycket begränsade extra funktioner). Eftersom Stampen är en färdig modul behöver den bara spänning för att fungera, "plug and play".
Basic Stamp kan köpas på exempelvis Robotshop
Basic Stamp finns generellt i två familjer. Stamp 1 och Stamp 2. Tvåan är uppföljare till ettan och därmed mer intressant att abeta med. Av Stamp 2 finns det några olika modeller med extra finesser. Se tillverkarens hemsida för mer info.
Bild


PIC är en familj mikrokontrollers tillverkade av Microchip. Dessa finns i väldigt många modeller. Några vanligt förekommande PICar är PIC16F84A, PIC16F628 och PIC16F877A. Jag avråder dock från att införskaffa en PIC16F84(A), de är föråldrade, överprisade och överskattade. PIC16F628 är en utmärkt ersättare i samma klass, fast billigare.
Normalt behöver en PIC en stabiliserad spänningsmatning och en kristall för att fungera.
PIC kan köpas i välsorterade elektronikåterförsäljare, exempelvis Elfa. Går även att få som samples av tillverkaren.
PIC finns generellt i fyra familjer:
PIC10 - Nya sedan 2004. Små 6-pins ytmonterade chip med starkt begränsade finesser.
PIC12 - 8-pins, storebror till PIC10.
PIC16 - Mellan-familjen. 14-68 pin. Innehåller en hel del användbara finesser.
PIC18 - Kraftfullaste familjen. 18-80 pin. Roligast att arbeta med.
Bild



AVR är en familj mikrokontrollers tillverkade av Atmel. De har många likheter med PIC, men är lite kraftfullare och lite snabbare. Det finns många modeller på AVR, några vanliga är ATiny26, AT90S2313 och ATMega8. AVR behöver, precis som PIC, en stabil matningsspänning och en kristall för att fungera. AVRs största fördel jämfört med PIC är att alla familjer inom AVR är byggd på samma kärna, vilket gör det mycket lättare rent programmeringsmässigt att migrera mellan olika familjer/modeller.
AVR kan köpas i vissa elektronikaffärer. Hos Elfa hittar man ett urval av AVR-chip. Kan gå att få som sample, sägs det...
AVR finns i tre familjer:
ATiny - Små chip, 8-20 pin, med de nödvändigaste funktionerna.
AT - Mellanklass. På utgång?
ATMega - 28-100 pin. Kraftfulla och stora!
Bild



Kristall
För att µC ska kunna arbeta måste den ha en tidsreferens - en oscillatorkrets - som svänger ett exakt antal gånger varje sekund. Vanligtvis avänder man kristaller för detta ändamål. De som används till PIC och AVR brukar ligga mellan 4-20 MHz. För Basic Stamp är kristallen integrerad i modulen.
Den ständiga utveckligen har lett till att många µC idag har en integrerad oscillator på exempelvis 4 MHz eller 8 MHz. I följande familjer har alla medlemmar integrerade oscillatorer: PIC10, PIC12, ATiny, ATmega. Utöver dessa finns det många chip i de övriga familjerna som också har denna finess.

För de µC som inte har integrerad oscillator behövs alltså en kristall.
På Elfa kan man hitta mikroprocessorkristaller för ca 14 kr. Välj en i listan som inte har högre frekvens än vad den rekommenderade maxfrekvensen för din µC är (se dess datablad). Dessa kristaller behöver två stycken sk. lastkapacitanser för att kunna fungera korrekt. Enligt några datablad för AVR och PIC bör man välja kondensatorer med kapacitansen 12-22 pF. Om man höftar så väljer man exempelvis 18 pF. Här är några lämpliga att välja på. Du behöver alltså två kondensatorer för varje kristall.
Bild <-- Lågprofil mikropocessorkristall

Sen kommer själva inkopplingen. µC har normalt två ben som heter XTAL1 och XTAL2 (AVR) eller OSC1 och OSC2 (PIC). Mellan dessa ska man koppla in sin kristall. Kondensatorerna kopplas sedan på vardera ben på kristallen ner till jord. Förvillande, antagligen. Kolla på bilden istället!
Bild Bild



Programmerare
En programmerare är en krets man måste ha som länk mellan dator och mikrokontroller. Gränssnittet är oftast RS232 (serieporten), men parallellporten förekommer också. USB håller på att bli ett populärt alternativ.
Basic Stamp behöver ingen speciell programmerare, eftersom den är integrerad på själva modulen.
PIC oc AVR behöver båda programmerare. Här finns två alternativ: Att bygga en själv eller att köpa en färdig.
Att bygga en själv kräver förstås lite förkunskaper inom elektronik, men kan bespara dig några hundralappar.

Bygg själv (PIC/AVR):
SI-PROG


Bygg själv (PIC):
JDM
RCD
PIC-PG2 (Olimex)
The LVP-Cable
Wisp628


Bygg själv (AVR):
AVR ISP



Färdiga programmerare/utveckligskort för PIC:
VM111 (Kjell)
USB (Kjell)
Olimex (se PIC -> programmers)
ISP-PRO (Elfa)
PIC16F877 Development Board (Futurlec)
Kit182 (Dontronics)
PICEasy (MikroElektronika)
PICEasy 2 (MikroElektronika)

Färdiga programmerare/utveckligskort för AVR:
STK500 (Elfa)
STK500 (Software Crew)
ATMega Training Board



Programmeringsmjukvara för PIC/AVR:
PonyProg
IC-PROG

Programmeringsmjukvara för PIC:
WinPIC

Programmeringsmjukvara för AVR:
AVR Studio 4




IDE - Programmeringsmiljö

Basic Stamp:
Medföljer modulerna.

PIC:
MPLAB

AVR:
AVR Studio 4




Kompilator och Språk

Basic Stamp:
Basic. Inget annat. Medföljer modulerna.


PIC:
Assembler - Gratis assembler via MPLAB
Basic - Många versioner. Exempel: MikroBasic (Gratis)
C - Många versioner. Exempel: PICCLite (Gratis)
JAL - JAL


AVR:
Assembler - gratis assembler via AVR Studio 4
C - En vedertagen version: GCC (WinAVR)
Basic - En dominerande version: Bascom-AVR



Övriga länkar

AVR Freaks - AVR Fansite
PiCLiST - Fakta om allt (PIC)

Liknande FAQ
En tråd @ EDABoard om mikrokontrollerval

Lär dig assembler för AVR
Så här funkar AVR

Så här funkar PIC
PIC microcontrollers for beginners (onlinebok)
Starting with PICs


Fler länkar, kommentarer och annat nyttigt mottages gärna!



Edit 2005-01-12: Uppdatering enligt önskemål, och lite till.
Edit 2005-03-07: Uppdaterade lite länkar.
Edit 2005-07-14: Uppdatering enligt sodjans synpunkter.
Edit 2005-08-26: Semi-trasig länk.
Senast redigerad av $tiff 26 augusti 2005, 09:54:46, redigerad totalt 4 gånger.
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

Bra skrivet!

Du borde väl tillägga att alla Mega- och Tiny-AVR:er har inbyggd oscillator, så man slipper ha en extern kristall eller resonator. Även vissa PIC:ar har väl inbyggd oscillator.

En länk till AVRFreaks.net borde du kunna trycka in också. ;)
Användarvisningsbild
Xerxes
Inlägg: 248
Blev medlem: 25 januari 2004, 22:55:05
Ort: Lund
Kontakt:

Inlägg av Xerxes »

Bra skrivet, kan nog minska på de allra mest elementära frågorna lite.
Du kan lägga till EasyPic och EasyPic 2 till listan över development boards, funkar utmärkt:
http://www.mikroelektronika.co.yu/engli ... etools.htm
Användarvisningsbild
jack
EF Sponsor
Inlägg: 2059
Blev medlem: 5 oktober 2004, 17:32:27

Inlägg av jack »

Mycket bra initiativ.

Kanske vore bra att förklara lite mer om kristallen och kondingarna till PIC:en, länka till elfa osv. Känns som det är en grej som kan verka krånglig i början.

EDIT: Såg att du ändrade. Mycket bra skrivet! :tumupp:
Användarvisningsbild
Greensilver
Inlägg: 1305
Blev medlem: 21 januari 2005, 21:24:57
Ort: Sverige
Kontakt:

Inlägg av Greensilver »

Bra länkar för nybörjare:

Att bestämma sig för vilken mikrokontroller man skall satsa på är inte så lätt, jag hittade följande sidor som behanldlar detta:
http://www.dontronics.com/auto.html
http://www.edaboard.com/viewtopic.php?p=187840

När man väl valt vilken man vill köra med finns fler länkar här:

AVR assembler tutorial:
http://www.avr-asm-tutorial.net/

Start with PIC:
http://www.voti.nl/swp/
Användarvisningsbild
DeVille
Inlägg: 2359
Blev medlem: 29 mars 2004, 15:04:22
Ort: Dalsländska skogen.
Kontakt:

Inlägg av DeVille »

http://80.86.67.171/avr

Här finns 2st zip filer med bra labbar för den som vill börja med AVR
ASM samt C och realtidsssytem.

Bra läsning i teoridelarna.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43178
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Inlägg av sodjan »

Några synpunkter på listan...

"PIC10 - Nya sen 2004. Små 8-pins chip med begränsade finesser."

Skall vara 6-pins i SOT-23 kapsel (ytmonterad). 8-pin kapseln är enbart för utveckling/test. Det finns noll anledning att använda dessa om man enbart tänker använda 8-pin DIP !

"PIC12 - Föregångare till PIC10. Också 8-pins, men med lite mer kraft än PIC10."

Helt fel !
PIC12 och PIC10 är två olika familjer, ingen är föregångare till den andre.
Och igen, PIC10 är *6-pins*.

"PIC16 - Mellanmodellen. 18-68 pin. Innehåller det mesta man behöver."

14-xx pins. (PIC16F688 har 14-pinnar)

"PIC18 - Större modell. 18-80 pin. Kraftfullare än PIC16."

Lägg till att PIC18 serien är betydligt trevligare att jobba med. Bra start-PIC om man inte är beroende av absolut lägsta kostnad, men det handlar bara om ett par tior i alla fall...

"Elfa har ett gediget sortiment"
???? In your dreams... :-)

Under "Programmerare" saknas Wisp628.

cykze skrev :
"Även vissa PIC:ar har väl inbyggd oscillator"

*alla* PIC'ar som kan vara aktuella för an nybörjare *idag* har intosc.

Plocka gärna bort alla referenser till 16F84(A), eller nämn i alla fall att den ine bör användas längre. 16F628 är absolut lägsta nivå.
Användarvisningsbild
speakman
Inlägg: 4838
Blev medlem: 18 augusti 2004, 23:03:32
Ort: Ånge

Inlägg av speakman »

$tiff: Lägg gärna upp denna guide på Wikin! Det är precis sånt här som den ska vara sprängfylld med! :D

Mvh
speakman
pagge
EF Sponsor
Inlägg: 933
Blev medlem: 15 juni 2004, 00:15:08
Ort: Luleå
Kontakt:

Inlägg av pagge »

Under "några vanliga" borde du nämna atmega48. Man får väldigt mkt processor för pengarna med den. Min personliga allti-i-allo favorit.
Användarvisningsbild
Macce
Inlägg: 4301
Blev medlem: 29 maj 2003, 16:40:58

Inlägg av Macce »

Tog bort lite, mer eller mindre, onödiga inlägg pga allmän begäran.

Har ni några kommentarer och/eller förslag att komma med, skriv dem gärna ner. Men annat skall inte tas upp här.

$tiff, går du med på att lägga upp innehållet på Wikin eller ger du tillåtelse åt någon att göra det?
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Självklart ska den in i Wikin!
Om någon känner sig manad så får de gärna kopiera den (t.ex. in i wikin).
Ju fler som kan läsa och dra nytta av detta desto bättre!
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

Jag fixar det. (Så att inte flera börjar med samma sak.)

edit: Inlagt. Men det blir lite dubbelt med dels Mikrokontrollerssidan och dels AVR- och PIC-sidorna. Alla sidor behövs men det är frågan vad som ska ligga var.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43178
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Inlägg av sodjan »

Det "känns" som om denna sida borde vara översikten, d.v.s jämförelser, olika tillverkare o.s.v.

Detaljerna, d.v.s länkar till kompilatorer t.ex, kan sedan ligga på respektive "produkt-sida" (AVR/PIC/whatever).

För den som inte vet vad "AVR" eller "PIC" är, borde det vara naturligt att gå in via "Mikrokontroller" sidan.

Det betyder också att eventuella referense/länkar mellan sidorna borde gå *från* Mikrokontrollersidan *till* AVR/PIC sidorna, bara i undantag åt andra hållet.
Användarvisningsbild
strombom
Inlägg: 3305
Blev medlem: 27 maj 2003, 10:50:20
Ort: Västra Götaland
Kontakt:

Inlägg av strombom »

vad snyggt det blev cykze !

en bra grund att börja från
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43178
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Inlägg av sodjan »

En liten kommersiell fundering... :-)

Jag såg att det finns en länk till Wouter van Ooijen's websida för Wisp628.
Eftersom jag själv (återför-) säljer Wisp628 i Sverige, så undrar jag vad som
gäller för dessa länkar.

Som alla säkert förstår, skulle jag även gärna se en länk till min egen Wisp628 sida...

Samma gäller för "nakna" PIC processorer, där det länkas till ELFA (sannolikt
en av de sämsta PIC distributörerna i Sverige, if you ask me).
Även där skulle jag gärna vilja få "vara med"...

Som sagt, nyfiken på hur detta skall hanteras. :-)
Skriv svar