- Arhitectură și aplicații pentru microcontroler PIC:
- Selecția microcontrolerului PIC pentru tutorialele noastre:
- Selecția de software pentru tutorialele noastre:
- Pregătirea pentru hardware:
În 1980, Intel a dezvoltat primul microcontroler (8051) cu Harvard Architecture 8051 și de atunci microcontrolerele au adus o revoluție în industria electronică și încorporată. Și odată cu progresul tehnologic de-a lungul timpului, acum avem multe microcontrolere mai eficiente și cu putere redusă, cum ar fi AVR, PIC, ARM. Aceste microcontrolere sunt mai capabile și mai ușor de utilizat, având cele mai recente protocoale de comunicații precum USB, I2C, SPI, CAN etc. Chiar și Arduino și Raspberry Pi au schimbat complet perspectiva spre microcontrolere, iar Raspberry Pi nu este doar un microcontroler, ci are întreg computer în interior.
Aceasta va fi prima parte a unei serii de tutoriale care urmează să vină, care vă vor ajuta să învățați microcontrolerele PIC. Dacă sunteți dintr-un mediu electronic și ați dorit întotdeauna să începeți cu învățarea unor microcontrolere și să vă introduceți în lumea codificării și construirii lucrurilor, atunci această serie de tutoriale va fi primul dvs. pas pentru început.
Microcontrolerul PIC este o alegere foarte convenabilă pentru a începe cu un proiect de microcontroler, deoarece are forumuri de suport excelente și va acționa ca o bază solidă pentru a construi pe toate microcontrolerele dvs. avansate pe care încă nu le-ați învățat.
Aceste tutoriale sunt făcute pentru cursanții absoluti sau intermediari; ne-am propus să începem cu cele mai de bază proiecte la cele avansate. Nu ne așteptăm la cerințe prealabile de la cursanți, deoarece suntem aici pentru a vă ajuta de la orice nivel. Fiecare tutorial va avea o explicație teoretică și o simulare urmată de un tutorial practic. Aceste tutoriale nu vor implica nicio placă de dezvoltare, ne vom crea propriile circuite folosind o placă perf. Deci, pregătește-te și fă-ți ceva timp în fiecare săptămână pentru a te îmbunătăți cu microcontrolerele.
Acum, să începem cu o introducere simplă pe microcontrolerele PIC și câteva configurări software pentru a ne lansa în următorul nostru tutorial. Verificați videoclipul de la sfârșit pentru a instala și configura MPLABX, XC8, Proteus și unbox rapid al programatorului PICkit 3.
Arhitectură și aplicații pentru microcontroler PIC:
Microcontrolerul PIC a fost introdus de Microchip Technologies în anul 1993. Inițial, aceste PIC au fost dezvoltate pentru a face parte din computerele PDP (Procesor de date programate) și fiecare dispozitiv periferic al computerului a fost interfațat folosind acest microcontroler PIC. Prin urmare, PIC își primește numele ca și controler de interfață periferică. Ulterior, Microchip a dezvoltat o mulțime de IC-uri din seria PIC, care pot fi utilizate pentru orice aplicație mică, cum ar fi o aplicație de iluminat până la cea avansată.
Fiecare microcontroler trebuie construit în jurul unor arhitecturi, cel mai faimos tip de arhitectură este arhitectura Harvard, PIC-ul nostru se bazează pe această arhitectură deoarece aparține familiei clasice 8051. Să intrăm într-o mică prezentare despre arhitectura Harvard a PIC.
PIC16F877A Microcontroller constă dintr - un procesor încorporat, I / porturi O, organizarea de memorie, convertor A / D, cronometre / contoare, întrerupe, comunicație serială, oscilator și modul de PCC pentru a aduna face ca IC un microcontroler puternic pentru incepatori pentru a începe cu. Diagrama bloc generală a arhitecturii PIC este prezentată mai jos
CPU (unitate centrală de procesare):
Microcontrolerul are un CPU pentru a efectua operații aritmetice, decizii logice și operațiuni legate de memorie. CPU trebuie să se coordoneze între RAM și celelalte periferice ale microcontrolerului.
Acesta constă dintr-o ALU (Unitate logică aritmetică), folosind care efectuează operațiile aritmetice și deciziile logice. Un MU (unitate de memorie) este, de asemenea, prezent pentru a stoca instrucțiunile după ce sunt executate. Acest UM decide mărimea programului MC-ului nostru. De asemenea, este format dintr-un CU (Control Unit) care acționează ca o magistrală de comunicație între CPU și alte periferice ale microcontrolerului. Acest lucru ajută la preluarea datelor după ce acestea sunt procesate în registrele specificate.
Memorie cu acces aleatoriu (RAM):
O memorie cu acces aleator este cea care decide viteza microcontrolerului nostru. Memoria RAM constă din bănci de registre din interiorul cărora fiecarei i se atribuie o sarcină specifică. În ansamblu, acestea pot fi clasificate în două tipuri:
- Registrul cu scop general (GPR)
- Registrul funcțiilor speciale (SFR)
După cum sugerează și numele, GPR sunt folosite pentru funcții de registre generale, cum ar fi adunarea, scăderea etc. Toate registrele din GPR sunt scrise de utilizator și lizibile. Nu au funcții pe cont propriu decât dacă este specificat software.
În timp ce SFR este utilizat pentru a îndeplini funcții speciale complicate care implică, de asemenea, o anumită manipulare pe 16 biți, registrele lor pot fi citite doar (R) și nu putem scrie (W) nimic pentru ei. Deci, aceste registre au funcții predefinite de realizat, care sunt setate în momentul fabricației și ne afișează doar rezultatul, folosind care putem efectua unele operațiuni conexe.
Memorie numai citire (ROM):
Memoria numai în citire este locul în care programul nostru este stocat. Aceasta decide dimensiunea maximă a programului nostru; prin urmare, este numit și ca memorie de program. Când MCU este în funcțiune, programul stocat în ROM este executat conform fiecărui ciclu de instrucțiuni. Această unitate de memorie poate fi utilizată numai în timpul programării PIC, în timpul execuției devine o memorie numai în citire.
Memorie numai citire programabilă ștearsă electric (EEPROM):
EEPROM este un alt tip de unitate de memorie. În această unitate de memorie valorile pot fi stocate în timpul executării programului. Valorile stocate aici sunt șterse numai electric, adică aceste valori vor fi păstrate în PIC chiar și atunci când IC-ul este oprit. Ele pot fi utilizate ca spațiu de memorie mic pentru a stoca valorile executate; cu toate acestea, spațiul de memorie va fi foarte redus pe rânduri de KB.
Memorie Flash :
Memoria flash este, de asemenea, Memorie numai în citire programabilă (PROM) în care putem citi, scrie și șterge programul de mii de ori. În general, microcontrolerul PIC utilizează acest tip de ROM.
Porturi I / O
- PIC16F877A este format din cinci porturi și anume Portul A, Portul B, Portul C, Portul D și Portul E.
- Dintre toate cele cinci PORTE, numai Portul A este pe 16 biți, iar PORTUL E este pe 3 biți. Restul PORȚILOR sunt de 8 biți.
- Pinii acestor PORTS pot fi folosiți fie ca intrare, fie ca ieșire, pe baza configurației TRIS Register.
- În afară de efectuarea operațiunilor de I / O, pinii pot fi folosiți și pentru funcții speciale precum SPI, Interrupt, PWM etc.
Autobuz:
Termenul Bus este doar o grămadă de fire care conectează dispozitivul de intrare sau ieșire cu CPU și RAM.
Autobuzul de date este utilizat pentru a transfera sau primi datele.
Autobuzul de adrese este utilizat pentru a transmite adresa de memorie de la periferice la CPU. Pinii I / O sunt utilizați pentru interfața perifericelor externe; Ambele protocoale de comunicații seriale UART și USART sunt utilizate pentru interfațarea dispozitivelor seriale precum GSM, GPS, Bluetooth, IR etc.
Selecția microcontrolerului PIC pentru tutorialele noastre:
Microcontrolerele PIC de la Microchip Company sunt împărțite în 4 familii mari. Fiecare familie are o varietate de componente care oferă caracteristici speciale încorporate:
- Prima familie, PIC10 (10FXXX) - se numește Low End.
- A doua familie, PIC12 (PIC12FXXX) - se numește Mid-Range.
- A treia familie este PIC16 (16FXXX).
- A patra familie este PIC 17/18 (18FXXX)
Deoarece începem să aflăm despre PIC, să selectăm un IC care este utilizat și disponibil universal. Acest CI aparține familiei 16F, numărul piesei IC este PIC16F877A. De la primul tutorial până la sfârșit vom folosi același IC, deoarece acest IC este echipat cu toate caracteristicile avansate, cum ar fi SPI, I2C și UART etc. progresează prin fiecare tutorial și folosește în cele din urmă toate caracteristicile menționate mai sus.
Odată ce IC este selectat, este foarte important să citiți fișa tehnică a IC. Acesta ar trebui să fie primul pas în orice concept pe care urmează să-l încercăm. Acum, de când am selectat acest PIC16F877A, permite să citim specificațiile acestui IC din foaia de date.
Caracteristica periferică menționează că are 3 temporizatoare, dintre care două sunt pe 8 biți și unul este un pre-calculator pe 16 biți. Aceste cronometre sunt utilizate pentru a crea funcții de sincronizare în programul nostru. Pot fi folosite și ca ghișee. De asemenea, arată că are opțiuni CCP (Capture Compare și PWM), ceea ce ne ajută să generăm semnale PWM și să citim semnalele de frecvență primite. Pentru comunicarea cu dispozitivul extern, acesta are SPI, I2C, PSP și USART. Din motive de siguranță, este echipat cu Brown-out Reset (BOR), care ajută la resetarea programului while.
Funcțiile analogice, indică faptul că IC-ul are ADC pe 10 biți pe 8 canale. Aceasta înseamnă că IC-ul nostru poate converti valorile analogice în digitale cu o rezoluție de 10 biți și are 8 pini analogici pentru a le citi. De asemenea, avem doi comparatori interni care pot fi folosiți pentru a compara direct tensiunea de intrare fără a le citi efectiv prin intermediul software-ului.
Caracteristicile speciale ale microcontrolerului înseamnă că are un ciclu de ștergere / scriere de 100.000, ceea ce înseamnă că îl puteți programa de aproximativ 100.000 de ori. In-Circuit Serial Programming ™ (ICSP ™) ne ajută să programăm IC-ul direct folosind PICKIT3. Depanarea se poate face prin In-Circuit Debug (ICD). O altă caracteristică de siguranță este Watchdog Timer (WDT), care este un temporizator de încredere care resetează întregul program, dacă este necesar.
Imaginea de mai jos reprezintă pinout-urile IC-ului nostru PIC16F877A. Această imagine reprezintă fiecare ac în raport cu numele său și celelalte caracteristici ale acestuia. Acest lucru poate fi găsit și în foaia tehnică. Păstrați această imagine la îndemână, deoarece ne va ajuta în timpul lucrărilor noastre hardware.
Selecția de software pentru tutorialele noastre:
Microcontrolerul PIC poate fi programat cu diferite software-uri disponibile pe piață. Există oameni care încă folosesc limbajul de asamblare pentru a programa MCU-uri PIC. Pentru tutorialele noastre am selectat cel mai avansat software și compilator care au fost dezvoltate chiar de Microchip.
Pentru a programa microcontrolerul PIC vom avea nevoie de un IDE (Integrated Development Environment), unde are loc programarea. Un compilator, în care programul nostru este convertit într-o formă lizibilă MCU numită fișiere HEX. Un IPE (Integrated Programming Environment), care este folosit pentru a arunca fișierul hexagonal în MCU-urile noastre PIC.
IDE: MPLABX v3.35
IPE: MPLAB IPE v3.35
Compilator: XC8
Microchip a oferit gratuit toate aceste trei programe. Acestea pot fi descărcate direct de pe pagina lor oficială. De asemenea, am oferit linkul pentru confortul dvs. După descărcare, instalați-le pe computer. Dacă aveți probleme în acest sens, puteți vizualiza videoclipul oferit la final.
În scopul simulării, am folosit un software numit PROTEUS 8, furnizat de Labcenter. Acest software poate fi folosit pentru a simula codul nostru generat folosind MPLABX. Există un software demonstrativ gratuit care poate fi descărcat de pe pagina lor oficială prin link.
Pregătirea pentru hardware:
Toate tutorialele noastre vor ajunge la hardware. Pentru a învăța PIC în cel mai bun mod posibil, este întotdeauna recomandat să testați codurile și circuitele noastre pe hardware, deoarece fiabilitatea simulației este foarte mică. Este posibil ca codurile care funcționează pe un software de simulare să nu funcționeze așa cum vă așteptați pe hardware-ul dvs. Prin urmare, ne vom construi propriile circuite pe plăci Perf pentru a ne arunca codurile.
Pentru a arunca sau încărcați codul nostru în PIC, vom avea nevoie de PICkit 3. PICkit 3 programator / depanator este un simplu, low-cost depanator în circuit, care este controlat de un PC care rulează MPLAB IDE (v8.20 sau mai mare), software - ul pe o platformă Windows. PICkit 3 programator / depanator este o parte integrantă a suitei instrument inginerului de dezvoltare a lui. În plus, vom avea nevoie și de alte hardware, cum ar fi placa Perf, stația de lipit, IC-urile PIC, oscilatoarele Crystal, condensatoarele etc. Dar le vom adăuga pe lista noastră pe măsură ce progresăm prin tutorialele noastre.
Mi-am adus PICkit 3 de pe amazon, videoclipul unboxing al acestuia poate fi găsit în videoclipul de mai jos. De asemenea, este furnizat linkul pentru PICKIT3; prețul poate fi un pic ridicat, dar credeți-mă că merită să investiți.