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.

PIC mikrokontroleri za početnike

Š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.

Mikrokontroler PIC16F1xxx

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).

Usporedba obitelji mikrokontrolera

Karakteristike su dane u donjoj tablici.

Značajke mikrokontrolera PIC

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:

Pinout u 16f628

Blok unutarnjeg kruga ovog mikrokontrolera prikazan je dolje.

Struktura mikrokontrolera 16f628

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.

MK portovi

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).

Registri posebne namjene
Registri posebne namjene
Registri posebne namjene
Registri posebne namjene

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.

Spajanje kvarcnog rezonatora

Ulomak kruga s vanjskim rezonatorom povezanim na pic16f628a:

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.

Primjer programa PIC mikrokontrolera na C-u

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).

Uzorak JAL programa

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.

MPLAB IDE

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).

Programeri za PIC Micronotrollers

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

Krug programera

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

Krug programera

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:

  • Vrste i raspored AVR mikrokontrolera
  • Programiranje mikrokontrolera za početnike
  • Što su mikrokontroleri - svrha, uređaj, softver
  • Programirajući mikrokontroleri u JavaScript: koji odabrati, karakteristike ...
  • Metode za čitanje i upravljanje Arduino I / O portovima

  •