PIC-mikrokontrollers är små chip som styr många kretsar i enkla och avancerade produkter. Denna artikel förklarar deras historia, Harvardarkitektur, portar och pinout, 8-, 16- och 32-bitars familjer, minnestyper, timers, avbrott, strömlägen och kommunikationslänkar. Den täcker också verktyg, PCB-design, enhetsval och misstag i detalj.

PIC-mikrokontrollers Grundläggande
PIC-mikrokontrollers är små datorchip som kan styra många typer av elektroniska kretsar. De började som enkla hjälpchip tillverkade av General Instrument. Senare tog Microchip Technology över designen och förvandlade PIC till en komplett familj av mikrokontrollers. PIC betyder Microchips 8-bitars, 16-bitars och 32-bitars mikrokontrollers som används i många elektroniska produkter.
De första PIC-enheterna dök upp på 1970-talet som programmerbara kringutrustningschip. I början av 1990-talet återlanserades de som fristående mikrokontrollers som kunde lagra program och styra hela system på egen hand. Moderna PIC-mikrokontrollers fokuserar på enkel programmering, användbara inbyggda kringutrustning och låg kostnad, vilket gör dem till ett val för många inbyggda konstruktioner
Harvardarkitektur inuti PIC-mikrokontrollers

PIC-mikrokontrollers använder en Harvard-arkitektur, vilket innebär att programinstruktioner och data lagras i separata minnesområden och färdas på olika interna vägar. På grund av detta kan CPU:n hämta nästa instruktion medan den läser eller skriver data. Denna parallella mekanism hjälper PIC att gå jämnare och gör timingen lättare att kontrollera än i många enkelbussdesigner.
I många PIC-familjer är instruktionsminnet bredare än dataminnet, såsom 14-bitars instruktionsord med 8-bitars data. Denna extra bredd gör att varje instruktion kan lagra användbar information som siffror och adresser direkt. Som ett resultat kan program vara kortare, köra snabbare och ändå sitta på hårdvara som förblir enkel inuti.
PIC-mikrokontrollerportar och pinout

PIC-mikrokontrollerstiften är placerade runt paketet för att gruppera relaterade funktioner, vilket gör det enklare att ansluta extern hårdvara. Strömstift levererar driftspänning, medan oscillatorstift hanterar klockingång för timing. Flera portar (RA, RB, RC, RD och RE) tillhandahåller digital I/O och stödjer alternativa roller såsom avbrott, analoga ingångar, fångst/jämförelsefunktioner och kommunikationsgränssnitt. Många stift är multiplexade, vilket gör att funktioner som UART, SPI och I²C kan dela samma fysiska linjer beroende på konfiguration. Dedikerade analoga kanaler stödjer ADC-operationer, och specifika pinnar hanterar återställning, referenssignaler och speciella kontrollfunktioner. Varje pins flexibilitet hjälper enheten att passa ett brett spektrum av tillämpningar, från enkla styruppgifter till avancerade inbyggda designer.
PIC-mikrokontrollerfamiljer från 8-bitars till 32-bitars

PIC-mikrokontrollers är grupperade i flera familjer, så det är lättare att matcha chipet till den hastighet, minnet och funktionerna som behövs. Den största skillnaden mellan dessa familjer är hur många bitar de hanterar åt gången och hur mycket inbyggd hårdvara de har för olika kontrolluppgifter.
• 8-bitarsfamiljer (PIC10, PIC12, PIC16, PIC18)
Dessa PIC-mikrokontrollers arbetar med 8-bitars data. De passar in i mycket små paket och väljs ofta för enkla kontrolluppgifter och lågkostnadsprojekt.
• 16-bitars familjer (PIC24 och dsPIC33)
Dessa enheter hanterar 16-bitars data, har mer minne och använder bredare register. De kan hantera mer komplexa operationer och inkluderar digitala signalstyrningsfunktioner för snabbare matematik och timing.
• 32-bitars familj (PIC32)
Dessa PIC-mikrokontrollers använder en 32-bitars MIPS-kärna, vilket möjliggör högre prestanda. De stödjer mer avancerade kringutrustning och kommunikationsfunktioner för krävande inbäddat arbete.
Minnet inuti PIC-mikrokontrollers

