- Arhitektura in aplikacije PIC mikrokrmilnika:
- Izbira mikrokrmilnika PIC za naše vaje:
- Izbor programske opreme za naše vaje:
- Priprava na strojno opremo:
Leta 1980 je Intel razvil prvi mikrokrmilnik (8051) s Harvard Architecture 8051 in od takrat so mikrokrmilniki prinesli revolucijo v elektroniki in vgrajeni industriji. In s tehnološkim napredkom skozi čas imamo zdaj veliko bolj učinkovite mikrokrmilnike z nizko porabo energije, kot so AVR, PIC, ARM. Ti mikrokrmilniki so zmogljivejši in enostavnejši za uporabo, saj imajo najnovejše komunikacijske protokole, kot so USB, I2C, SPI, CAN itd. Tudi Arduino in Raspberry Pi sta popolnoma spremenila pogled na mikrokrmilnike, Raspberry Pi pa ni le mikrokrmilnik, temveč ima celo računalnik znotraj.
To bo prvi del serije vaj, ki šele prihajajo, ki vam bodo pomagale pri učenju mikrokrmilnikov PIC. Če prihajate iz elektronike in ste vedno želeli začeti z učenjem nekaterih mikrokrmilnikov in se popeljati v svet kodiranja in gradnje stvari, bo ta serija vaj vaš prvi korak za začetek.
Mikrokrmilnik PIC je zelo priročna izbira za začetek projektov mikrokrmilnika, saj ima odlične forume za podporo in bo močna podlaga za nadgradnjo vseh vaših naprednih mikrokrmilnikov, ki se jih še niste naučili.
Te vaje so namenjene absolutnim ali vmesnim učencem; načrtovali smo, da bomo začeli z najosnovnejšimi projekti do naprednih. Od učencev ne pričakujemo predpogojev, saj smo tu, da vam pomagamo na kateri koli ravni. Vsaka vadnica bo imela teoretično razlago in simulacijo, ki ji bo sledila praktična vadnica. Te vaje ne bodo vključevale nobene razvojne plošče, sami bomo izdelali vezja z uporabo perf plošče. Zato se pripravite in si vsak teden privoščite nekaj časa, da vas izboljšajo z mikrokrmilniki.
Zdaj pa začnimo s preprostim uvodom o mikrokrmilnikih PIC in nekaterimi nastavitvami programske opreme, s katerimi bomo začeli z naslednjo vadnico. Na koncu preverite Video za namestitev in namestitev MPLABX, XC8, Proteus in hitro razpakiranje programerja PICkit 3.
Arhitektura in aplikacije PIC mikrokrmilnika:
Mikrokrmilnik PIC je Microchip Technologies predstavil leta 1993. Prvotno so bili ti PIC razviti za del PDP (Programirani procesor podatkov). Računalniki in vse periferne naprave računalnika so bile povezane s tem mikrokrmilnikom PIC. Zato je PIC dobil ime kot za krmilnik perifernih vmesnikov. Kasneje je Microchip razvil veliko IC-jev serije PIC, ki jih je mogoče uporabiti za katero koli majhno aplikacijo, kot je razsvetljava, do napredne.
Vsak mikrokrmilnik je treba graditi okoli neke arhitekture, najbolj znana vrsta arhitekture je arhitektura Harvarda, naš PIC temelji na tej arhitekturi, saj spada v klasično družino 8051. Pojdimo v majhen uvod o harvardski arhitekturi PIC.
PIC16F877A mikrokrmilniška sestavljajo vgrajen CPU, I / O vrat, pomnilniške organizacije, A / D pretvornik, timers / števci, prekinitve, serijske komunikacije, oscilator in CCP modul, ki se zberejo naredi IC zmogljiv mikrokrmilnik za začetnike, za začetek. Splošni blokovni diagram arhitekture PIC je prikazan spodaj
CPU (centralna procesorska enota):
Mikrokrmilnik ima CPU za izvajanje aritmetičnih operacij, logičnih odločitev in operacij, povezanih s pomnilnikom. CPU mora koordinirati med RAM-om in drugimi zunanjimi napravami mikrokrmilnika.
Sestavljen je iz ALU (Arithmetic Logic Unit), s pomočjo katerega izvaja aritmetične operacije in logične odločitve. Na voljo je tudi MU (pomnilniška enota) za shranjevanje navodil po izvedbi. Ta MU določa velikost programa našega MC. Sestavljen je tudi iz CU (krmilne enote), ki deluje kot komunikacijsko vodilo med CPU in drugimi zunanjimi napravami mikrokrmilnika. To pomaga pri pridobivanju podatkov po obdelavi v določenih registrih.
Pomnilnik z naključnim dostopom (RAM):
Random Access pomnilnik je tisti, ki določa hitrost našega mikrokrmilnika. RAM je sestavljen iz registrskih bank znotraj njega, od katerih ima vsaka določeno nalogo. Na splošno jih lahko razvrstimo v dve vrsti:
- Register splošnega namena (GPR)
- Register posebnih funkcij (SFR)
Kot že ime pove, se GPR uporabljajo za splošne funkcije registra, kot so seštevanje, odštevanje itd. Te operacije so omejene na 8-bit. Vsi registri pod GPR so uporabniško zapisljivi in berljivi. Sami nimajo nobenih funkcij, razen če je določena programska oprema.
Medtem ko se SFR uporablja za izvajanje zapletenih posebnih funkcij, ki vključujejo tudi nekaj 16-bitnega ravnanja, je njihove registre mogoče brati samo (R) in jim ne moremo ničesar zapisati (W). Ti registri imajo torej vnaprej določene funkcije za izvajanje, ki so nastavljene v času izdelave in nam samo prikažejo rezultat, s pomočjo katerega lahko izvedemo nekatere povezane operacije.
Bralni pomnilnik (ROM):
Spomin samo za branje je kraj, kjer se shrani naš program. To določa največjo velikost našega programa; zato ga imenujemo tudi programski pomnilnik. Ko MCU deluje, se program, shranjen v ROM-u, izvaja v skladu z vsakim ukaznim ciklom. Ta pomnilniška enota se lahko uporablja samo med programiranjem PIC, med izvajanjem pa postane samo bralni pomnilnik.
Električno izbrisljiv programljiv bralni pomnilnik (EEPROM):
EEPROM je druga vrsta pomnilniške enote. V tem pomnilniku lahko med izvajanjem programa shranite vrednosti enote. Tukaj shranjene vrednosti so samo električno izbrisljive, kar pomeni, da se bodo te vrednosti ohranile v PIC, tudi če je IC izklopljen. Uporabljajo se lahko kot majhen pomnilniški prostor za shranjevanje izvršenih vrednosti; vendar pa bo prostora pomnilnika zelo manj pri zavojih KB.
Flash pomnilnik :
Flash pomnilnik je tudi programabilni bralni pomnilnik (PROM), v katerem lahko beremo, pišemo in brišemo program na tisočekrat. Na splošno mikrokrmilnik PIC uporablja to vrsto ROM-a.
Vhodno / izhodna vrata
- Naš PIC16F877A je sestavljen iz petih vrat, in sicer Port A, Port B, Port C, Port D & Port E.
- Od vseh petih pristanišč je samo Port A 16-bitni, PORT E pa 3-bitni. Preostali PORTI so 8-bitni.
- Zatiči na teh pristaniščih se lahko uporabljajo kot vhod ali izhod na podlagi konfiguracije registra TRIS.
- Poleg izvajanja V / I operacij se zatiči lahko uporabljajo tudi za posebne funkcije, kot so SPI, Interrupt, PWM itd.
Avtobus:
Izraz Bus je le kup žic, ki povezuje vhodno ali izhodno napravo s CPU in RAM-om.
Podatkovno vodilo se uporablja za prenos ali sprejem podatkov.
Naslovno vodilo se uporablja za prenos pomnilniškega naslova z zunanjih naprav na CPU. Vhodno / izhodni zatiči se uporabljajo za povezovanje zunanjih zunanjih naprav; Oba protokola serijske komunikacije UART in USART se uporabljata za povezovanje serijskih naprav, kot so GSM, GPS, Bluetooth, IR itd.
Izbira mikrokrmilnika PIC za naše vaje:
Mikrokrmilniki PIC podjetja Microchip so razdeljeni v 4 velike družine. Vsaka družina ima različne komponente, ki nudijo vgrajene posebne funkcije:
- Prva družina, PIC10 (10FXXX) - se imenuje Low End.
- Druga družina, PIC12 (PIC12FXXX), se imenuje srednjega razreda.
- Tretja družina je PIC16 (16FXXX).
- Četrta družina je PIC 17/18 (18FXXX)
Ker se začenjamo učiti o PIC, izberemo IC, ki je splošno uporaben in na voljo. Ta IC pripada družini 16F, številka dela IC pa je PIC16F877A. Od prve vaje do konca bomo uporabljali isti IC, saj je ta IC opremljen z vsemi naprednimi funkcijami, kot so SPI, I2C in UART itd. Če pa ne dobite nobene od teh stvari, je popolnoma v redu, bomo napredujte skozi vsako vadnico in na koncu uporabite vse zgoraj omenjene funkcije.
Ko je IC izbran, je zelo pomembno, da preberete podatkovni list IC. To bi moral biti prvi korak v katerem koli konceptu, ki ga bomo poskusili. Zdaj, ko smo izbrali ta PIC16F877A, lahko preberemo specifikacije tega IC v podatkovnem listu.
The Peripheral Feature omenja, da ima 3 merilnike časa, od katerih sta dva 8-bitna in eden 16-bitni prescaler. Ti časovniki se uporabljajo za ustvarjanje časovnih funkcij v našem programu. Uporabljajo se lahko tudi kot števci. Prav tako kaže, da ima možnosti CCP (Capture Compare in PWM), kar nam pomaga ustvarjati PWM signale in brati dohodne frekvenčne signale. Za komunikacijo z zunanjo napravo ima SPI, I2C, PSP in USART. Zaradi varnosti je opremljen z Brown-out Reset (BOR), ki pomaga pri ponastavitvi programa while.
Analogne funkcije kažejo, da ima IC 10-bitni 8-kanalni ADC. To pomeni, da lahko naša IC pretvori analogne vrednosti v digitalne z ločljivostjo 10 bitov in ima 8 analognih nožic za branje. Na voljo imamo tudi dva notranja primerjalnika, s katerimi lahko neposredno primerjate dohodno napetost, ne da bi jih dejansko odčitali s programsko opremo.
Posebne funkcije mikrokrmilnika pomenijo, da ima 100.000 ciklov brisanja / pisanja, kar pomeni, da ga lahko programirate približno 100.000-krat. In-Circuit Serial Programming ™ (ICSP ™) nam pomaga pri programiranju IC neposredno z uporabo PICKIT3. Odpravljanje napak lahko izvedete s pomočjo odpravljanja napak v krogu (ICD). Druga varnostna funkcija je Watchdog Timer (WDT), ki je samozanesljiv časovnik, ki po potrebi ponastavi celoten program.
Spodnja slika predstavlja pinout našega IC PIC16F877A. Ta slika predstavlja vsak žebljiček ob njegovem imenu in drugih lastnostih. To lahko najdete tudi v obrazcu. Ta slika naj bo pri roki, saj nam bo pomagala med našimi deli strojne opreme.
Izbor programske opreme za naše vaje:
Mikrokrmilnik PIC je mogoče programirati z različno programsko opremo, ki je na voljo na trgu. Obstajajo ljudje, ki še vedno uporabljajo skupščinski jezik za programiranje PIC MCU-jev. Za naše vaje smo izbrali najnaprednejšo programsko opremo in prevajalnik, ki jih je razvil sam Microchip.
Za programiranje mikrokrmilnika PIC potrebujemo IDE (integrirano razvojno okolje), kjer poteka programiranje. Prevajalnik, kjer dobi naš program pretvori v MCU berljivi obliki ti HEX datoteke. IPE (Integrated Programiranje okolje), ki se uporablja za smetišče naše hex datoteko v naši PIC mikrokontrolerji.
IDE: MPLABX v3.35
IPE: MPLAB IPE v3.35
Sestavljalec: XC8
Microchip je vse te tri programske opreme dal brezplačno. Lahko jih prenesete neposredno z njihove uradne strani. Za vaše udobje sem navedel tudi povezavo. Ko jih prenesete, jih namestite v računalnik. Če imate pri tem kakršne koli težave, si lahko ogledate video na koncu.
Za simulacijo smo uporabili programsko opremo PROTEUS 8, ki jo zagotavlja Labcenter. S to programsko opremo lahko simuliramo našo kodo, ustvarjeno z MPLABX. Obstaja brezplačna predstavitvena programska oprema, ki jo lahko prenesete z njihove uradne strani prek povezave.
Priprava na strojno opremo:
Vse naše vadnice bodo na koncu opremljene s strojno opremo. Da bi se PIC naučili na najboljši možni način, je vedno priporočljivo preizkusiti naše kode in vezja prek strojne opreme, ker je zanesljivost simulacije zelo manjša. Kode, ki delujejo na simulacijski programski opremi, morda ne bodo delovale, kot ste pričakovali na vaši strojni opremi. Zato bomo zgradili lastna vezja na ploščah Perf, da bomo odlagali svoje kode.
Smetišče ali naložite svojo kodo v PIC, bomo potrebovali PICkit 3. PICkit 3 programer / debugger je preprost, poceni in-vezje iskalnik napak, ki je pod nadzorom osebnega računalnika z operacijskim MPLAB IDE (v8.20 ali več) programske opreme na platformo Windows. PICkit 3 programer / debugger je sestavni del razvoja inženirja orodje suite. Poleg tega bomo potrebovali tudi drugo strojno opremo, kot so plošča Perf, spajkalna postaja, PIC IC, kristalni oscilatorji, kondenzatorji itd. Vendar jih bomo dodali na naš seznam, ko bomo napredovali skozi naše vaje.
Svoj PICkit 3 sem prinesel iz Amazonke, video o odpakiranju istega je na spodnjem videoposnetku. Na voljo je tudi povezava za PICKIT3; cena je lahko nekoliko visoka, a verjemite mi, da jo je vredno investirati.