- PIC mikrovaldiklio architektūra ir programos:
- PIC mikrovaldiklio pasirinkimas mūsų pamokoms:
- Programinės įrangos pasirinkimas mūsų pamokoms:
- Pasiruošimas aparatinei įrangai:
1980 m. „Intel“ sukūrė pirmąjį mikrovaldiklį (8051) su Harvardo architektūra 8051 ir nuo to laiko mikrovaldikliai sukėlė revoliuciją elektronikos ir įterptosios pramonės srityse. Laikui bėgant tobulėjant technologijoms, dabar turime daug efektyvesnių ir mažos galios mikrovaldiklių, tokių kaip AVR, PIC, ARM. Šie mikrovaldikliai yra labiau pajėgūs ir lengvai naudojami, turėdami naujausius ryšio protokolus, tokius kaip USB, I2C, SPI, CAN ir kt. Net „Arduino“ ir „Raspberry Pi“ visiškai pakeitė požiūrį į mikrovaldiklius, o „Raspberry Pi“ yra ne tik mikrovaldiklis, bet ir turi visumą kompiuteris viduje.
Tai bus pirmoji dar laukiančių vadovėlių serija, kuri padės jums mokytis PIC mikrovaldiklių. Jei esate iš elektronikos ir visada norėjote pradėti nuo kai kurių mikrovaldiklių mokymosi ir patekti į kodavimo ir kūrimo pasaulį, tai ši pamokų serija bus pirmasis jūsų žingsnis pirmiausia.
„PIC“ mikrovaldiklis yra labai patogus pasirinkimas norint pradėti naudotis mikrovaldiklio projektais, nes jis turi puikius palaikymo forumus ir veiks kaip tvirta bazė, kuriant visus pažangius mikrovaldiklius, kurių dar neišmokote.
Šios pamokos yra skirtos absoliučiam arba vidutiniam besimokantiems; mes planavome pradėti nuo pačių pagrindinių projektų pažengusiems. Tikimės, kad iš besimokančiųjų nebus jokių išankstinių reikalavimų, nes esame čia, kad padėtume jums iš bet kokio lygio. Kiekvienoje pamokoje bus teorinis paaiškinimas ir modeliavimas, po kurio bus praktinė pamoka. Šiose mokymo programose nebus jokių kūrimo plokščių, mes patys sukursime grandines naudodami tobulą plokštę. Taigi pasiruoškite ir skirkite šiek tiek laiko kiekvieną savaitę, kad galėtumėte patobulinti mikrovaldiklius.
Dabar pradėkime nuo paprasto PIC mikrovaldiklių įvado ir kai kurių programinės įrangos sąrankų, kad galėtume paleisti mūsų kitą pamoką. Pabaigoje patikrinkite vaizdo įrašą, kad įdiegtumėte ir nustatytumėte „MPLABX“, „XC8“, „Proteus“ ir greitai išpakuotumėte „PICkit 3“ programuotoją.
PIC mikrovaldiklio architektūra ir programos:
PIC mikrovaldiklį „ Microchip Technologies“ pristatė 1993 metais. Iš pradžių šie PIC buvo sukurti kaip PDP (programuoto duomenų procesoriaus) kompiuterių dalis, o kiekvienas kompiuterio periferinis įrenginys buvo sąsajas naudojant šį PIC mikrovaldiklį. Taigi PIC gauna savo pavadinimą kaip periferinės sąsajos valdiklis. Vėliau „Microchip“ sukūrė daugybę PIC serijos IC, kuriuos galima naudoti bet kuriai mažai programai, pavyzdžiui, apšvietimo programai, iki pat pažangiosios.
Kiekvienas mikrovaldiklis turi būti kuriamas pagal tam tikrą architektūrą, garsiausias architektūros tipas yra Harvardo architektūra, mūsų PIC remiasi šia architektūra, nes ji priklauso klasikinei 8051 šeimai. Leiskime į mažą įvadą apie PIC Harvardo architektūrą.
„ PIC16F877A“ mikrovaldiklį sudaro įmontuotas procesorius, įvesties / išvesties prievadai, atminties organizavimas, A / D keitiklis, laikmačiai / skaitikliai, pertraukikliai, nuoseklusis ryšys, osciliatorius ir CCP modulis, kurį surinkus IC tampa galingu pradedančiųjų mikrovaldikliu. Toliau parodyta bendra PIC architektūros blokinė schema
Centrinis procesorius:
Mikrovaldiklis turi procesorių, skirtą atlikti aritmetines, loginius sprendimus ir su atmintimi susijusias operacijas. Centrinis procesorius turi koordinuoti RAM ir kitus mikrovaldiklio periferinius įrenginius.
Jį sudaro ALU (aritmetinės logikos vienetas), kuriuo jis atlieka aritmetines operacijas ir loginius sprendimus. MV (atminties vienetas) taip pat yra saugoti instrukcijas, kai jie gauti nužudyti. Šis MU nusprendžia mūsų MC programos dydį. Jis taip pat susideda iš CU (valdymo bloko), kuris veikia kaip ryšio magistralė tarp centrinio procesoriaus ir kitų mikrovaldiklio periferinių įrenginių. Tai padeda gauti duomenis po jų apdorojimo nurodytuose registruose.
Laisvosios kreipties atmintis (RAM):
Random Access atmintis yra ta, kuri lemia mūsų mikrovaldiklio greitį. Operatyvioji atmintis susideda iš joje esančių registrų bankų, kurių kiekvienam paskirta konkreti užduotis. Apskritai juos galima suskirstyti į du tipus:
- Bendrosios paskirties registras (GPR)
- Specialiųjų funkcijų registras (SFR)
Kaip rodo pavadinimas, GPR yra naudojamas bendroms registro funkcijoms, tokioms kaip sudėjimas, atimimas ir kt. Šios operacijos yra ribojamos 8 bitų ribose. Visi GPR registrai yra vartotojo rašomi ir skaitomi. Jie neturi savarankiškų funkcijų, nebent tai yra programinė įranga.
Nors SFR naudojamas sudėtingoms specialioms funkcijoms atlikti, kurios taip pat apima tam tikrus 16 bitų valdymą, jų registrus galima skaityti tik (R) ir mes negalime jiems nieko rašyti (W). Taigi šie registrai turi atlikti iš anksto nustatytas funkcijas, kurios nustatomos gamybos metu, ir jie mums tiesiog parodo rezultatą, kurį naudodami galime atlikti kai kurias susijusias operacijas.
Tik skaitymo atmintis (ROM):
Tik skaitoma atmintis yra ta vieta, kur saugoma mūsų programa. Tai nulemia maksimalų mūsų programos dydį; todėl jis taip pat vadinamas programos atmintimi. Kai veikia MCU, ROM saugoma programa vykdoma pagal kiekvieną instrukcijų ciklą. Šis atminties blokas gali būti naudojamas tik programuojant PIC, vykdymo metu jis tampa tik skaitymo atmintimi.
Elektra ištrinama programuojama tik skaitymo atmintis (EEPROM):
EEPROM yra kitas atminties įrenginių tipas. Šioje atminties vieneto reikšmes galima išsaugoti vykdant programą. Čia saugomos reikšmės yra ištrinamos tik elektra, ty šios vertės bus išsaugotos PIC net ir tada, kai IC bus išjungtas. Jie gali būti naudojami kaip maža atminties vieta vykdomoms reikšmėms saugoti; tačiau atminties vietos bus labai mažiau pakaitomis KB.
„Flash“ atmintis :
„Flash“ atmintis taip pat yra programuojama tik skaitymo atmintis (PROM), kurioje galime tūkstančius kartų skaityti, rašyti ir ištrinti programą. Paprastai PIC mikrovaldiklis naudoja tokio tipo ROM.
Įvesties / išvesties prievadai
- Mūsų PIC16F877A sudaro penki uostai, būtent A, B, C, C, D ir E.
- Iš visų penkių Uostų tik A prievadas yra 16 bitų, o Uostas E - 3 bitų. Likusi Uostai yra 8 bitų.
- Šių Uostų kaiščiai gali būti naudojami kaip įvestis arba išvestis, remiantis TRIS registro konfigūracija.
- Be įvesties / išvesties operacijų, kaiščiai taip pat gali būti naudojami specialioms funkcijoms, tokioms kaip SPI, pertraukimas, PWM ir kt.
Autobusas:
Terminas „autobusas“ yra tik laidų krūva, jungianti įvesties arba išvesties įrenginį su procesoriumi ir RAM.
Duomenų magistralė naudojama duomenims perduoti arba priimti.
Adreso magistralė naudojama perduodant atminties adresą iš išorinių įrenginių į centrinį procesorių. I / O kaiščiai naudojami sąsajai su išoriniais periferiniais įrenginiais; „UART“ ir „USART“ abu nuoseklaus ryšio protokolai naudojami nuosekliems įrenginiams, tokiems kaip GSM, GPS, „Bluetooth“, IR ir kt.
PIC mikrovaldiklio pasirinkimas mūsų pamokoms:
„Microchip Company“ PIC mikrovaldikliai yra suskirstyti į 4 daugiavaikes šeimas. Kiekvienoje šeimoje yra įvairių komponentų, kurie suteikia įmontuotas specialias savybes:
- Pirmoji šeima, PIC10 (10FXXX), vadinama „Low End“.
- Antroji šeima, PIC12 (PIC12FXXX), vadinama vidutinės klasės.
- Trečioji šeima yra PIC16 (16FXXX).
- Ketvirtoji šeima yra PIC 17/18 (18FXXX)
Kadangi mes pradedame mokytis apie PIC, pasirinkite IC, kuris yra naudojamas ir prieinamas visuotinai. Šis IC priklauso 16F šeimai, IC dalies numeris yra PIC16F877A. Nuo pirmos pamokos iki pabaigos naudosime tą patį IC, nes šiame IC yra visos pažangios funkcijos, tokios kaip SPI, I2C, UART ir kt. Bet jei jūs negaunate nė vieno iš šių dalykų, tai yra visiškai gerai, mes paženkite kiekvieną pamoką ir galiausiai naudojate visas pirmiau minėtas funkcijas.
Pasirinkus IC, labai svarbu perskaityti IC duomenų lapą. Tai turėtų būti pirmasis žingsnis bet kokioje koncepcijoje, kurią ketiname išbandyti. Kadangi mes pasirinkome šį PIC16F877A, galite perskaityti šio IC specifikaciją duomenų lape.
„Periferinė funkcija“ mini, kad turi 3 laikmačius, du iš jų yra 8 bitų, o vienas - 16 bitų išankstinis skalavimo įrenginys. Šie laikmačiai yra naudojami kuriant laiko valdymo funkcijas mūsų programoje. Jie taip pat gali būti naudojami kaip skaitikliai. Tai taip pat rodo, kad ji turi CCP („Capture Compare“ ir PWM) parinktis, kurios padeda mums generuoti PWM signalus ir skaityti gaunamus dažnio signalus. Ryšiui su išoriniu įrenginiu jis turi SPI, I2C, PSP ir USART. Saugumo sumetimais jame yra „ Brown-out Reset“ (BOR), kuris padeda atkurti „while“ programą.
Analoginės funkcijos rodo, kad IC turi 10 bitų 8 kanalų ADC. Tai reiškia, kad mūsų IC gali konvertuoti analogines reikšmes į skaitmenines 10 bitų raiška ir turi 8 analoginius kaiščius joms perskaityti. Mes taip pat turime du vidinius lygintuvus, kuriuos galima naudoti tiesiogiai lyginant gaunamą įtampą, jų iš tikrųjų neperskaičius per programinę įrangą.
Specialiosios mikrovaldiklio funkcijos reiškia, kad joje yra 100 000 ištrynimo / įrašymo ciklų, o tai reiškia, kad galite ją užprogramuoti maždaug 100 000 kartų. „In-Circuit Serial Programming ™“ (ICSP ™) padeda mums tiesiogiai programuoti IC, naudojant „ PICKIT3“. Derinimą galima atlikti naudojant „ In-Circuit Debug“ (ICD). Kita saugos funkcija yra „ Watchdog Timer“ (WDT), kuris yra patikimas laikmatis, kuris, jei reikia, iš naujo nustato visą programą.
Žemiau pateiktame paveikslėlyje pavaizduoti mūsų PIC16F877A IC kištukai. Šis paveikslėlis atspindi kiekvieną smeigtuką prieš jo pavadinimą ir kitus jo bruožus. Tai taip pat galima rasti duomenų lape. Laikykite šį vaizdą patogų, nes jis mums padės atliekant aparatūros darbus.
Programinės įrangos pasirinkimas mūsų pamokoms:
PIC mikrovaldiklį galima užprogramuoti naudojant skirtingą programinę įrangą, kuri yra rinkoje. Yra žmonių, kurie vis dar naudoja Asamblėjos kalbą programuodami PIC MCU. Savo pamokoms pasirinkome pačią pažangiausią programinę įrangą ir kompiliatorių, kuriuos sukūrė pati „Microchip“.
Norint užprogramuoti PIC mikrovaldiklį, mums reikės IDE (Integrated Development Environment), kur vyksta programavimas. Sudarytojas, kur mūsų programa bus konvertuojami į MCU skaitoma forma, vadinama HEX failus. IPE (Integruota programavimo aplinka), kuris yra naudojamas dump mūsų hex failą į mūsų IPS MCUs.
IDE: MPLABX v.3.35
IPE: MPLAB IPE v3.35
Sudarytojas: XC8
„Microchip“ suteikė visas šias tris programines įrangą nemokamai. Juos galima atsisiųsti tiesiai iš jų oficialaus puslapio. Aš taip pat pateikiau nuorodą jūsų patogumui. Atsisiuntę įdiekite juos į savo kompiuterį. Jei turite kokių nors problemų, galite peržiūrėti pabaigoje pateiktą vaizdo įrašą.
Modeliavimo tikslais mes naudojome programinę įrangą pavadinimu PROTEUS 8, kurią teikia Labcenter. Šią programinę įrangą galima naudoti imituojant kodą, sugeneruotą naudojant MPLABX. Yra nemokama demonstracinė programinė įranga, kurią galite atsisiųsti iš oficialaus jų puslapio per nuorodą.
Pasiruošimas aparatinei įrangai:
Visi mūsų vadovėliai baigsis aparatine įranga. Norint kuo geriau išmokti PIC, visada rekomenduojama išbandyti mūsų kodus ir grandines aparatine įranga, nes modeliavimo patikimumas yra labai mažas. Kodai, kurie dirba su modeliavimo programine įranga, gali neveikti taip, kaip tikėjotės savo aparatinėje įrangoje. Taigi mes sukursime savo grandines ant „Perf“ plokščių, kad išmestume savo kodus.
Norėdami iškelti arba įkelti kodą į PIC, mums reikės PICkit 3. „ PICkit 3“ programuotojas / derintuvas yra paprastas, nebrangus grandinės derintuvas, kurį valdo kompiuteris, kuriame veikia MPLAB IDE (v8.20 ar naujesnė) programinė įranga. „Windows“ platforma. „ PICkit 3“ programuotojas / derintuvas yra neatskiriama kūrimo inžinieriaus įrankių rinkinio dalis. Be to, mums taip pat reikės kitos aparatūros, tokios kaip „Perf“ plokštė, litavimo stotis, PIC IC, kristalų osciliatoriai, kondensatoriai ir tt
Aš parsivežiau savo „PICkit 3“ iš „Amazon“, to paties „unboxing“ vaizdo įrašą galite rasti žemiau esančiame vaizdo įraše. Taip pat pateikiama nuoroda į PICKIT3; kaina gali būti kiek aukšta, tačiau patikėkit, kad verta investuoti.