Programminne (Flash)
Programminnet är där huvudkoden för PIC lagras. Äldre PIC-enheter använde EPROM eller engångsprogrammerbart minne, men de flesta nyare PIC-mikrokontrollers använder flashminne. Flash kan raderas och skrivas om många gånger, så programmet kan uppdateras utan att byta chipet.
Dataminne (RAM)
Dataminnet är RAM, och det lagrar information endast medan PIC:en är strömförsörjd. Den lagrar variabler, temporära värden och stacken under programkörning. Många 8-bitars PIC-mikrokontrollers delar in RAM i bankar eller sidor, medan 16- och 32-bitars PIC-enheter ofta ger ett större, mer kontinuerligt RAM-område.
Icke-flyktigt dataminne (EEPROM eller dataflash)
Denna typ av minne sparar data även när strömmen är avstängd. PIC-mikrokontrollers använder EEPROM eller dataflash för att lagra kalibreringsvärden, konfigurationsinformation och andra inställningar som måste förbli desamma efter återställningar och strömcykler.
Timers, avbrott och strömstyrning i PIC-mikrokontrollers

PIC-mikrokontrollers använder timers för att spåra händelser, och när en timer överskrids sätts en avbrottsflagga in för att begära CPU-uppmärksamhet. CPU:n pausar sitt nuvarande arbete, kör Interrupt Service Routine och återupptar sedan normal exekvering. Strömkontrollfunktioner gör det möjligt för enheten att gå in i ett lågströmsviloläge medan timers eller watchdog-timern fortsätter att köras i bakgrunden. En uppvakningshändelse, såsom en återställning eller avbrott av vakthunden, återställer CPU:n till aktivt läge. Denna interaktion mellan timers, avbrott och strömläge hjälper till att minska energiförbrukningen samtidigt som korrekt timing och tillförlitliga systemresponser bibehålls.
Kommunikationsgränssnitt i PIC-mikrokontrollers

