- Arquitectura i aplicacions del microcontrolador PIC:
- Selecció de microcontrolador PIC per als nostres tutorials:
- Selecció de programari per als nostres tutorials:
- Preparació per al maquinari:
El 1980, Intel va desenvolupar el primer microcontrolador (8051) amb Harvard Architecture 8051 i des de llavors els microcontroladors van suposar una revolució en la indústria electrònica i incrustada. I amb l’avenç tecnològic al llarg del temps, ara tenim molts microcontroladors més eficients i de baixa potència com AVR, PIC, ARM. Aquests microcontroladors són més capaços i fàcils d’utilitzar, ja que tenen els protocols de comunicació més recents com USB, I2C, SPI, CAN, etc. Fins i tot Arduino i Raspberry Pi han canviat completament la perspectiva cap als microcontroladors, i Raspberry Pi no és només un microcontrolador, sinó que en té tot. ordinador a l'interior.
Aquesta serà la primera part d’una sèrie de tutorials que encara falten, que us ajudaran a aprendre microcontroladors PIC. Si sou de formació electrònica i sempre heu volgut començar a aprendre alguns microcontroladors i endinsar-vos al món de la codificació i la construcció de coses, llavors aquesta sèrie de tutorials serà el primer pas per començar.
El microcontrolador PIC és una opció molt convenient per començar amb els projectes d’un microcontrolador, perquè té fòrums de suport excel·lents i actuarà com una base sòlida per construir tots els vostres microcontroladors avançats que encara no heu après.
Aquests tutorials estan fets per a estudiants absoluts o intermedis; tenim previst començar amb els projectes més bàsics i avançats. No esperem cap requisit previ per part dels estudiants, ja que som aquí per ajudar-vos des de qualsevol nivell. Cada tutorial tindrà una explicació teòrica i una simulació seguida d’un tutorial pràctic. Aquests tutorials no implicaran cap placa de desenvolupament, farem els nostres propis circuits mitjançant una placa perf. Així que prepara’t i fes un temps cada setmana per millorar-te amb els microcontroladors.
Comencem ara amb una introducció senzilla sobre els microcontroladors PIC i algunes configuracions de programari per fer-nos funcionar al nostre proper tutorial. Consulteu el vídeo al final per instal·lar i configurar MPLABX, XC8, Proteus i una ràpida unboxing del programador PICkit 3.
Arquitectura i aplicacions del microcontrolador PIC:
El microcontrolador PIC va ser introduït per Microchip Technologies l'any 1993. Originalment, aquests PIC van ser desenvolupats per formar part dels ordinadors PDP (Processador de dades programats) i cada dispositiu perifèric de l'ordinador es va connectar mitjançant aquest microcontrolador PIC. Per tant, el PIC rep el seu nom pel que fa a Peripheral Interface Controller. Posteriorment, Microchip ha desenvolupat una gran quantitat d'IC de la sèrie PIC que es poden utilitzar per a qualsevol aplicació petita, com ara una aplicació d'il·luminació, fins a la versió avançada.
Tots els microcontroladors s’han de construir al voltant d’alguna arquitectura, el tipus d’arquitectura més famós és l’arquitectura de Harvard, el nostre PIC es basa en aquesta arquitectura ja que pertany a la clàssica família 8051. Entrem en una petita introducció sobre l' arquitectura Harvard del PIC.
El microcontrolador PIC16F877A està format per una CPU incorporada, ports d'E / S, organització de memòria, convertidor A / D, temporitzadors / comptadors, interrupcions, comunicació sèrie, oscil·lador i mòdul CCP que, per reunir, converteixen l'IC en un potent microcontrolador per a principiants. A continuació es mostra el diagrama de blocs general de l’arquitectura PIC

