- PIC Microcontroller Architecture and Applications:
- Val av PIC-mikrokontroller för våra handledningar:
- Val av programvara för våra handledningar:
- Gör dig redo med hårdvara:
1980 utvecklade Intel den första Microcontroller (8051) med Harvard Architecture 8051 och sedan dess tog Microcontrollers en revolution inom elektronik och inbäddad industri. Och med den tekniska utvecklingen över tiden har vi nu många mer effektiva mikrokontroller med låg effekt som AVR, PIC, ARM. Dessa mikrokontroller är mer kapabla och enkla att använda, med de senaste kommunikationsprotokollen som USB, I2C, SPI, CAN etc. Även Arduino och Raspberry Pi har helt förändrat perspektivet mot Microcontrollers, och Raspberry Pi är inte bara en mikrokontroller men den har hela dator inuti.
Detta kommer att vara den första delen av en serie handledning som ännu inte kommer, som hjälper dig att lära dig PIC Microcontrollers. Om du är från en elektronikbakgrund och alltid velat börja med att lära dig några mikrokontroller och få dig in i världen av kodning och bygga saker, kommer den här serien av handledning att vara ditt första steg till att börja med.
PIC-mikrokontroller är ett mycket bekvämt val för att komma igång med ett mikrokontrollerprojekt, eftersom det har utmärkta supportforum och kommer att fungera som en stark bas för att bygga på alla dina avancerade mikrokontroller som du ännu inte lär dig.
Dessa självstudier är gjorda för absoluta eller mellanliggande elever; vi har planerat att börja med de mest grundläggande projekten till de avancerade. Vi förväntar oss inga förutsättningar från eleverna eftersom vi är här för att hjälpa dig från alla nivåer. Varje handledning kommer att ha en teoretisk förklaring och simulering följt av en praktisk handledning. Dessa självstudier kommer inte att involvera några utvecklingskort, vi kommer att skapa våra egna kretsar med hjälp av ett perfekt kort. Så gör dig redo och ta dig tid varje vecka för att förbättra dig med Microcontrollers.
Låt oss nu komma igång med en enkel introduktion på PIC Microcontrollers och några programvaruinställningar för att få oss att köra på vår nästa handledning. Kontrollera videon i slutet för installation och installation av MPLABX, XC8, Proteus och en snabb avboxning av PICkit 3-programmeraren.
PIC Microcontroller Architecture and Applications:
PIC-mikrokontrollern introducerades av Microchip Technologies år 1993. Ursprungligen utvecklades dessa PIC för att vara en del av PDP- datorer (Programmed Data Processor) och varje periferiutrustning på datorn hade gränssnitt med denna PIC-mikrokontroller. Därför får PIC sitt namn som för Peripheral Interface Controller. Senare har Microchip utvecklat många PIC-seriens IC: er som kan användas för alla små applikationer som en belysningsprogram till den avancerade.
Varje mikrokontroller ska byggas kring någon arkitektur, den mest kända typen av arkitektur är Harvard-arkitekturen, vår PIC bygger på denna arkitektur eftersom den tillhör den klassiska 8051-familjen. Låt oss gå in i en liten introduktion om Harvard-arkitekturen i PIC.
Den PIC16F877A Microcontroller består av en inbyggd processor, I / O-portar, minnesorganisation, A / D-omvandlare, timers / räknare, avbrott, seriell kommunikation, oscillator och CCP modul som att samla fabrikat den IC en kraftfull mikrokontroller för nybörjare att börja med. Det allmänna blockschemat för PIC-arkitekturen visas nedan
CPU (Central Processing Unit):
Mikrokontrollern har en CPU för att utföra aritmetiska operationer, logiska beslut och minnesrelaterade operationer. CPU: n måste samordna mellan RAM-minnet och de andra kringutrustningarna i Microcontroller.
Den består av en ALU (Arithmetic Logic Unit), med vilken den utför de aritmetiska operationerna och de logiska besluten. En MU (Memory unit) finns också för att lagra instruktionerna efter att de har körts. Denna MU bestämmer programstorleken för vår MC. Den består också av en CU (Control Unit) som fungerar som en kommunikationsbuss mellan processorn och andra kringutrustning på mikrokontrollern. Detta hjälper till att hämta data efter att de har bearbetats i de angivna registren.
Random Access Memory (RAM):
Ett Random Access-minne är det som bestämmer hastigheten på vår mikrokontroller. RAM-minnet består av registerbanker inom det, som alla tilldelas en specifik uppgift. Sammantaget kan de klassificeras i två typer:
- General Purpose Register (GPR)
- Special Function Register (SFR)
Som namnet antyder används GPR för allmänna registerfunktioner som addition, subtraktion etc. Dessa operationer är begränsade inom 8-bitars. Alla register under GPR är användarskrivbara och läsbara. De har inga funktioner på egen hand om det inte är programvara specificerad.
Medan SFR används för att utföra komplicerade specialfunktioner som också involverar viss 16-bitars hantering, kan deras register bara läsas (R) och vi kan inte skriva (W) någonting till dem. Så dessa register har en fördefinierad funktion att utföra, som ställs in vid tillverkningstillfället och de visar bara resultatet för oss, med vilka vi kan utföra några relaterade operationer.
Read Only Memory (ROM):
Skrivskyddat minne är den plats där vårt program lagras. Detta avgör den maximala storleken på vårt program; därför kallas det också som programminne. När MCU: n är i drift körs programmet som lagras i ROM: n enligt varje instruktionscykel. Denna minnesenhet kan endast användas under programmering av PIC, under körning blir den ett skrivskyddat minne.
Elektriskt raderbart programmerbart skrivskyddat minne (EEPROM):
EEPROM är en annan typ av minnesenhet. I detta minne kan värden lagras under programkörningen. Värdena som lagras här är endast Elektrisk raderbara, det vill säga dessa värden kommer att behållas i PIC även när IC är avstängd. De kan användas som ett mindre minne för att lagra de körda värdena; dock kommer minnesutrymmet att bli mycket mindre i varv av KB.
Flash-minne :
Flashminne är också programmerbart läsminne (PROM) där vi kan läsa, skriva och radera programmet tusentals gånger. Generellt använder PIC-mikrokontrollern denna typ av ROM.
I / O-portar
- Vår PIC16F877A består av fem portar, nämligen Port A, Port B, Port C, Port D & Port E.
- Av alla fem PORTER är endast Port A 16-bitars, och PORT E är 3-bitars. Resten av PORTERNA är 8-bitars.
- Stiften på dessa PORTER kan användas antingen som ingång eller utgång, baserat på TRIS-registerkonfigurationen.
- Förutom att utföra I / O-operationer kan stiften också användas för specialfunktioner som SPI, Interrupt, PWM etc.
Buss:
Termen Bus är bara en massa kablar som ansluter ingångs- eller utmatningsenheten med CPU och RAM.
Databuss används för att överföra eller ta emot data.
Adressbuss används för att överföra minnesadressen från kringutrustningen till CPU: n. I / O-stift används för att ansluta externa kringutrustning; UART och USART båda seriella kommunikationsprotokoll används för gränssnitt för seriella enheter som GSM, GPS, Bluetooth, IR, etc.
Val av PIC-mikrokontroller för våra handledningar:
PIC-mikrokontroller från Microchip Company är uppdelade i 4 stora familjer. Varje familj har en mängd olika komponenter som erbjuder inbyggda specialfunktioner:
- Den första familjen, PIC10 (10FXXX) - heter Low End.
- Den andra familjen, PIC12 (PIC12FXXX) - heter Mid-Range.
- Den tredje familjen är PIC16 (16FXXX).
- Den fjärde familjen är PIC 17/18 (18FXXX)
Eftersom vi börjar lära oss om PIC, låt oss välja en IC som används och är tillgänglig universellt. Denna IC tillhör 16F-familjen, artikelnummer för IC är PIC16F877A. Från den första handledningen till slutet kommer vi att använda samma IC eftersom denna IC är utrustad med alla avancerade funktioner som SPI, I2C och UART etc. Men om du inte får något av dessa saker nu är det helt bra, vi kommer få framsteg genom varje handledning och använder slutligen alla ovan nämnda funktioner.
När IC väljs är det mycket viktigt att läsa databladet för IC. Detta borde vara det första steget i vilket koncept som vi ska pröva. Nu eftersom vi har valt kan denna PIC16F877A läsa igenom specifikationen för denna IC i databladet.
Peripheral Feature nämner att den har 3 Timers, varav två är 8-bitars och en är 16-bitars prescaler. Dessa timer används för att skapa tidsfunktioner i vårt program. De kan också användas som diskar. Det visar också att det har CCP (Capture Compare och PWM) -alternativ, vilket hjälper oss att generera PWM-signaler och läsa de inkommande frekvenssignalerna. För kommunikation med extern enhet har den SPI, I2C, PSP och USART. För säkerhetsändamål är den utrustad med Brown-out Reset (BOR), vilket hjälper till att återställa medan-programmet.
De analoga funktionerna, indikerar att IC har 10-bitars 8-kanals ADC. Detta innebär att vår IC kan konvertera analoga värden till digital med en upplösning på 10-bitars och har 8 analoga stift för att läsa dem. Vi har också två interna komparatorer som kan användas för att jämföra den inkommande spänningen direkt utan att faktiskt läsa dem genom programvaran.
De speciella mikrokontrollerfunktionerna betyder att den har 100 000 raderings- / skrivcykler, vilket innebär att du kan programmera den cirka 100 000 gånger. In-Circuit Serial Programming ™ (ICSP ™) hjälper oss att programmera IC direkt med PICKIT3. Felsökning kan göras via In-Circuit Debug (ICD). En annan säkerhetsfunktion är Watchdog Timer (WDT), som är en självtillförlitlig timer som återställer hela programmet vid behov.
Bilden nedan representerar pinouts på vår PIC16F877A IC. Denna bild representerar varje stift mot dess namn och dess andra funktioner. Detta finns också i databladet. Håll den här bilden till hands för den hjälper oss under våra hårdvaruarbeten.
Val av programvara för våra handledningar:
PIC-mikrokontroller kan programmeras med olika program som finns på marknaden. Det finns människor som fortfarande använder monteringsspråk för att programmera PIC MCU: er. För våra handledning har vi valt den mest avancerade programvaran och kompilatorn som har utvecklats av Microchip själv.
För att programmera PIC-mikrokontrollern behöver vi en IDE (Integrated Development Environment), där programmeringen sker. En kompilator, där vårt program konverteras till MCU-läsbar form som heter HEX-filer. En IPE (Integrated Programming Environment), som används för att dumpa vår hex-fil i våra PIC MCU.
IDE: MPLABX v3.35
IPE: MPLAB IPE v3.35
Kompilator: XC8
Microchip har gett alla dessa tre program gratis. De kan laddas ner direkt från deras officiella sida. Jag har också tillhandahållit länken för din bekvämlighet. När du väl har laddat ner installerar du dem på din dator. Om du har några problem att göra det kan du se videon som ges i slutet.
För simuleringsändamål har vi använt programvara som heter PROTEUS 8, tillhandahållen av Labcenter. Denna programvara kan användas för att simulera vår kod som genereras med MPLABX. Det finns en gratis demonstrationsprogramvara som kan laddas ner från deras officiella sida via länken.
Gör dig redo med hårdvara:
Alla våra handledning kommer att sluta med hårdvara. För att lära sig PIC på bästa möjliga sätt rekommenderas det alltid att testa våra koder och kretsar över hårdvara, eftersom simuleringens tillförlitlighet är mycket mindre. Koder som fungerar på en simuleringsprogramvara kanske inte fungerar som förväntat på din hårdvara. Därför kommer vi att bygga våra egna kretsar på Perf-kort för att dumpa våra koder.
Att dumpa eller ladda upp vår kod i PIC, kommer vi att behöva PICkit 3. Den PICkit 3 programmerare / debugger är en enkel, billig in-circuit debugger som styrs av en dator som kör MPLAB IDE (v8.20 eller högre) programvara på en Windows-plattform. Den PICkit 3 programmerare / debugger är en integrerad del av utvecklingen ingenjörens verktygssvit. Utöver detta behöver vi också annan hårdvara som Perf-kort, Lödstation, PIC IC, Crystal-oscillatorer, kondensatorer etc. Men vi lägger till dem i vår lista när vi går igenom våra handledning.
Jag tog med mig min PICkit 3 från amazon, unboxing-videon av densamma finns i videon nedan. Länken för PICKIT3 finns också; priset kan vara lite högt men tro mig det är värt att investera.