PIC-mikrokontrollers ansluter till ett brett spektrum av externa enheter via flera kommunikationsgränssnitt. Analoga sensorer, såsom temperatur eller ljusingång, skickar sina signaler genom ADC:n, medan digitala sensorer delar data över I²C-bussen. Ställdon som motorer, lysdioder och reläer tar emot styrsignaler via GPIO- eller PWM-utgångar. Kommunikation med en PC sker via USB eller UART, vilket möjliggör datautbyte eller felsökning. Andra mikrokontrollers och kringutrustning kopplas med SPI, UART eller I²C, vilket möjliggör samordnad drift i större inbyggda system. Dessa anslutningar stödjer flexibel systemdesign och gör det möjligt för mikrokontrollern att effektivt interagera med sensorer, styrelement och externa processorer.
Utvecklingsverktyg för PIC-mikrokontrollers
MPLAB X IDE
MPLAB X är ett gratis program som används för att skapa och testa kod för PIC-mikrokontroller. Det körs på Windows, macOS och Linux. I ett fönster låter den dig skapa projekt, skriva kod, bygga programmet och felsöka hur det körs på PIC.
MPLAB XC-kompilatorer
MPLAB XC-kompilatorer omvandlar C- eller C++-kod till maskinkod för PIC-mikrokontroller. De är gjorda för att passa PIC-enheter väl, så att koden körs korrekt och effektivt. Det finns gratisversioner och betalversioner med extrafunktioner.
Felsökning och programmeringshårdvara
Verktyg som PICkit, MPLAB ICD och MPLAB REAL ICE används för att ladda program i PIC-mikrokontrollers och felsöka dem på kretskortet. De låter dig programmera chipet, pausa koden, gå igenom den rad för rad och se hur värdena ändras medan PIC:en körs.
Tillämpningar av PIC-mikrokontrollers
Konsumentelektronik med PIC-mikrokontrollers
PIC-mikrokontrollers är ofta inbyggda i vardagliga elektroniska produkter. De kan styra små apparater, fjärrkontroller, LED-belysning, batteriladdare och leksaker genom att hantera enkel logik, timing och på/av-styrning inuti enheten.
Fordons- och industriell styrning med PIC
I bilar och industrimaskiner hjälper PIC-mikrokontrollers till att hantera motorer, strömförsörjning, sensorer och HVAC-system. De läser signaler, fattar beslut och justerar utgångar så att systemet fungerar säkert och pålitligt.
9,3 PIC i IoT- och edge-enheter
PIC-mikrokontrollers används i många IoT- och edge-noder när låg strömförbrukning krävs. De driver batteridrivna sensorer, enkla gateways och miljöövervakare som samlar in grundläggande data och skickar den till andra system.
Medicinska och mätverktyg med PIC
Vissa medicinska och laboratorieinstrument förlitar sig också på PIC-mikrokontroller. De kan styra handhållna diagnostiska verktyg, pumpar och små mätinstrument genom att läsa sensordata och hantera enkla styrrutiner.
Val av PIC-mikrokontroller
• Välj bitbredd och hastighet – Använd 8-bitars PIC10/12/16/18 för enkel, kostnadseffektiv kontroll. Välj 16-bitars PIC24/dsPIC33 för mer minne och matematik. Byt till 32-bitars PIC32 för större kod och tyngre bearbetning.
• Kontrollera minne och kringutrustning – Uppskatta nödvändig programstorlek och RAM, lägg sedan till marginal. Lista nödvändiga ADC-kanaler, UART:er, SPI/I²C-portar, timers, PWM-utgångar och eventuella tillägg som CAN, USB eller krypto, och matcha dem med en PIC som har dem.
• Bekräfta ström och paket - Granska aktiv och viloström för batteridrivna konstruktioner. Välj en paketstorlek och antal stift som passar ditt kretskort. Se till att PIC uppfyller rätt temperatur- och tillförlitlighetsgrad.
Vanliga misstag med PIC-mikrokontrollers
| Tips | Vad ska man göra och varför? |
|---|---|
| Initiera inställningar vid start | Ställ in alla I/O-pins, stäng av oanvända kringutrustningar och ställ klockan och watchdogen i början av main() för att undvika slumpmässigt beteende. |
| Håll avbrott enkla | Gör avbrottsrutiner korta, undvik tungt arbete inuti dem och skydda delad data så att värden inte ändras på osäkra sätt. |
| Återanvänd beprövade PIC-exempel | Använd Microchip-bibliotek, kodexempel och appanteckningar för UART, SPI, ADC och andra block för att följa korrekta registerinställningar. |
| Tillåt uppdateringar i systemet | Planera hårdvara och kod så att PIC kan programmeras om via en bootloader eller uppdateringslänk istället för att byta chip. |
| Kontrollera effekt och timing tidigt | Mät faktisk ström och tidtagning på kortet, särskilt för lågströms- eller tajt tidsmässiga konstruktioner, istället för att bara lita på uppskattningar. |
Slutsats
PIC-mikrokontrollers samlar enkla hårdvarublock, separata program- och datavägar, flexibla portar, flera minnestyper samt många timers och gränssnitt. Med rätt verktyg och PCB-layout, samt genom att ställa in bitar, strömlägen och avbrott korrekt, kan en PIC-baserad design förbli klar, pålitlig och lättare att underhålla över tid.
Vanliga frågor [FAQ]
Vad är konfigurationsbitar i en PIC-mikrokontroller?
Konfigurationsbitar är icke-flyktiga inställningar som definierar hur PIC startar och körs, såsom klockkälla, watchdog-timer, brown-out-reset och kodskydd.
Hur kan jag uppdatera PIC-firmware utan hårdvaruprogrammerare varje gång?
Använd en bootloader som tar emot den nya firmwaren via UART, USB, CAN eller ett annat gränssnitt och skriver in den i PIC:ens flashminne.
Vad ska jag kontrollera om min PIC inte körs efter programmering?
Kontrollera ström och jord, återställ/MCLR-nivå och klockkälla, verifiera sedan konfigurationsbitarna och bekräfta att koden når fram.
När bör jag använda en dsPIC istället för en PIC16 eller PIC18?
Använd en dsPIC när du behöver snabba matematik- och signalbehandlingsuppgifter, såsom motorstyrning, digital effektkonvertering eller filtrering.
Hur kan jag skydda PIC-firmware från att kopieras?
Aktivera kodskydd och minnesskyddsbitar så att externa verktyg inte kan läsa eller klona programmet och lagrad data.
Hur minskar jag strömförbrukningen i en PIC-baserad design?
Sänk klockfrekvensen, inaktivera oanvända kringutrustningar, använd viloläge eller viloläge och minimera onödig pinaktivitet och belastningsströmmar.