CPU (unitat central de processament):
El microcontrolador té una CPU per realitzar operacions aritmètiques, decisions lògiques i operacions relacionades amb la memòria. La CPU ha de coordinar-se entre la memòria RAM i els altres perifèrics del microcontrolador.
Consisteix en una ALU (Arithmetic Logic Unit), mitjançant la qual realitza les operacions aritmètiques i les decisions lògiques. També hi ha una MU (unitat de memòria) per emmagatzemar les instruccions després que s’executin. Aquest MU decideix la mida del programa del nostre MC. També consta d’una CU (Unitat de Control) que actua com a bus de comunicació entre la CPU i altres perifèrics del microcontrolador. Això ajuda a obtenir les dades després que es processin als registres especificats.
Memòria d'accés aleatori (RAM):
Una memòria d'accés aleatori és la que decideix la velocitat del nostre microcontrolador. La memòria RAM consta de bancs de registre que contenen una tasca específica. En general, es poden classificar en dos tipus:
- Registre d'ús general (GPR)
- Registre de funcions especials (SFR)
Com el seu nom indica, el GPR s'utilitza per a funcions de registre generals com sumar, restar, etc. Aquestes operacions estan limitades a 8 bits. Tots els registres del GPR es poden escriure i llegir. No tenen cap funció per si sola tret que estigui especificat pel programari.
Mentre que l' SFR s'utilitza per realitzar funcions especials complicades que també comporten una manipulació de 16 bits, els seus registres només es poden llegir (R) i no els podem escriure (W) res. Per tant, aquests registres tenen funcions predefinides a realitzar, que s’estableixen en el moment de la fabricació i que només ens mostren el resultat, mitjançant el qual podem realitzar algunes operacions relacionades.

Memòria de només lectura (ROM):
La memòria de només lectura és el lloc on s’emmagatzema el nostre programa. Això decideix la mida màxima del nostre programa; per tant, també s'anomena memòria de programa. Quan la MCU està en funcionament, el programa emmagatzemat a la ROM s'executa segons cada cicle d'instruccions. Aquesta unitat de memòria només es pot utilitzar mentre es programa el PIC, durant l'execució es converteix en una memòria de només lectura.
Memòria de només lectura programable esborrable elèctricament (EEPROM):
EEPROM és un altre tipus d’unitat de memòria. En aquesta unitat de memòria es poden emmagatzemar valors durant l'execució del programa. Els valors emmagatzemats aquí només es poden esborrar elèctricament, és a dir, aquests valors es conservaran al PIC fins i tot quan l’IC estigui apagat. Es poden utilitzar com a espai de memòria petit per emmagatzemar els valors executats; no obstant això, l'espai de memòria serà molt menor per torns de KB.
Memòria Flash :
La memòria Flash també és memòria de només lectura programable (PROM) en la qual podem llegir, escriure i esborrar el programa milers de vegades. Generalment, el microcontrolador PIC utilitza aquest tipus de ROM.
Ports d'E / S
- El nostre PIC16F877A consta de cinc ports: el port A, el port B, el port C, el port D i el port E.
- De tots els cinc PORTS, només el port A és de 16 bits i el port E és de 3 bits. La resta de PORTS són de 8 bits.
- Els pins d’aquests PORTS es poden utilitzar com a entrada o sortida, segons la configuració del registre TRIS.
- A més de realitzar operacions d'E / S, els pins també es poden utilitzar per a funcions especials com SPI, Interrupt, PWM, etc.
Autobús:
El terme Bus és només un munt de cables que connecten el dispositiu d’entrada o sortida amb CPU i RAM.
El bus de dades s’utilitza per transferir o rebre les dades.
El bus d’adreces s’utilitza per transmetre l’adreça de memòria des dels perifèrics a la CPU. Els pins d'E / S s'utilitzen per connectar els perifèrics externs; Els protocols de comunicació sèrie UART i USART s’utilitzen per a la interfície de dispositius serials com GSM, GPS, Bluetooth, IR, etc.

