Categories: Circuits de microcontroladors
Nombre de visualitzacions: 23111
Comentaris sobre l'article: 0
Microcontroladors PIC per a principiants
Al mercat modern hi ha diverses famílies i una sèrie de microcontroladors de diferents fabricants, entre els quals es poden distingir AVR, STM32 i PIC. Cadascuna de les famílies ha trobat el seu propi abast. En aquest article explicaré als principiants sobre els microcontroladors PIC, és a dir, què és i què cal saber per començar amb ells.

Què és un PIC
PIC és el nom d'una sèrie de microcontroladors fabricats per Microchip Technology Inc (EUA). El nom PIC prové del controlador d'interfície perifèric.
Els microcontroladors PIC tenen una arquitectura RISC. RISC: un conjunt d’instruccions abreujat, també s’utilitza en processadors per a dispositius mòbils. Hi ha diversos exemples d'ús: BRAÇA, Atmel AVR i d’altres.
El 2016, Microchip va comprar Atmel, un fabricant de controladors AVR. Per tant, el lloc web oficial presenta microcontroladors de la família i PIC i AVR.

Famílies
Entre els microcontroladors PIC de 8 bits, consta de 3 famílies que difereixen en l’arquitectura (profunditat de bit i conjunt d’instruccions).
-
Línia base (PIC10F2xx, PIC12F5xx, PIC16F5x, PIC16F5xx);
-
Gamma mitjana (PIC10F3xx, PIC12F6xx, PIC12F7xx, PIC16F6xx, PIC16F7xx, PIC16F8xx, PIC16F9xx);
-
Gamma mitjana millorada (PIC12F1xxx, PIC16F1xxx);
-
De gamma alta o PIC18 (18Fxxxx, 18FxxJxx i 18FxxKxx).

Les característiques es mostren a la taula següent.

A més dels microcontroladors de 8 bits, Microchip produeix 16 bits:
-
PIC24F;
-
DsPIC30 / 33F per al processament de senyal.
Els representants de la família de 16 bits operen a velocitats de 16 a 100 MIPS (milions d’instruccions per segon completades). Convé tenir en compte les característiques:
-
cicle de la màquina - 2 cicles;
-
Resolució ADC: 16 bits;
-
suporta diversos protocols de comunicació (UART, IrDA, SPI, I2S ™, I2C, USB, CAN, LIN i SENT), PWM i molt més.
També hi ha una família de microcontroladors de 32 bits - PIC32MX, les principals característiques:
-
opera amb una freqüència de fins a 120 MHz;
-
Realitza fins a 150 MIPS
-
ADC: 10 bits, 1 msps (velocitat de quantització), fins a 48 canals.
Amb quin PIC començar?
Els principiants han de començar a dominar els microcontroladors PIC a partir d'una línia de 8 bits. En general, el fabricant afirma que la característica de tota la família és la fàcil portabilitat de programes d'una família a una altra i la definició de diversos models.
Un dels microcontroladors més populars de l’entorn de ràdio aficionats és PIC16f628A. Les seves característiques tècniques són les següents:
-
Hi ha un generador de rellotge integrat. Podeu afinar a treballar amb una freqüència de 4 o 8 MHz;
-
18 pins, dels quals 16 - entrada / sortida i 2 - potència;
-
Per funcionar a freqüències de fins a 20 MHz, podeu connectar un ressonador de quars, però en aquest cas no en queden 16, sinó 14 potes per a l'entrada / sortida;
-
Hi ha una lletra F en la marca, que significa que s'utilitza memòria FLASH amb una capacitat de 2048 paraules;
-
Instruccions de 14 bits, 35 peces;
-
2 comparadors;
-
4 entrades analògiques;
-
Les entrades PORTB tenen resistències de tracció;
-
Dos temporitzadors de 8 bits i un de 16 bits;
-
Cicle de màquines: 4 cicles d’un ressonador de quars o oscil·lador intern);
-
224 bytes de RAM;
-
128 bytes d'EEPROM;
-
USART - port sèrie;
-
referència de tensió interna;
-
alimentat de 3,3 a 5 V.
Les raons de la seva popularitat són el baix preu i la capacitat de rellotge d’un generador intern.
A continuació, es mostra la peça del 16f628:

A continuació, es mostra el circuit intern de bloc d’aquest microcontrolador.

En què he de prestar atenció en aquest pla?
Aquest microcontrolador té dos ports PORTA i PORTB. Cada pin, cadascun d'ells es pot utilitzar com a entrada i sortida, així com per connectar perifèrics o activar altres mòduls de microcontroladors.
Considereu aquesta part de l’esquema amb detall.

Per exemple, els ports RB0-RB3: poden actuar com a analògics. Si cal, una font de rellotge està connectada a RA6, RA7 (ressonador de quars) Les sortides del propi microcontrolador es configuren en el mode d'entrada / sortida mitjançant el registre TRIS.
Hi ha ordres per a aquest tipus:
TRISA = 0; // Tots els pins del port A es defineixen com a sortides
TRISB = 0xff; // Tots els pins del port B s’assignen com a entrades
TRISA0 = 1; // Així doncs, s’assigna un pin separat com a entrada (1) o sortida (0)
TRISA5 = 1; // aquí s’assigna la 5a sortida del port A com a entrada
En general, els modes operatius, la inclusió d’un WDT (temporitzador de vigilància), l’elecció de l’origen del rellotge del microcontrolador i així successivament es configuren mitjançant registres de propòsits especials (SFR), i la memòria i les dades s’emmagatzemen en GFR - en paraules senzilles, es tracta d’una memòria RAM estàtica.
A la fitxa oficial, a les pàgines 18-21 trobareu 4 bancs de memòria per a registres de propòsits especials SFR i registres de propòsit general GFR. El coneixement dels registres és important, de manera que imprimiu i aprengueu les pàgines indicades Fitxa de dades.
Per comoditat, aquestes taules es presenten en forma d’imatges a continuació (la numeració dels registres, com tot en l’electrònica digital, comença a partir del 0, de manera que el quart número és el 3).




