- PIC Microcontroller Architecture and Applications:
- Valg av PIC-mikrokontroller for våre opplæringsprogrammer:
- Valg av programvare for opplæringsprogrammene våre:
- Gjør deg klar med maskinvare:
I 1980 utviklet Intel den første Microcontroller (8051) med Harvard Architecture 8051, og siden den gang brakte Microcontrollers en revolusjon innen elektronikk og innebygd industri. Og med den teknologiske utviklingen over tid, har vi nå mange mer effektive mikrokontrollere med lav effekt som AVR, PIC, ARM. Disse mikrokontrollerne er mer dyktige og enkle å bruke, med de nyeste kommunikasjonsprotokollene som USB, I2C, SPI, CAN etc. Selv Arduino og Raspberry Pi har fullstendig forandret perspektivet mot mikrokontrollere, og Raspberry Pi er ikke bare en mikrokontroller, men den har hele datamaskinen inne.
Dette vil være den første delen av en serie opplæringsprogrammer som ennå ikke kommer, som vil hjelpe deg med å lære PIC Microcontrollers. Hvis du er fra en elektronikkbakgrunn og alltid har ønsket å begynne med å lære noen mikrokontrollere og komme deg inn i en verden av koding og bygging av ting, så vil denne serien med opplæringer være ditt første skritt til å begynne med.
PIC-mikrokontroller er veldig praktisk valg for å komme i gang med mikrokontroller-prosjekter, fordi den har utmerkede støttefora og vil fungere som en sterk base for å bygge videre på alle dine avanserte mikrokontrollere som du ennå ikke har lært.
Disse opplæringene er laget for absolutt eller mellomliggende lærere; vi har planlagt å starte med de mest grunnleggende prosjektene til de avanserte. Vi forventer ingen forutsetninger fra elevene, ettersom vi er her for å hjelpe deg fra alle nivåer. Hver opplæring vil ha en teoretisk forklaring og simulering etterfulgt av en praktisk opplæring. Disse opplæringene vil ikke involvere noen utviklingstavler, vi lager egne kretser ved hjelp av et perf-kort. Så gjør deg klar, og bruk litt tid hver uke for å forbedre deg med Microcontrollers.
La oss nå komme i gang med en enkel introduksjon på PIC Microcontrollers og noen programvareoppsett for å få oss til å kjøre på vår neste opplæring. Sjekk videoen på slutten for å installere og sette opp MPLABX, XC8, Proteus og en rask avboksing av PICkit 3 programmerer.
PIC Microcontroller Architecture and Applications:
PIC-mikrokontrolleren ble introdusert av Microchip Technologies i år 1993. Opprinnelig ble disse PIC- ene utviklet for å være en del av PDP (Programmed Data Processor) -datamaskiner, og hver perifere enhet på datamaskinen ble grensesnitt ved hjelp av denne PIC-mikrokontrolleren. Derfor får PIC navnet sitt som for Peripheral Interface Controller. Senere har Microchip utviklet mange PIC-seriens IC-er som kan brukes til alle små applikasjoner som en belysningsprogram til den avanserte.
Hver mikrokontroller skal bygges rundt noen arkitektur, den mest kjente typen arkitektur er Harvard-arkitekturen, vår PIC er basert på denne arkitekturen, siden den tilhører den klassiske 8051-familien. La oss komme inn på en liten intro om Harvard-arkitekturen til PIC.
Den PIC16F877A Mikrokontroller består av en innebygd CPU, I / O-porter, minnesorganisasjon, A / D-omformer, timere / tellere, interrupts, seriell kommunikasjon, oscillator og CCP-modulen for å samle merker på IC-en kraftig mikrokontroller for nybegynnere til å begynne med. Det generelle blokkdiagrammet til PIC-arkitekturen er vist nedenfor
CPU (sentral prosesseringsenhet):
Mikrokontrolleren har en CPU for å utføre aritmetiske operasjoner, logiske avgjørelser og minnerelaterte operasjoner. CPU-en må koordinere mellom RAM og andre eksterne enheter til Microcontroller.
Den består av en ALU (Arithmetic Logic Unit), som den utfører aritmetiske operasjoner og logiske avgjørelser med. En MU (Memory unit) er også tilstede for å lagre instruksjonene etter at de blir utført. Denne MU bestemmer programstørrelsen på MC. Den består også av en CU (Control Unit) som fungerer som en kommunikasjonsbuss mellom prosessoren og andre eksterne enheter på mikrokontrolleren. Dette hjelper deg med å hente dataene etter at de blir behandlet i de angitte registrene.
Random Access Memory (RAM):
Et Random Access-minne er det som bestemmer hastigheten til mikrokontrolleren vår. RAM-en består av registerbanker i den, som hver har tildelt en bestemt oppgave. I det hele tatt kan de klassifiseres i to typer:
- General Purpose Register (GPR)
- Spesialfunksjonsregister (SFR)
Som navnet antyder, brukes GPR til generelle registerfunksjoner som tillegg, subtraksjon etc. Disse operasjonene er begrenset innen 8-bit. Alle registrene under GPR er brukervennlige og lesbare. De har ingen funksjoner alene, med mindre det er spesifisert programvare.
Mens SFR brukes til å utføre kompliserte spesialfunksjoner som også involverer noen 16-biters håndtering, kan registrene deres bare leses (R), og vi kan ikke skrive (W) noe til dem. Så disse registrene har en forhåndsdefinert funksjon å utføre, som er satt på produksjonstidspunktet, og de viser bare resultatet for oss, ved hjelp av hvilke vi kan utføre noen relaterte operasjoner.
Skrivebeskyttet minne (ROM):
Skrivebeskyttet minne er stedet der programmet vårt lagres. Dette bestemmer den maksimale størrelsen på programmet vårt; derfor kalles det også som programminne. Når MCU er i drift, kjøres programmet som er lagret i ROM-en i henhold til hver instruksjonssyklus. Denne minneenheten kan bare brukes mens du programmerer PIC, og under utførelse blir den et skrivebeskyttet minne.
Elektrisk slettbart programmerbart skrivebeskyttet minne (EEPROM):
EEPROM er en annen type minneenhet. I denne minneenheten kan verdiene lagres under programutførelsen. Verdiene som er lagret her er bare elektrisk slettbare, det vil si at disse verdiene blir beholdt i PIC selv når IC er slått av. De kan brukes som lite minne for å lagre de utførte verdiene; minneplassen vil imidlertid være veldig mindre i svinger av KB.
Flash-minne :
Flash-minne er også Programmable Read Only Memory (PROM) der vi kan lese, skrive og slette programmet tusenvis av ganger. Generelt bruker PIC-mikrokontrolleren denne typen ROM.
I / U-porter
- Vår PIC16F877A består av fem porter, nemlig Port A, Port B, Port C, Port D og Port E.
- Av alle fem PORTER er bare Port A 16-bit, og PORT E er 3-bit. Resten av PORTS er 8-bit.
- Pinnene på disse PORTENE kan brukes som enten inngang eller utgang, basert på TRIS-registerkonfigurasjonen.
- Bortsett fra å utføre I / O-operasjoner, kan pinnene også brukes til spesialfunksjoner som SPI, Interrupt, PWM etc.
Buss:
Begrepet Buss er bare en haug med ledninger som forbinder inngangs- eller utdataenheten med CPU og RAM.
Databuss brukes til å overføre eller motta dataene.
Adressebuss brukes til å overføre minneadressen fra periferiutstyr til CPU. I / O-pinner brukes til å grensesnitt for eksterne enheter; UART og USART begge serielle kommunikasjonsprotokollene brukes til å grensesnitt serielle enheter som GSM, GPS, Bluetooth, IR, etc.
Valg av PIC-mikrokontroller for våre opplæringsprogrammer:
PIC Microcontrollers fra Microchip Company er delt inn i 4 store familier. Hver familie har en rekke komponenter som gir innebygde spesialfunksjoner:
- Den første familien, PIC10 (10FXXX) - heter Low End.
- Den andre familien, PIC12 (PIC12FXXX) - kalles Mid-Range.
- Den tredje familien er PIC16 (16FXXX).
- Den fjerde familien er PIC 17/18 (18FXXX)
Siden vi begynner å lære om PIC, la oss velge en IC som brukes og tilgjengelig universelt. Denne IC tilhører 16F-familien, delenummeret til IC er PIC16F877A. Fra den første opplæringen til slutten vil vi bruke samme IC, da denne IC er utstyrt med alle avanserte funksjoner som SPI, I2C og UART osv. Men hvis du ikke får noen av disse tingene nå, er det helt greit, vil vi få fremgang gjennom hver opplæring og bruker til slutt alle de ovennevnte funksjonene.
Når IC er valgt, er det svært viktig å lese databladet til IC. Dette bør være det første trinnet i uansett konsept vi skal prøve. Siden vi har valgt, kan denne PIC16F877A lese gjennom spesifikasjonen til denne IC i databladet.
Den perifere funksjonen nevner at den har 3 tidtakere, hvorav to er 8-bits og en er 16-biters prescaler. Disse tidtakerne brukes til å lage tidsfunksjoner i programmet vårt. De kan også brukes som benkeplater. Det viser også at det har CCP (Capture Compare og PWM) -alternativer, som hjelper oss med å generere PWM-signaler og lese innkommende frekvenssignaler. For kommunikasjon med ekstern enhet har den SPI, I2C, PSP og USART. For sikkerhets skyld er den utstyrt med Brown-out Reset (BOR), som hjelper til med å tilbakestille mens-programmet.
De analoge funksjonene, indikerer at IC har 10-biters 8-kanals ADC. Dette betyr at vår IC kan konvertere analoge verdier til digital med en oppløsning på 10-bit, og har 8 analoge pinner for å lese dem. Vi har også to interne komparatorer som kan brukes til å sammenligne den innkommende spenningen direkte uten å lese dem gjennom programvaren.
Spesielle mikrokontrollerfunksjoner betyr at den har 100.000 slettings- / skrivesykluser, noe som betyr at du kan programmere den omtrent 100 000 ganger. In-Circuit Serial Programming ™ (ICSP ™) hjelper oss med å programmere IC direkte ved hjelp av PICKIT3. Feilsøking kan gjøres via In-Circuit Debug (ICD). En annen sikkerhetsfunksjon er Watchdog Timer (WDT), som er en selv pålitelig tidtaker som tilbakestiller hele programmet om nødvendig.
Bildet nedenfor representerer pinouts på PIC16F877A IC. Dette bildet representerer hver pinne mot navnet og dets andre funksjoner. Dette finner du også i databladet. Hold dette bildet hendig, for det vil hjelpe oss under maskinvaren.
Valg av programvare for opplæringsprogrammene våre:
PIC-mikrokontroller kan programmeres med annen programvare som er tilgjengelig i markedet. Det er mennesker som fremdeles bruker forsamlingsspråk for å programmere PIC MCUer. For veiledningene våre har vi valgt den mest avanserte programvaren og kompilatoren som er utviklet av Microchip selv.
For å programmere PIC-mikrokontrolleren trenger vi en IDE (Integrated Development Environment), der programmeringen foregår. En kompilator der programmet vårt blir konvertert til lesbart MCU-format som heter HEX-filer. En IPE (Integrated Programming Environment), som brukes til å dumpe hex-filen vår i PIC MCU-ene våre.
IDE: MPLABX v3.35
IPE: MPLAB IPE v3.35
Kompilator: XC8
Microchip har gitt alle disse tre programvarene gratis. De kan lastes ned direkte fra deres offisielle side. Jeg har også gitt lenken for din bekvemmelighet. Når du er lastet ned, installer dem på datamaskinen din. Hvis du har problemer med å gjøre det, kan du se videoen som er gitt på slutten.
For simuleringsformål har vi brukt programvare kalt PROTEUS 8, levert av Labcenter. Denne programvaren kan brukes til å simulere koden som genereres ved hjelp av MPLABX. Det er en gratis demonstrasjonsprogramvare som kan lastes ned fra deres offisielle side via lenken.
Gjør deg klar med maskinvare:
Alle opplæringene våre vil ende opp med maskinvare. For å lære PIC på en best mulig måte anbefales det alltid å teste koder og kretser over maskinvare, fordi påliteligheten til simuleringen er veldig mindre. Koder som fungerer på en simuleringsprogramvare, fungerer kanskje ikke som forventet på maskinvaren din. Derfor vil vi bygge våre egne kretser på Perf-kort for å dumpe kodene våre.
Å dumpe eller laste opp vår kode i PIC, vil vi trenge PICkit 3. Den PICkit tre programmerer / debugger er en enkel, billig i kretsen debugger som styres av en PC som kjører MPLAB IDE (v8.20 eller høyere) programvare på en Windows-plattform. Den PICkit 3 programmerer / feilsøkingsprogram er en integrert del av utviklingen ingeniør verktøysamling. I tillegg til dette trenger vi også annen maskinvare som Perf-kort, Loddestasjon, PIC IC-er, Crystal-oscillatorer, kondensatorer osv. Men vi vil legge dem til i listen vår når vi går gjennom veiledningene våre.
Jeg tok med meg PICkit 3 fra amazon, unboxing-videoen av den samme finner du i videoen nedenfor. Koblingen til PICKIT3 er også gitt; prisen kan være litt høy, men stol på meg det er verdt å investere.