Selecció de microcontrolador PIC per als nostres tutorials:
Els microcontroladors PIC de Microchip Company es divideixen en 4 famílies nombroses. Cada família té una varietat de components que proporcionen funcions especials integrades:
- La primera família, PIC10 (10FXXX), s’anomena Low End.
- La segona família, PIC12 (PIC12FXXX), s’anomena gamma mitjana.
- La tercera família és PIC16 (16FXXX).
- La quarta família és PIC 17/18 (18FXXX)
Com que comencem a aprendre sobre PIC, seleccionem un CI que s'utilitzi i estigui disponible universalment. Aquest CI pertany a la família 16F; el número de peça del CI és PIC16F877A. Des del primer tutorial fins al final, farem servir el mateix CI ja que aquest IC està equipat amb totes les funcions avançades com SPI, I2C i UART, etc. progresseu a través de cada tutorial i, finalment, utilitzeu totes les funcions esmentades.
Un cop seleccionat l’IC, és molt important llegir el full de dades de l’IC. Aquest hauria de ser el primer pas en qualsevol concepte que estem a punt de provar. Ara, ja que hem seleccionat aquest PIC16F877A, permet llegir l'especificació d'aquest IC al full de dades.
La funció perifèrica menciona que té 3 temporitzadors, dos dels quals són de 8 bits i un de precalificador de 16 bits. Aquests temporitzadors s’utilitzen per crear funcions de sincronització al nostre programa. També es poden utilitzar com a comptadors. També mostra que té opcions CCP (Comparar captures i PWM), cosa que ens ajuda a generar senyals PWM i llegir els senyals de freqüència entrants. Per a la comunicació amb un dispositiu extern, disposa de SPI, I2C, PSP i USART. Per motius de seguretat, està equipat amb Brown-out Reset (BOR), que ajuda a restablir el programa while.
Les funcions analògiques, indiquen que l’IC té un ADC de 10 bits de 8 canals. Això significa que el nostre CI pot convertir valors analògics a digitals amb una resolució de 10 bits i té 8 pins analògics per llegir-los. També tenim dos comparadors interns que es poden utilitzar per comparar la tensió d’entrada directament sense llegir-los realment a través del programari.
Les funcions especials del microcontrolador signifiquen que té un cicle d’esborrat / escriptura de 100.000, cosa que significa que el podeu programar unes 100.000 vegades. In-Circuit Serial Programming ™ (ICSP ™) ens ajuda a programar el CI directament mitjançant PICKIT3. La depuració es pot fer mitjançant la depuració en circuit (ICD). Una altra característica de seguretat és el temporitzador de vigilància (WDT), que és un temporitzador autofiable que restableix tot el programa si cal.
La imatge següent representa els pinouts del nostre IC PIC16F877A. Aquesta imatge representa cada pin en relació amb el seu nom i les seves altres característiques. També es pot trobar al full de dades. Mantingueu aquesta imatge a mà perquè ens ajudarà durant les nostres obres de maquinari.

Selecció de programari per als nostres tutorials:
El microcontrolador PIC es pot programar amb diferents programes disponibles al mercat. Hi ha gent que encara utilitza el llenguatge Assembly per programar MCU PIC. Per als nostres tutorials hem seleccionat el programari i el compilador més avançats que han estat desenvolupats pel propi Microchip.
Per programar el microcontrolador PIC necessitarem un IDE (Integrated Development Environment), on es realitzi la programació. Un compilador, on el nostre programa es converteix en un format llegible per MCU anomenat fitxers HEX. Un IPE (entorn de programació integrat), que s’utilitza per bolcar el fitxer hexadecimal als nostres MCU PIC.
IDE: MPLABX v3.35
IPE: MPLAB IPE v3.35
Compilador: XC8
Microchip ha donat tots aquests tres programes de forma gratuïta. Es poden descarregar directament des de la seva pàgina oficial. També he proporcionat l'enllaç per a la vostra comoditat. Un cop descarregats, instal·leu-los al vostre ordinador. Si teniu algun problema per fer-ho, podeu veure el vídeo donat al final.
Amb finalitats de simulació, hem utilitzat un programari anomenat PROTEUS 8, subministrat per Labcenter. Aquest programari es pot utilitzar per simular el nostre codi generat mitjançant MPLABX. Hi ha un programari de demostració gratuït que es pot descarregar des de la seva pàgina oficial a través de l’enllaç.
Preparació per al maquinari:
Tots els nostres tutorials acabaran amb maquinari. Per aprendre PIC de la millor manera possible, sempre es recomana provar els nostres codis i circuits a través de maquinari, perquè la fiabilitat de la simulació és molt menor. És possible que els codis que funcionin amb un programari de simulació no funcionin com esperàveu al vostre maquinari. Per tant, construirem els nostres propis circuits en una placa Perf per deixar els nostres codis.
Per bolcar o penjar el nostre codi a PIC, necessitarem PICkit 3. El programador / depurador PICkit 3 és un depurador senzill de baix cost en circuit que està controlat per un PC que executa el programari MPLAB IDE (v8.20 o superior) a una plataforma Windows. El programador / depurador PICkit 3 és una part integral del conjunt d’eines de l’enginyer de desenvolupament. A més d’això, també necessitarem un altre maquinari com ara la placa Perf, estació de soldadura, circuits integrats PIC, oscil·ladors Crystal, condensadors, etc. Però els afegirem a la nostra llista a mesura que avancem en els nostres tutorials.
Vaig portar el meu PICkit 3 des d’Amazon, el vídeo de la mateixa caixa es pot trobar al següent vídeo. També es proporciona l'enllaç per a PICKIT3; el preu pot ser una mica elevat, però confieu en mi, val la pena invertir-hi.