Com connectar i en quin idioma programar?
Per executar aquest microcontrolador, n’hi ha prou amb aplicar més a Vdd i menys a Vss. Si necessiteu un ressonador de quars, llavors esteu connectat als pins 16 i 15 (OSC1 i OSC2) del microcontrolador PIC16f628, per a altres controladors amb un nombre de pins més gran o menor. busqueu el full de dades. Però s’ha d’indicar aquest punt durant la programació i el firmware.
Parlant de portabilitat i coincidència de la pinça (el dia 16f84A), és similar i en moltes altres.

Un fragment d'un circuit amb un ressonador extern connectat al pic16f628a:

Hi ha dos llenguatges principals per programar microcontroladors PIC: assemblador i C, n’hi ha d’altres, per exemple PICBasic, etc. Encara podeu ressaltar el llenguatge de programació simplificat JAL (només un altre llenguatge).
Per exemple, a continuació, es mostra un programa per a "parpelleig LED": una mena de "Hello World" per al microcontrolador PIC de C.

A la línia 1, es connecta la biblioteca de microcontroladors PIC i, després, es connecta la biblioteca de programes de retard.
A la funció principal (void), els paràmetres inicials s’estableixen al principi, tal com vam fer a la funció de configuració de Void () - en articles sobre arduino. A continuació, a les línies 11-16 es declara un bucle infinit mentre (1), durant el qual s’executa el programa “parpelleig LED”.
A l’exemple, l’estat del port s’inverteix constantment, és a dir. si fos a "0", passarà a "1" i viceversa. A C per PIC hi ha les ordres de gestió de comandes següents:
PORTA = 0; // tradueix tots els pins del port A a un nivell baix (log. 0)
PORTB = 0xff; // tradueix tots els pins del port B a un nivell alt (log. 1)
RB5 = 1; // El cinquè punt del port B és alt
I sembla el mateix programa, però ja en l’idioma JAL, vaig traduir en rus comentaris dels desenvolupadors d’exemples integrats a JALedit (entorn de desenvolupament).

Hi ha una temptació de triar JAL, i us pot semblar més fàcil. Per descomptat, podeu implementar qualsevol projecte, però des del punt de vista del vostre benefici com a especialista, és un idioma inútil. Obtindràs resultats significativament més grans estudiant la sintaxi i els principis de la programació en C (la majoria dels llenguatges actualment populars s’assemblen a C) o a Assembler: es tracta d’un llenguatge de baix nivell que et farà entendre el principi del dispositiu i què passa al programa en un moment donat.
Com treballar
Si dius força generalitzat per treballar amb qualsevol microcontrolador, necessiteu:
1. Editor de text.
2. El compilador.
3. El programa per descarregar el firmware al microcontrolador.
Fins i tot vaig llegir llibres de text antics, on l’autor, que treballava des de DOS, va escriure codi, el va recopilar i fullejar amb diversos mitjans. Ara, per a tots els sistemes operatius més populars, hi ha entorns de desenvolupament, tant especialitzats (per a una família específica de microcontroladors o famílies d’un fabricant) com universals (o bé contenen totes les eines necessàries o es connecten com a plug-in).
Per exemple, en una sèrie d’articles sobre Arduino, vam examinar l’entorn Arduino IDE, en el qual vam escriure codi i amb la seva ajuda “va abocar” el firmware a “pedra”. Per als microcontroladors PIC hi ha programes com:
-
MPASM: s'utilitza per al desenvolupament en llenguatge Assembler des de Microchip;
-
MPLAB també és l'IP Microchip ID per controladors PIC. Consta de molts blocs per provar, comprovar, treballar amb codi i recopilar programes i descarregar-los al microcontrolador. També hi ha una versió de MPLAB X IDE: té una gran funcionalitat i està construït sobre la base de la plataforma NetBeans;
-
MikroC és un entorn universal (no només per PIKs) per al desenvolupament. Com el seu nom indica, s'accentua la programació C, i també hi ha programes com MikroBasic i MikroPascal per als idiomes corresponents;
-
JALedit: adequat per al llenguatge JAL que hem esmentat anteriorment;
-
I altres altres menys coneguts.

Com parpellejar un microcontrolador?
Hi ha diversos programadors per a micronotroladors PIC. Es considera oficialment PICkit. Les seves 4 versions. Però podeu llampar i universal, per exemple, TL866 (és compatible amb gairebé tot el que pugui necessitar un radioamator novell, alhora que és molt barat).

A la xarxa també hi ha diversos circuits de programador per PIC, tots dos per treballar a través del port COM:

De manera que és via USB (de fet, també com, només a través del convertidor de l’IC MAX232).

Conclusió
Els microcontroladors PIC16 són adequats per a projectes senzills, com ara automatització simple, voltímetres, termòmetres i altres coses petites. Però això no vol dir que no pugueu fer projectes complexos i grans amb aquesta família, vaig donar un exemple de per què s’utilitzen més sovint. Per tenir una idea general, us recomano veure uns quants vídeos:
En un article, no té sentit plantejar-se temes sobre com programar microcontroladors, sense importar-ne la família. Ja que es tracta d’una quantitat molt gran d’informació.
Consulteu també a electro-ca.tomathouse.com
: