- PIC Microcontroller-arkitektur og applikationer:
- Valg af PIC Microcontroller til vores tutorials:
- Valg af software til vores tutorials:
- Gør dig klar med hardware:
I 1980 udviklede Intel den første Microcontroller (8051) med Harvard Architecture 8051, og siden da bragte Microcontrollers en revolution inden for elektronik og indlejret industri. Og med den teknologiske udvikling gennem tiden har vi nu mange mere effektive mikrokontrollere med lav effekt som AVR, PIC, ARM. Disse mikrokontrollere er mere kapable og nemme at bruge, med de nyeste kommunikationsprotokoller som USB, I2C, SPI, CAN osv. Selv Arduino og Raspberry Pi har fuldstændigt ændret perspektivet mod mikrokontroller, og Raspberry Pi er ikke bare en mikrokontroller, men den har hele computer inde.
Dette vil være den første del af en række tutorials, der endnu ikke kommer, som vil hjælpe dig med at lære PIC Microcontrollers. Hvis du har en elektronikbaggrund, og du altid har ønsket at begynde med at lære nogle mikrokontrollere og komme dig ind i en verden af kodning og opbygning af ting, så vil denne række tutorials være dit første skridt til at begynde med.
PIC-mikrocontroller er et meget bekvemt valg at komme i gang med en mikrocontroller-projekter, fordi den har fremragende supportfora og vil fungere som en stærk base til at bygge videre på alle dine avancerede mikrokontroller, som du endnu ikke har lært.
Disse tutorials er lavet til absolutte eller mellemliggende elever; Vi har planlagt at starte med de mest basale projekter til de avancerede. Vi forventer ingen forudsætninger fra de studerende, da vi er her for at hjælpe dig fra ethvert niveau. Hver tutorial vil have en teoretisk forklaring og simulering efterfulgt af en praktisk tutorial. Disse tutorials involverer ikke nogen udviklingskort, vi laver vores egne kredsløb ved hjælp af et perf-kort. Så gear dig op, og brug lidt tid hver uge på at forbedre dig med Microcontrollers.
Lad os nu komme i gang med en simpel introduktion til PIC Microcontrollers og nogle softwareopsætninger for at få os til at køre på vores næste tutorial. Tjek videoen i slutningen for at installere og opsætte MPLABX, XC8, Proteus og en hurtig unboxing af PICkit 3 programmør.
PIC Microcontroller-arkitektur og applikationer:
PIC-mikrocontrolleren blev introduceret af Microchip Technologies i året 1993. Oprindeligt blev disse PIC udviklet til at være en del af PDP (Programmed Data Processor) -computere, og hver perifere enhed på computeren blev grænseflader ved hjælp af denne PIC-mikrocontroller. Derfor får PIC sit navn som for Peripheral Interface Controller. Senere har Microchip udviklet mange PIC-seriens IC'er, som kan bruges til enhver mindre applikation som en belysningsprogram indtil den avancerede.
Hver mikrokontroller skal bygges omkring en eller anden arkitektur, den mest berømte type arkitektur er Harvard-arkitekturen, vores PIC er baseret på denne arkitektur, da den hører til den klassiske 8051-familie. Lad os komme ind i en lille introduktion om Harvard-arkitekturen i PIC.
Den PIC16F877A Microcontroller består af en indbygget CPU, I / O-porte, hukommelse organisation, A / D-konverter, timere / tællere, afbryder, seriel kommunikation, oscillator og CCP modul, som at samle gør IC en kraftig mikrocontroller for begyndere at starte med. Det generelle blokdiagram for PIC-arkitekturen er vist nedenfor
CPU (Central Processing Unit):
Mikrocontrolleren har en CPU til at udføre aritmetiske operationer, logiske beslutninger og hukommelsesrelaterede operationer. CPU'en skal koordinere mellem RAM og de andre perifere enheder på Microcontroller.
Den består af en ALU (Arithmetic Logic Unit), hvor den udfører aritmetiske operationer og logiske beslutninger. En MU (hukommelsesenhed) er også til stede for at gemme instruktionerne, når de bliver udført. Denne MU bestemmer programstørrelsen på vores MC. Den består også af en CU (kontrolenhed), der fungerer som en kommunikationsbus mellem CPU'en og andre perifere enheder på mikrokontrolleren. Dette hjælper med at hente data, når de bliver behandlet i de angivne registre.
Random Access Memory (RAM):
En Random Access-hukommelse er den, der bestemmer hastigheden på vores mikrocontroller. RAM består af registerbanker inden for det, som hver især er tildelt en bestemt opgave. I det store og hele kan de klassificeres i to typer:
- General Purpose Register (GPR)
- SFR (Special Function Register)
Som navnet antyder , bruges GPR til generelle registerfunktioner som addition, subtraktion osv. Disse operationer er begrænset inden for 8-bit. Alle registre under GPR er brugerskrivbare og læselige. De har ikke nogen funktioner alene, medmindre det er specificeret af software.
Mens SFR bruges til at udføre komplicerede specialfunktioner, som også involverer en del 16-bit håndtering, kan deres registre kun læses (R), og vi kan ikke skrive (W) noget til dem. Så disse registre har en foruddefineret funktion til at udføre, som er indstillet på produktionstidspunktet, og de viser bare resultatet for os, ved hjælp af hvilke vi kan udføre nogle relaterede operationer.
Read Only Memory (ROM):
Skrivebeskyttet hukommelse er det sted, hvor vores program gemmes. Dette bestemmer den maksimale størrelse på vores program; derfor kaldes det også som programhukommelse. Når MCU'en er i drift, udføres det program, der er gemt i ROM'en, pr. Instruktionscyklus. Denne hukommelsesenhed kan kun bruges under programmering af PIC, under udførelse bliver den en skrivebeskyttet hukommelse.
Elektrisk sletbar programmerbar skrivebeskyttet hukommelse (EEPROM):
EEPROM er en anden type hukommelsesenhed. I denne hukommelsesenhed kan værdier gemmes under programudførelse. Værdierne, der er gemt her, kan kun slettes elektrisk, dvs. disse værdier bevares i PIC, selv når IC'en er slukket. De kan bruges som lille hukommelsesplads til at gemme de udførte værdier; dog vil hukommelsespladsen være meget mindre i skift af KB.
Flash-hukommelse :
Flash-hukommelse er også PROM (Programmable Read Only Memory), hvor vi kan læse, skrive og slette programmet tusinder af gange. Generelt bruger PIC-mikrocontrolleren denne type ROM.
I / O-porte
- Vores PIC16F877A består af fem porte, nemlig Port A, Port B, Port C, Port D & Port E.
- Af alle de fem PORTER er kun Port A 16-bit, og PORT E er 3-bit. Resten af PORTS er 8-bit.
- Stifterne på disse PORTER kan bruges som enten input eller output, baseret på TRIS-registerkonfigurationen.
- Udover at udføre I / O-operationer kan benene også bruges til specielle funktioner som SPI, Interrupt, PWM osv.
Bus:
Udtrykket Bus er bare en flok ledninger, der forbinder input- eller outputenheden med CPU og RAM.
Databus bruges til at overføre eller modtage dataene.
Adressebus bruges til at transmittere hukommelsesadressen fra det perifere udstyr til CPU'en. I / O-ben bruges til at interface de eksterne perifere enheder; UART og USART begge serielle kommunikationsprotokoller bruges til at interfacere serielle enheder som GSM, GPS, Bluetooth, IR osv.
Valg af PIC Microcontroller til vores tutorials:
PIC Microcontrollers fra Microchip Company er opdelt i 4 store familier. Hver familie har en række komponenter, der giver indbyggede specialfunktioner:
- Den første familie, PIC10 (10FXXX) - kaldes Low End.
- Den anden familie, PIC12 (PIC12FXXX) - kaldes Mid-Range.
- Den tredje familie er PIC16 (16FXXX).
- Den fjerde familie er PIC 17/18 (18FXXX)
Da vi er begyndt at lære om PIC, lad os vælge en IC, der bruges og er tilgængelig universelt. Denne IC hører til 16F-familien, delnummeret til IC er PIC16F877A. Fra den første tutorial til slutningen bruger vi den samme IC, da denne IC er udstyret med alle avancerede funktioner som SPI, I2C og UART osv. Men hvis du ikke får nogen af disse ting nu, er det helt fint, vil vi få fremskridt gennem hver tutorial og bruger endelig alle de ovennævnte funktioner.
Når IC er valgt, er det meget vigtigt at læse databladet for IC. Dette burde være det første skridt i et hvilket som helst koncept, vi er ved at prøve. Nu da vi har valgt, kan denne PIC16F877A læse gennem specifikationen af denne IC i databladet.
Den perifere funktion nævner, at den har 3 timere, hvoraf to er 8-bit og den ene er 16-bit prescaler. Disse timere bruges til at oprette timingfunktioner i vores program. De kan også bruges som tællere. Det viser også, at det har CCP (Capture Compare og PWM) muligheder, som hjælper os med at generere PWM signaler og læse de indgående frekvens signaler. Til kommunikation med ekstern enhed har den SPI, I2C, PSP og USART. Af sikkerhedsmæssige årsager er den udstyret med Brown-out Reset (BOR), som hjælper med at nulstille mens-programmet.
De analoge funktioner, indikerer at IC'en har 10-bit 8-kanals ADC. Dette betyder, at vores IC kan konvertere analoge værdier til digital med en opløsning på 10-bit og har 8 analoge ben til at læse dem. Vi har også to interne komparatorer, der kan bruges til at sammenligne den indgående spænding direkte uden faktisk at læse dem gennem softwaren.
De særlige mikrokontrollerfunktioner betyder, at den har 100.000 sletnings- / skrivecyklusser, hvilket betyder at du kan programmere den cirka 100.000 gange. In-Circuit Serial Programming ™ (ICSP ™) hjælper os med at programmere IC direkte ved hjælp af PICKIT3. Fejlfinding kan foretages via InCD-debug (ICD). En anden sikkerhedsfunktion er Watchdog Timer (WDT), som er en selvpålidelig timer, der om nødvendigt nulstiller hele programmet.
Billedet nedenfor repræsenterer pinouts på vores PIC16F877A IC. Dette billede repræsenterer hver pin mod sit navn og dets andre funktioner. Dette kan også findes i databladet. Hold dette billede praktisk, for det hjælper os under vores hardwarearbejde.
Valg af software til vores tutorials:
PIC-mikrocontroller kan programmeres med forskellige software'er, der er tilgængelige på markedet. Der er mennesker, der stadig bruger Assembly sprog til at programmere PIC MCU'er. Til vores tutorials har vi valgt den mest avancerede software og compiler, der er udviklet af Microchip selv.
For at programmere PIC-mikrocontrolleren har vi brug for et IDE (Integrated Development Environment), hvor programmeringen finder sted. En kompilator, hvor vores program konverteres til MCU-læsbar form kaldet HEX-filer. Et IPE (integreret programmeringsmiljø), der bruges til at dumpe vores hex-fil i vores PIC MCU'er.
IDE: MPLABX v3.35
IPE: MPLAB IPE v3.35
Compiler: XC8
Microchip har givet alle disse tre software gratis. De kan downloades direkte fra deres officielle side. Jeg har også leveret linket for din bekvemmelighed. Når de er downloadet, skal du installere dem på din computer. Hvis du har problemer med at gøre det, kan du se den video, der er givet i slutningen.
Til simuleringsformål har vi brugt software kaldet PROTEUS 8, leveret af Labcenter. Denne software kan bruges til at simulere vores kode genereret ved hjælp af MPLABX. Der er en gratis demonstrationssoftware, der kan downloades fra deres officielle side via linket.
Gør dig klar med hardware:
Alle vores tutorials ender med hardware. For at lære PIC på den bedst mulige måde anbefales det altid at teste vores koder og kredsløb over hardware, fordi pålideligheden af simuleringen er meget mindre. Koder, der fungerer på en simuleringssoftware, fungerer muligvis ikke som forventet på din hardware. Derfor vil vi bygge vores egne kredsløb på Perf-boards for at dumpe vores koder.
For at dumpe eller uploade vores kode i PIC, har vi brug for PICkit 3. Den PICkit 3 programmør / debugger er en enkel, billig i kredsløb debugger, der styres af en pc med MPLAB IDE (v8.20 eller nyere) software på en Windows-platform. Den PICkit 3 programmør / debugger er en integreret del af udviklingen ingeniør værktøj suite. Ud over dette har vi også brug for anden hardware som Perf board, loddestation, PIC IC'er, krystaloscillatorer, kondensatorer osv. Men vi tilføjer dem til vores liste, når vi går videre gennem vores tutorials.
Jeg bragte min PICkit 3 fra amazon, unboxing-videoen af den samme kan findes i videoen nedenfor. Linket til PICKIT3 findes også; prisen kan være lidt høj, men stol på mig, det er værd at investere.