kategorije: Sklopovi mikrokontrolera
Broj pregledavanja: 23111
Komentari na članak: 0
PIC mikrokontroleri za početnike
Na suvremenom tržištu postoji niz obitelji i niz mikrokontrolera različitih proizvođača, među kojima se mogu izdvojiti AVR, STM32 i PIC. Svaka od obitelji našla je svoj domet. U ovom ću članku reći početnicima o PIC mikrokontrolerima, naime, što je to i što trebate znati da biste započeli s njima.

Što je PIC
PIC naziv je serije mikrokontrolera proizvođača Microchip Technology Inc (SAD). Naziv PIC dolazi od perifernog sučelja kontrolera.
PIC mikrokontroleri imaju RISC arhitekturu. RISC - skraćeni skup uputa, koristi se i u procesorima za mobilne uređaje. Postoji nekoliko primjera njegove uporabe: ARM, Atmel AVR i drugi.
Microchip je 2016. kupio Atmel, proizvođača AVR kontrolera. Stoga službena web stranica predstavlja mikrokontrolere obitelji i PIC i AVR.

obitelj
Među 8-bitnim PIC mikrokontrolerima sastoji se od 3 obitelji koje se razlikuju u arhitekturi (dubina bita i skup upute).
-
Osnovna linija (PIC10F2xx, PIC12F5xx, PIC16F5x, PIC16F5xx);
-
Srednji raspon (PIC10F3xx, PIC12F6xx, PIC12F7xx, PIC16F6xx, PIC16F7xx, PIC16F8xx, PIC16F9xx);
-
Poboljšani srednji raspon (PIC12F1xxx, PIC16F1xxx);
-
High-end ili PIC18 (18Fxxxx, 18FxxJxx i 18FxxKxx).

Karakteristike su dane u donjoj tablici.

Pored 8-bitnih mikrokontrolera, Microchip proizvodi 16-bitne:
-
PIC24F;
-
DsPIC30 / 33F za obradu signala.
Predstavnici 16-bitne obitelji djeluju brzinom od 16 do 100 MIPS (ispunjeno je milijune uputa u sekundi). Vrijedi napomenuti i značajke:
-
strojni ciklus - 2 ciklusa;
-
ADC rezolucija - 16 bita;
-
podržavaju brojne komunikacijske protokole (UART, IrDA, SPI, I2S ™, I2C, USB, CAN, LIN i SENT), PWM i još mnogo toga.
Tu je i 32-bitna mikrokontrolera - PIC32MX, glavne značajke:
-
rade na frekvenciji do 120 MHz;
-
Izvedite do 150 MIPS
-
ADC: 10-bitni, 1 Msps (brzina kvantizacije), do 48 kanala.
Koji PIC za početak?
Početnici bi trebali započeti svladavanje PIC mikrokontrolera iz 8-bitne linije. Općenito, proizvođač tvrdi da je značajka cijele obitelji jednostavnost prenošenja programa iz jedne obitelji u drugu i skupljanje više modela.
Jedan od najpopularnijih mikrokontrolera u amaterskom radijskom okruženju je PIC16f628A. Njegove tehničke karakteristike su sljedeće:
-
Postoji ugrađeni satni generator. Možete se prilagoditi radu s frekvencijom od 4 ili 8 MHz;
-
18 pinova, od kojih 16 - ulaz / izlaz, a 2 - snaga;
-
Za rad na frekvencijama do 20 MHz možete spojiti kvarčni rezonator, ali u ovom slučaju nije preostalo 16, nego 14 nogu za ulaz / izlaz;
-
Na oznaci je slovo F, što znači da se koristi FLASH-memorija kapaciteta 2048 riječi;
-
14-bitne upute, 35 komada;
-
2 komparatora;
-
4 analogna ulaza;
-
PORTB ulazi imaju podizače otpornike;
-
Dva 8-bitna tajmera i jedan 16-bitni;
-
Strojni ciklus - 4 ciklusa kvarcnog rezonatora ili unutarnjeg oscilatora);
-
224 bajta RAM-a;
-
128 bajtova EEPROM-a;
-
USART - serijski port;
-
unutarnja referenca napona;
-
napaja se od 3,3 do 5 V.
Razlozi njegove popularnosti su niska cijena i mogućnost takta s unutarnjeg generatora.
Koji je ispis 16f628 prikazan u nastavku:

Blok unutarnjeg kruga ovog mikrokontrolera prikazan je dolje.

Na što prvo moram obratiti pozornost u shemi?
Ovaj mikrokontroler ima dva ulaza PORTA i PORTB. Svaki pin, svaki se može koristiti kao ulaz i izlaz, kao i za povezivanje perifernih uređaja ili aktiviranje drugih modula mikrokontrolera.
Razmotrite ovaj dio sheme s velikim detaljima.

Na primjer, portovi RB0-RB3 - mogu djelovati kao analogni. Ako je potrebno, izvor sata povezan je s RA6, RA7 (kvarcni rezonator). Izlazi samih mikrokontrolera konfiguriraju se u načinu ulaza / izlaza koristeći TRIS registar.
Postoje naredbe za ovu vrstu:
TRISA = 0; // Sve igle priključka A postavljaju se kao izlazi
TRISB = 0xff; // Svi pinovi B nalaze se kao ulazi
TRISA0 = 1; // Dakle, zasebni pin je dodijeljen kao ulaz (1) ili izlaz (0)
TRISA5 = 1; // ovdje je 5. izlaz porta A dodijeljen kao ulaz
Općenito, načini rada, uključivanje WDT-a (čuvara vremena), izbor takta izvora mikrokontrolera i tako dalje konfigurirani su pomoću posebnih namjena - SFR, a memorija i podaci pohranjeni su u GFR - jednostavnim riječima, to je statički RAM.
U službenom listu podataka na stranicama 18-21 pronaći ćete 4 memorijske banke za posebne namjene registara SFR i registar opće namjene GFR. Poznavanje registara je važno, zato ispisujte i učite navedene stranice list.
Radi praktičnosti, ove su tablice predstavljene u obliku slika u nastavku (numeriranje registara, kao i sve u digitalnoj elektronici, počinje od 0, pa je četvrti broj 3).




