Skillnad mellan versioner av "Mikrokontroller"

Från ElektronikWikin
Hoppa till navigering Hoppa till sök
 
(22 mellanliggande versioner av 9 användare visas inte)
Rad 1: Rad 1:
'''Mikrokontroller?'''
'''Mikrokontroller?'''


En mikrokontroller (förkortas ofta µC (µ = micro, C = Controller)), ä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 [http://electronics.howstuffworks.com/microcontroller.htm HowStuffWorks].
En mikrokontroller (förkortas ofta µC ; µ = micro, C = Controller), ä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 [http://electronics.howstuffworks.com/microcontroller.htm HowStuffWorks].




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


'''Hårdvara'''
'''Hårdvara''':
* Dator
* Dator
* Mikrokontroller (med kristall)
* Mikrokontroller (med kristall)
* Programmerare
* "Programmerare" som överför mjukvara från datorn till mikrokontrollern


'''Mjukvara'''
'''Mjukvara''':
* Programmeringsmjukvara
* Programmeringsverktyg i form av mjukvara
* IDE (Integrated Development Environment) = programmeringsmiljö
* IDE (Integrated Development Environment) = programmeringsmiljö
* Kompilator
* Kompilator
Rad 31: Rad 31:
== Basic Stamp ==
== Basic Stamp ==


Basic Stamp är grupp färdiga moduler tillverkade av [http://www.parallax.com/ 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".
[[Bild:BS2.gif|right]]Basic Stamp är grupp färdiga moduler tillverkade av [http://www.parallax.com/ 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 [http://www.robotshop.se/catalog/index.php Robotshop]
Basic Stamp kan köpas på exempelvis [http://www.robotshop.se/catalog/index.php 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.
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:BS2.gif]]


== PIC ==
== PIC ==
PIC är en familj mikrokontrollers tillverkade av [http://www.microchip.com/ Microchip]. Dessa finns i väldigt många modeller. Några vanligt förekommande PICar är PIC16F84A, PIC16F628A och PIC16F877A. Jag avråder dock från att införskaffa en PIC16F84(A), de är föråldrade, överprisade och överskattade. PIC16F628A är en utmärkt ersättare i samma klass, fast billigare.
[[Bild:PIC_liten.jpg|right]]PIC är en familj mikrokontrollers tillverkade av [http://www.microchip.com/ Microchip]. Dessa finns i väldigt många modeller. Några vanligt förekommande PICar är PIC16F84A, PIC16F628A och PIC16F877A. Jag avråder dock från att införskaffa en PIC16F84(A), de är föråldrade, överprisade och överskattade. PIC16F628A ä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. Många av de nyare (d.v.s i princip alla modeller som är aktuella för hobbyister) har även en inbyggd oscillator, och kan då köras utan kristall.
Normalt behöver en PIC en stabiliserad spänningsmatning och en kristall för att fungera. Många av de nyare (d.v.s i princip alla modeller som är aktuella för hobbyister) har även en inbyggd oscillator, och kan då köras utan kristall.
Rad 48: Rad 47:
PIC finns i flera olika familjer:
PIC finns i flera olika familjer:
*[http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1009&mid=10&lang=en&pageId=74 PIC10F] - Små 6-pins ytmonterade chip (SOT23-6) med lite begränsade finesser. Även i standard 8-pin DIP för utveckling och test.
*[http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1009&mid=10&lang=en&pageId=74 PIC10F] - Små 6-pins ytmonterade chip (SOT23-6) med lite begränsade finesser. Även i standard 8-pin DIP för utveckling och test.
*[http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1001&mid=10&lang=en&pageId=74 PIC12F] - 8-pin. PIC12F5xx har en äldre arkitektur och är tänkta som "Flash-upgrade" till äldre PIC12C modeller. PIC12F6xx har samma (lite bättre) arkitektur som PIC16F serien.
*[http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1001&mid=10&lang=en&pageId=74 PIC12F] - 8-pin. PIC12F5xx har en äldre arkitektur och är tänkta som "Flash-upgrade" till äldre PIC12C modeller. PIC12F6xx har samma (lite bättre) arkitektur som PIC16F serien. 12F615 är en ny medlem i familjen. Billig och med nya CCP-modulen är saker som i många fall gör den bättre än 12f675 som börjar bli lite gammal idag.
*[http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1002&mid=10&lang=en&pageId=74 PIC16F] - Mellan-familjen. 14-68 pin. Innehåller en hel del användbara finesser.
*[http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1002&mid=10&lang=en&pageId=74 PIC16F] - Mellan-familjen. 14-68 pin. Innehåller en hel del användbara finesser.
*[http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1004&mid=10&lang=en&pageId=74 PIC18F] - Kraftfullaste familjen. 18-80 pin. Roligast att arbeta med. Enklare assembler kodning än PIC16. [http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014&part=SW006011 C-kompilator] från Microchip som finns i en gratis "Student Edition" variant (med vissa begränsningar i optimeraren).
*[http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1004&mid=10&lang=en&pageId=74 PIC18F] - Kraftfullaste familjen 8-bitars. 18-80 pin. Enklare assembler kodning än PIC16. [http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014&part=SW006011 C-kompilator] från Microchip som finns i en gratis "Student Edition" variant (med vissa begränsningar i optimeraren).
*[http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2529&param=en024856&pageId=74 PIC24F] - En ny 16-bitars arkitektur. Ej i DIP, dock.
*[http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2529&param=en024856&pageId=74 PIC24F] - En ny 16-bitars arkitektur. Ej i DIP, dock.
*dsPIC - I princip samma arktitektur som PIC24, men med en "DSP-engine". Två varianter, [http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=8071&mid=14&lang=en&pageId=75 dsPIC30] samt [http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=8081&mid=14&lang=en&pageId=75 dsPIC33]
*dsPIC - I princip samma arktitektur som PIC24, men med en "DSP-engine". Två varianter, [http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=8071&mid=14&lang=en&pageId=75 dsPIC30] samt [http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=8081&mid=14&lang=en&pageId=75 dsPIC33]


Sen finns det även ett stort antal "C-modeller" (PIC16Cxxxx). Se upp med dom, de är OTP ("One Time Programmable") och är inte avsedda för hobbyister !!
Sen finns det även ett stort antal "C-modeller" (PIC16Cxxxx). Se upp med dom, de är OTP ("One Time Programmable") och är inte avsedda för hobbyister !!
[[Bild:PIC_liten.jpg ]]


== AVR ==
== AVR ==


[http://www.atmel.com/avr AVR] är en familj mikrokontrollers tillverkade av [http://www.atmel.com/ 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 [http://www.atmel.com/dyn/products/product_card.asp?part_id=2967 ATtiny26], [http://www.atmel.com/dyn/products/product_card.asp?part_id=3229 ATtiny2313] och [http://www.atmel.com/dyn/products/product_card.asp?PN=ATmega88 ATmega88]. AVR behöver, precis som PIC, en stabil matningsspänning och en oscillator (finns inbyggd i de flesta modeller) 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.
[[Bild:AVR_liten.jpg|right]][http://www.atmel.com/avr AVR] är en familj mikrokontrollers tillverkade av [http://www.atmel.com/ 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 [http://www.atmel.com/dyn/products/product_card.asp?part_id=2967 ATtiny26], [http://www.atmel.com/dyn/products/product_card.asp?part_id=3229 ATtiny2313] och [http://www.atmel.com/dyn/products/product_card.asp?PN=ATmega88 ATmega88]. AVR behöver, precis som PIC, en stabil matningsspänning och en oscillator (finns inbyggd i de flesta modeller) 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 t ex [http://www.elfa.se/ Elfa] hittar man ett urval av AVR-chip. Kan även gå att få som sample, sägs det...
AVR kan köpas i vissa elektronikaffärer. Hos t ex [http://www.elfa.se/ Elfa] hittar man ett urval av AVR-chip. Kan även gå att få som sample.


AVR finns i olika familjer:
AVR finns i olika familjer:
*ATtiny - Små chip, 8-20 pin, med de nödvändigaste funktionerna.
*[http://www.atmel.com/dyn/products/devices.asp?family_id=607#791 ATtiny] - Små chip, 8-20 pin, med de nödvändigaste funktionerna.
*ATmega - 28-100 pin. Kraftfulla och stora!
*[http://www.atmel.com/dyn/products/devices.asp?family_id=607#760 ATmega] - 28-100 pin. Kraftfulla och stora!
*AT90S - Den här serien nyproduceras inte längre, utan har ersatts helt av Tiny- & Mega-serien.
*AT90S - Den här serien nyproduceras inte längre, utan har ersatts helt av Tiny- & Mega-serien.
*AT90USB - Stora AVR:er med USB-stöd.
*[http://www.atmel.com/dyn/products/devices.asp?family_id=607#1761 AT90USB] - Stora AVR:er med USB-stöd.
*AT90CAN - Stora AVR:er med CAN-stöd.
*[http://www.atmel.com/dyn/products/devices.asp?family_id=607#1609 AT90CAN] - Stora AVR:er med CAN-stöd.
*...
*[http://www.atmel.com/products/avr32/ AVR32] - Riktigt kraftfulla 32-bit processorer som inte spelar i samma division som de andra familjerna här.
*[http://www.atmel.com/products/avr32/ AVR32] - Motsvarande dsPIC (se PIC ovan). Riktigt kraftfulla processorer som inte spelar i samma division som de andra familjerna här. Obs: Finns ej att köpa än!
*[http://www.atmel.com/products/AVR/xmega.asp?family_id=607&source=avrhomereadmore XMEGA] - 32-100 pin. Riktigt kraftfulla 8-bitars med DMA,DAC,ADC,SDRAM,mm.


http://moffa.nu/stiff/elektronik/avr_liten.jpg
[http://www.atmel.com/dyn/products/param_table.asp?family_id=607&OrderBy=part_no&Direction=ASC Parameterlista över olika AVR:er]


= Kristall =
= 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.
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 1-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.
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, ATXmega. 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.
För de µC som inte har integrerad oscillator behövs alltså en kristall.
På Elfa kan man hitta [http://www.elfa.se/elfa-bin/dyndok.pl?vat=0&dok=2013474.htm 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. [http://www.elfa.se/elfa-bin/dyndok.pl?vat=0&dok=4763.htm Här] är några lämpliga att välja på. Du behöver alltså två kondensatorer för varje kristall.
På Elfa kan man hitta [http://www.elfa.se/elfa-bin/dyndok.pl?vat=0&dok=2013474.htm 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. [http://www.elfa.se/elfa-bin/dyndok.pl?vat=0&dok=4763.htm Här] är några lämpliga att välja på. Du behöver alltså två kondensatorer för varje kristall.


http://moffa.nu/stiff/elektronik/kristall.gif <-- Lågprofil mikropocessorkristall
[[Bild:Kristall.gif]] <-- Kristall (lågprofil)


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!
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!


http://moffa.nu/stiff/elektronik/osc.gif http://moffa.nu/stiff/elektronik/xtal.gif
[[Bild:Osc.gif]] [[Bild:Xtal.gif]]


Det finns även ett alternativ i form av "Resonatorer", dessa finns med inbyggda lastkondensatorer och lösa kondensatorer behövs därför inte. Dessa resonatorer är oftast billigare än kristaller men inte fullt lika exakta i frekvensen men till projekter som inte är mycket känsliga med timing duger de mycket väl.
Det finns även ett alternativ i form av "Resonatorer", dessa finns med inbyggda lastkondensatorer och lösa kondensatorer behövs därför inte. Dessa resonatorer är oftast billigare än kristaller men inte fullt lika exakta i frekvensen men till projekter som inte är mycket känsliga med timing duger de mycket väl.
Rad 98: Rad 95:
'''AVR'''
'''AVR'''
*Bygg själv
*Bygg själv
**[http://www.fischl.de/usbasp/ USBasp]
**[http://www.lancos.com/prog.html#avrisp AVR ISP]
**[http://www.lancos.com/prog.html#avrisp AVR ISP]
**[http://www.lancos.com/siprogsch.html SI-PROG]
**[http://www.lancos.com/siprogsch.html SI-PROG]
**[http://www.serasidis.gr/circuits/avrprog/avrprog.htm ULTRA LOW COST PROGRAMMER] OBS! ANVÄND "AVREAL32.EXE" SOM PROGRAMVARA


*Färdiga programmerare/utveckligskort
*Färdiga programmerare/utveckligskort
**[http://www.lawicel-shop.se/shop/default.aspx?tillsida=prod&productid=207336&lng=SWE AVRISP mkII]
**[http://www.lawicel-shop.se/shop/default.aspx?tillsida=prod&productid=245687&lng=SWE AVR Dragon] (stöder även emulering)
**[http://www.elfa.se/elfa-bin/dyndok.pl?dok=2022203.htm STK500] (Elfa)
**[http://www.elfa.se/elfa-bin/dyndok.pl?dok=2022203.htm STK500] (Elfa)
**[http://www.swcab.nu/cgi-bin/store/commerce.cgi?product=avr STK500] (Software Crew)
**[http://www.swcab.nu/cgi-bin/store/commerce.cgi?product=avr STK500] (Software Crew)
Rad 136: Rad 137:
**[http://www.ic-prog.com/ IC-PROG]
**[http://www.ic-prog.com/ IC-PROG]
**[http://www.qsl.net/dl4yhf/winpicpr.html WinPIC]
**[http://www.qsl.net/dl4yhf/winpicpr.html WinPIC]
**AVREAL32.EXE


= IDE - Programmeringsmiljö =
= IDE - Programmeringsmiljö =
Rad 155: Rad 157:




'''PIC'''
'''[http://www.elektronikforumet.com/wiki/index.php/PIC PIC]'''
*Assembler - Gratis assembler via [http://microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1475&category=devSoftware MPLAB]
*Assembler - Gratis assembler via [http://microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1475&category=devSoftware MPLAB]
*Basic - Många versioner. Exempel: [http://www.mikroelektronika.co.yu/english/product/compilers/mikrobasic/index.htm MikroBasic] (Gratis)
*Basic - Många versioner. Exempel: [http://www.mikroelektronika.co.yu/english/product/compilers/mikrobasic/index.htm MikroBasic] (Gratis)
*C - Många versioner. Exempel: [http://www.htsoft.com/products/PICClite.php PICCLite] (Gratis)
*C - Många versioner. Exempel: [http://www.htsoft.com/products/PICClite.php PICCLite] (Gratis)
*JAL - [http://jal.sourceforge.net/ JAL]
*JAL - [http://jal.sourceforge.net/ JAL]




Rad 166: Rad 169:
*C - En vedertagen version: GCC ([http://winavr.sourceforge.net/ WinAVR])
*C - En vedertagen version: GCC ([http://winavr.sourceforge.net/ WinAVR])
*Basic - En dominerande version: [http://www.mcselec.com/bascom-avr.htm Bascom-AVR]
*Basic - En dominerande version: [http://www.mcselec.com/bascom-avr.htm Bascom-AVR]


= Övriga länkar =
= Övriga länkar =
Rad 181: Rad 183:
*[http://www.voti.nl/swp/ Så här funkar PIC]
*[http://www.voti.nl/swp/ Så här funkar PIC]
*[http://www.mikroelektronika.co.yu/english/product/books/PICbook/0_Uvod.htm PIC microcontrollers for beginners (onlinebok)]
*[http://www.mikroelektronika.co.yu/english/product/books/PICbook/0_Uvod.htm PIC microcontrollers for beginners (onlinebok)]
*[http://www.mikroe.com/en/books/picmcubook/ PIC Microcontrollers (MikroElektronika)]
*[http://www.jescab.se/Starting_with_PICs.html Starting with PICs]
*[http://www.jescab.se/Starting_with_PICs.html Starting with PICs]


Rad 209: Rad 212:
Genomgång av CAN-bus.<br>
Genomgång av CAN-bus.<br>
Samt mycket mer.<br>
Samt mycket mer.<br>
[http://www.electronicrepairguide.com/repair-microcontroller-circuit.html Felsökning av mikrokontroller]:
* Stadig matningsspänning (oftast 3,3 eller 5 volt)
* Reset signal måste aktiveras vid start
* Yttre kristal ska ge sinusvåg på anslutningsbenen.
* "Power LED" kommer oftast från mikrokontrollern. Så om den inte lyser kan det vara fel från mikrokontrollern.
[[Kategori:Programvara]]

Nuvarande version från 25 januari 2013 kl. 00.01

Mikrokontroller?

En mikrokontroller (förkortas ofta µC ; µ = micro, C = Controller), ä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" som överför mjukvara från datorn till mikrokontrollern

Mjukvara:

  • Programmeringsverktyg i form av mjukvara
  • 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

BS2.gif

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.


PIC

PIC liten.jpg

PIC är en familj mikrokontrollers tillverkade av Microchip. Dessa finns i väldigt många modeller. Några vanligt förekommande PICar är PIC16F84A, PIC16F628A och PIC16F877A. Jag avråder dock från att införskaffa en PIC16F84(A), de är föråldrade, överprisade och överskattade. PIC16F628A ä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. Många av de nyare (d.v.s i princip alla modeller som är aktuella för hobbyister) har även en inbyggd oscillator, och kan då köras utan kristall.

PIC kan köpas i välsorterade elektronikåterförsäljare, exempelvis Elfa, vars sortiment dock är lite begränsat, speciellt bland de lite nyare kretsarna som kan vara intressanta för hobbyister. Bland övriga kan t.ex nämnas JESCAB.

Går även att få som samples av tillverkaren.

PIC finns i flera olika familjer:

  • PIC10F - Små 6-pins ytmonterade chip (SOT23-6) med lite begränsade finesser. Även i standard 8-pin DIP för utveckling och test.
  • PIC12F - 8-pin. PIC12F5xx har en äldre arkitektur och är tänkta som "Flash-upgrade" till äldre PIC12C modeller. PIC12F6xx har samma (lite bättre) arkitektur som PIC16F serien. 12F615 är en ny medlem i familjen. Billig och med nya CCP-modulen är saker som i många fall gör den bättre än 12f675 som börjar bli lite gammal idag.
  • PIC16F - Mellan-familjen. 14-68 pin. Innehåller en hel del användbara finesser.
  • PIC18F - Kraftfullaste familjen 8-bitars. 18-80 pin. Enklare assembler kodning än PIC16. C-kompilator från Microchip som finns i en gratis "Student Edition" variant (med vissa begränsningar i optimeraren).
  • PIC24F - En ny 16-bitars arkitektur. Ej i DIP, dock.
  • dsPIC - I princip samma arktitektur som PIC24, men med en "DSP-engine". Två varianter, dsPIC30 samt dsPIC33

Sen finns det även ett stort antal "C-modeller" (PIC16Cxxxx). Se upp med dom, de är OTP ("One Time Programmable") och är inte avsedda för hobbyister !!

AVR

AVR liten.jpg

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 ATtiny26, ATtiny2313 och ATmega88. AVR behöver, precis som PIC, en stabil matningsspänning och en oscillator (finns inbyggd i de flesta modeller) 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 t ex Elfa hittar man ett urval av AVR-chip. Kan även gå att få som sample.

AVR finns i olika familjer:

  • ATtiny - Små chip, 8-20 pin, med de nödvändigaste funktionerna.
  • ATmega - 28-100 pin. Kraftfulla och stora!
  • AT90S - Den här serien nyproduceras inte längre, utan har ersatts helt av Tiny- & Mega-serien.
  • AT90USB - Stora AVR:er med USB-stöd.
  • AT90CAN - Stora AVR:er med CAN-stöd.
  • AVR32 - Riktigt kraftfulla 32-bit processorer som inte spelar i samma division som de andra familjerna här.
  • XMEGA - 32-100 pin. Riktigt kraftfulla 8-bitars med DMA,DAC,ADC,SDRAM,mm.

Parameterlista över olika AVR:er

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 1-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, ATXmega. 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.

Kristall.gif <-- Kristall (lågprofil)

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!

Osc.gif Xtal.gif

Det finns även ett alternativ i form av "Resonatorer", dessa finns med inbyggda lastkondensatorer och lösa kondensatorer behövs därför inte. Dessa resonatorer är oftast billigare än kristaller men inte fullt lika exakta i frekvensen men till projekter som inte är mycket känsliga med timing duger de mycket väl.

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.

AVR

PIC

IDE - Programmeringsmiljö

Basic Stamp

  • Medföljer modulerna.

PIC

AVR


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

Övriga länkar


Filer för dig som vill börja med AVR.

Innehåller färdiga laborationer som är enkla att följa samt många kodexempel.
Bland annat lär man sig följande:

Använda 16 tangenters "telefontangentbord"
Använda en display med HD44780 kontroller krets.
Använda UART.
Använda en realtidsklocka DS1302
Grundläggande C++ uttryck if satser mm.


Filer för dig som vill använda Realtidssystem på en AVR.

Innehåller färdiga laborationer samt en hel bok om realtidssystem.
Bland annat lär man sig följande:

Grundläggande multitasking med RoundRobin.
Installera samt använda realtidskärnan AVRX.
Installera samt hur man kompilerar m.h.a AVR-GCC.
Hantera AVRX olika funktioner, bla seriekommunikation.
Genomgång av CAN-bus.
Samt mycket mer.

Felsökning av mikrokontroller:

  • Stadig matningsspänning (oftast 3,3 eller 5 volt)
  • Reset signal måste aktiveras vid start
  • Yttre kristal ska ge sinusvåg på anslutningsbenen.
  • "Power LED" kommer oftast från mikrokontrollern. Så om den inte lyser kan det vara fel från mikrokontrollern.