Kako se povezati i na kojem jeziku programirati?
Za pokretanje ovog mikrokontrolera dovoljno je primijeniti plus na Vdd i minus na Vss. Ako vam je potreban kvarcni rezonator, tada je povezan na pinove 16 i 15 (OSC1 i OSC2) mikrokontrolera PIC16f628, za ostale kontrolere s većim ili manjim brojem igle - pogledati u listu podataka, Ali ta se točka mora navesti tijekom programiranja i firmware-a.
Kada govorimo o prenosivosti i podudarnosti pinova - na 16f84A - slično je, i na mnogim drugima.

Ulomak kruga s vanjskim rezonatorom povezanim na pic16f628a:

Postoje dva glavna jezika za programiranje PIC mikrokontrolera - asembler i C, postoje i drugi, na primjer PICBasic itd. I dalje možete istaknuti pojednostavljeni programski jezik JAL (samo drugi jezik).
Na primjer, u nastavku je program za "LED treperi" - vrsta "Hello World" za PIC mikrokontroler u C.

U prvom redu je povezana biblioteka PIC mikrokontrolera, zatim knjižnica programa kašnjenja.
U glavnoj (void) funkciji na početku se postavljaju početni parametri, baš kao što smo to radili u funkciji Void setup () - u člancima o arduinu, Zatim se u retcima 11-16 deklarira beskonačna petka (1) tijekom koje se izvršava program "treptanje LED-a".
U primjeru se stanje luka neprestano invertira, tj. ako je bio na "0", tada će prijeći na "1" i obrnuto. U C za PIC postoje sljedeće naredbe za upravljanje naredbama:
PORTA = 0; // prevodi sve igle priključka A na nisku razinu (zapis 0)
PORTB = 0xff; // prevodi sve igle priključka B na visoku razinu (zapis 1)
RB5 = 1; // Peti pin luka B je visok
I izgleda kao da je isti program, ali već na JAL jeziku preveo sam na ruski komentar komentare programera ugrađenih primjera u JALeditu (razvojno okruženje).

Postoji iskušenje odabrati JAL, a može vam se činiti lakšim. Naravno, na njemu možete realizirati bilo koje projekte, ali s gledišta koristi za vas kao stručnjaka to je beskoristan jezik. Ostvarićete značajno veće rezultate proučavanjem sintakse i principa programiranja na C-u (većina trenutno popularnih jezika je C-slična) ili u Assembler-u - ovo je jezik niske razine koji će razumjeti princip uređaja i što se u programu događa u bilo kojem trenutku.
Kako raditi
Ako kažete prilično generalizirani za rad s bilo kojim mikrokontrolerima koji vam trebaju:
1. Uređivač teksta.
2. sastavljač.
3. Program za preuzimanje firmvera na mikrokontroler.
I čak sam čitao stare udžbenike, gdje je autor, radeći iz DOS-a, pisao kod, sastavljao i flambirao ga raznim sredstvima. Sada za sve popularne operativne sustave postoje razvojna okruženja, usko specijalizirana (za određenu obitelj mikrokontrolera ili obitelji jednog proizvođača) i univerzalna (ili sadrže sve potrebne alate ili su povezana kao dodaci).
Primjerice, u nizu članaka o Arduinu istražili smo Arduino IDE okruženje, u njemu smo napisali kod i uz njegovu pomoć „izlili“ firmware u „kamen“. Za PIC mikrokontrolere postoje takvi programi kao što su:
-
MPASM - koristi se za razvoj Microsoftovog jezika u Assembleru;
-
MPLAB je i Microchip IDE za PIC kontrolere. Sastoji se od mnogo blokova za testiranje, provjeru, rad s kodom i sastavljanje programa te preuzimanje na mikrokontroler. Postoji i verzija MPLAB X IDE - odlikuje se izvrsnom funkcionalnošću i izgrađena je na temelju NetBeans platforme;
-
MikroC je univerzalno okruženje (ne samo za PIK-ove) za razvoj. Kao što naziv govori, "izoštren" je za C programiranje, a tu su i programi poput MikroBasic i MikroPascal za odgovarajuće jezike;
-
JALedit - pogodan za jezik JAL koji smo gore spomenuli;
-
I niz drugih manje poznatih.

Kako treptati mikrokontroler?
Postoji veliki broj programera za PIC mikronotrolere. Službeno se smatra PICkit. Njihove 4 verzije. No možete Flash i univerzalni, na primjer, TL866 (podržava gotovo sve što će početniku radioamaterima možda trebati, a uz to je vrlo jeftino).

Također na mreži postoji nekoliko različitih programatorskih krugova za PIC-ove, oba za rad kroz COM port:

Dakle, putem USB-a (u stvari, također, samo putem pretvarača na IC MAX232).

zaključak
Mikrokontroleri PIC16 pogodni su za jednostavne projekte, poput jednostavne automatizacije, voltmetra, termometra i drugih sitnica. Ali to ne znači da u ovoj obitelji ne možete raditi složene i velike projekte, dao sam primjer zašto se oni najčešće koriste. Za opću ideju, preporučujem gledanje nekoliko videozapisa:
U jednom je članku besmisleno razmatrati teme o programiranju mikrokontrolera, bez obzira na obitelj. Budući da je riječ o vrlo velikoj količini informacija.
Pogledajte također na elektrohomepro.com
: