kategória: Obvody mikrokontrolérov
Počet zobrazení: 23111
Komentáre k článku: 0

Mikrokontroléry PIC pre začiatočníkov

 

Na modernom trhu existuje množstvo rodín a rad mikrokontrolérov od rôznych výrobcov, medzi ktorými je možné rozlíšiť AVR, STM32 a PIC. Každá z rodín si našla svoj vlastný rozsah. V tomto článku poviem začiatočníkom o mikrokontroléroch PIC, konkrétne o tom, čo to je a čo potrebujete vedieť, aby ste s nimi mohli začať.

Mikrokontroléry PIC pre začiatočníkov

Čo je to PIC

PIC je názov série mikrokontrolérov vyrábaných spoločnosťou Microchip Technology Inc (USA). Názov PIC pochádza z radiča periférnych rozhraní.

Mikrokontroléry PIC majú architektúru RISC. RISC - skrátený súbor pokynov, sa používa aj v procesoroch pre mobilné zariadenia. Existuje niekoľko príkladov jeho použitia: ARM, Atmel AVR a ďalšie.

V roku 2016 Microchip kúpil výrobcu regulátorov AVR spoločnosti Atmel. Oficiálna webová stránka preto predstavuje mikrokontroléry rodiny a PIC a AVR.

Mikrokontrolér PIC16F1xxx

rodina

Medzi 8-bitovými mikrokontrolérmi PIC sa skladá z 3 rodín, ktoré sa líšia v architektúre (bitová hĺbka a sada inštrukcií).

  • Základná hodnota (PIC10F2xx, PIC12F5xx, PIC16F5x, PIC16F5xx);

  • Stredná hodnota (PIC10F3xx, PIC12F6xx, PIC12F7xx, PIC16F6xx, PIC16F7xx, PIC16F8xx, PIC16F9xx);

  • Vylepšený stredný rozsah (PIC12F1xxx, PIC16F1xxx);

  • High-end alebo PIC18 (18Fxxxx, 18FxxJxx a 18FxxKxx).

Porovnanie rodiny mikrokontrolérov

Charakteristiky sú uvedené v nasledujúcej tabuľke.

Funkcie mikrokontroléra PIC

Okrem 8-bitových mikrokontrolérov vyrába Microchip 16-bitové:

  • PIC24F;

  • DsPIC30 / 33F na spracovanie signálu.

Zástupcovia 16-bitovej rodiny pracujú pri rýchlostiach od 16 do 100 MIPS (dokončené milióny inštrukcií za sekundu). Stojí za zmienku a funkcie:

  • strojový cyklus - 2 cykly;

  • Rozlíšenie ADC - 16 bitov;

  • podporuje množstvo komunikačných protokolov (UART, IrDA, SPI, I2S ™, I2C, USB, CAN, LIN a SENT), PWM a ďalšie.

K dispozícii je tiež rodina 32 bitových mikrokontrolérov - PIC32MX, hlavné vlastnosti:

  • pracujú pri frekvencii až 120 MHz;

  • Vykonajte až 150 MIPS

  • ADC: 10-bit, 1 Msps (rýchlosť kvantovania), až 48 kanálov.



S čím začať PIC?

Začiatočníci by mali začať ovládať mikrokontroléry PIC z 8-bitovej linky. Vo všeobecnosti výrobca tvrdí, že rysom celej rodiny je ľahká prenosnosť programov z jednej rodiny do druhej a vývod viacerých modelov.

Jedným z najpopulárnejších mikrokontrolérov v amatérskom rádiovom prostredí je PIC16f628A. Jeho technické vlastnosti sú tieto:

  • K dispozícii je vstavaný generátor hodín. Môžete naladiť prácu s frekvenciou 4 alebo 8 MHz;

  • 18 pinov, z toho 16 - vstup / výstup a 2 - výkon;

  • Ak chcete pracovať pri frekvenciách do 20 MHz, môžete pripojiť kremenný rezonátor, ale v tomto prípade na vstupe / výstupe nezostáva 16, ale 14 stôp;

  • V označení je písmeno F, čo znamená, že sa používa pamäť FLASH s kapacitou 2048 slov;

  • 14-bitové inštrukcie, 35 kusov;

  • 2 porovnávače;

  • 4 analógové vstupy;

  • Vstupy PORTB majú pull-up rezistory;

  • Dva 8-bitové časovače a jeden 16-bit;

  • Strojový cyklus - 4 cykly kremenného rezonátora alebo vnútorného oscilátora);

  • 224 bajtov RAM;

  • 128 bajtov EEPROM;

  • USART - sériový port;

  • vnútorná referencia napätia;

  • napájané 3,3 až 5 V.

Dôvody jeho popularity sú nízka cena a schopnosť hodiny od interného generátora.

Ktorý pinout 16f628 je uvedený nižšie:

Pinout o 16f628

Blokové interné obvody tohto mikrokontroléra sú uvedené nižšie.

Štruktúra mikrokontroléra 16f628

Čo by som mal v schéme venovať predovšetkým?

Tento mikrokontrolér má dva porty PORTA a PORTB. Každý pin, každý z nich, môže byť použitý ako vstup a výstup, ako aj na pripojenie periférnych zariadení alebo aktiváciu iných modulov mikrokontroléra.

Zoberme si túto časť systému do detailov.

Porty MK

Napríklad porty RB0-RB3 - môžu fungovať ako analógové. V prípade potreby je k hodinám RA6, RA7 pripojený zdroj hodín (kremenný rezonátor). Výstupy samotného mikrokontroléra sú nakonfigurované v režime vstup / výstup pomocou registra TRIS.

Existujú príkazy pre tento typ:

TRISA = 0; // Všetky kolíky portu A sú nastavené ako výstupy
TRISB = 0xff; // Všetky kolíky portu B sú priradené ako vstupy
TRISA0 = 1; // Ako vstup (1) alebo výstup (0) je teda priradený samostatný pin.
TRISA5 = 1// tu je piaty výstup portu A priradený ako vstup

Vo všeobecnosti sú prevádzkové režimy, zahrnutie WDT (watchdog timer), výber zdroja hodín mikrokontroléra atď. Konfigurované pomocou registrov špeciálneho účelu - SFR a pamäť a dáta sú uložené v GFR - jednoduchými slovami, jedná sa o statickú RAM.

Na oficiálnych listoch nájdete na stranách 18 - 21 4 pamäťové banky pre registre SFR pre špeciálne účely a registre GFR pre všeobecné použitie. Znalosť registrov je dôležitá, preto si vytlačte a naučte sa uvedené stránky list.

Kvôli prehľadnosti sú tieto tabuľky prezentované vo forme obrázkov nižšie (číslovanie registrov, rovnako ako všetko v digitálnej elektronike, začína od 0, takže štvrté číslo je 3).

Registre na špeciálne účely
Registre na špeciálne účely
Registre na špeciálne účely
Registre na špeciálne účely

Ako sa pripojiť a v akom jazyku programovať?

Na spustenie tohto mikrokontroléra stačí použiť plus na Vdd a mínus na Vss. Ak potrebujete kremeňový rezonátor, potom je pripojený na piny 16 a 15 (OSC1 a OSC2) mikrokontroléra PIC16f628, pre ostatné ovládače s väčším alebo menším počtom pinov - pozrite sa na technický list, Tento bod však musí byť uvedený počas programovania a firmvéru.

Keď už hovoríme o prenosnosti a zhode pinov - na 16f84A - je to podobné a na mnohých ďalších.

Pripojenie kremenného rezonátora

Fragment obvodu s externým rezonátorom pripojeným k pic16f628a:

Fragment obvodu s externým rezonátorom pripojeným k pic16f628a

Existujú dva hlavné jazyky na programovanie mikrokontrolérov PIC - assembler a C, existujú ďalšie, napríklad PICBasic atď. Stále môžete zvýrazniť zjednodušený programovací jazyk JAL (len iný jazyk).

Nižšie je napríklad program na „blikanie LED“ - akýsi „Hello World“ pre mikrokontrolér PIC v C.

Príklad programu mikrokontroléra PIC v jazyku C

V riadku 1 je pripojená knižnica mikrokontrolérov PIC, potom je pripojená knižnica programov oneskorenia.

V hlavnej funkcii (void) sú počiatočné parametre nastavené na začiatku, rovnako ako vo funkcii Void setup () - v článkoch o arduino, Potom je v riadkoch 11-16 deklarovaná nekonečná slučka (1), počas ktorej je spustený program „blikanie LED“.

V príklade je stav portu neustále invertovaný, t.j. ak to bolo na "0", potom pôjde na "1" a naopak. V C pre PIC sú nasledujúce príkazy na správu príkazov:

PORTA = 0; // prekladá všetky kolíky portu A na nízku úroveň (log. 0)
PORTB = 0xff; // prekladá všetky kolíky portu B na vysokú úroveň (log. 1)
RB5 = 1; Piaty kolík portu B je vysoký

Vyzerá to ako rovnaký program, ale už v jazyku JAL som preložil do ruských komentárov od vývojárov zabudovaných príkladov v JALedit (vývojové prostredie).

Vzorový program JAL

Je tu pokušenie zvoliť JAL a môže sa vám zdať ľahšie. Môžete, samozrejme, realizovať akékoľvek projekty, ale z hľadiska výhod pre vás ako špecialistu je to zbytočný jazyk. Dosiahnutím výrazne väčších výsledkov dosiahnete študovaním syntaxe a princípov programovania v jazyku C (väčšina jazykov, ktoré sú v súčasnosti populárne, sú jazyky typu C) alebo v Assembleru - je to jazyk nízkej úrovne, vďaka ktorému porozumiete princípu zariadenia a tomu, čo sa v danom čase deje v programe.


Ako pracovať

Ak poviete dosť zovšeobecnenú na prácu s mikropočítačmi, ktoré potrebujete:

1. Textový editor.

2. Kompilátor.

3. Program na stiahnutie firmvéru do mikrokontroléra.

A dokonca som čítal staré učebnice, kde autor, pracujúci spred DOSu, písal kód, kompiloval a bleskával ho rôznymi prostriedkami. Teraz, vo všetkých populárnych operačných systémoch, existujú vývojové prostredia, vysoko špecializované (pre špecifickú rodinu mikrokontrolérov alebo rodín od jedného výrobcu) a univerzálne (buď obsahujú všetky potrebné nástroje alebo sú pripojené ako plug-iny).

Napríklad v sérii článkov o Arduine sme sa pozreli na Arduino IDE, v ktorom sme napísali kód a pomocou jeho pomoci „nalial“ firmvér do „kameňa“. Pre mikrokontroléry PIC existujú také programy, ako sú:

  • MPASM - používa sa na vývoj v jazyku Assembler z Microchip;

  • MPLAB je tiež mikročip IDE pre PIC regulátory. Pozostáva z mnohých blokov na testovanie, kontrolu, prácu s kódom a zostavovanie programov a sťahovanie do mikrokontroléra. K dispozícii je aj verzia MPLAB X IDE - má vynikajúcu funkčnosť a je postavená na platforme NetBeans.;

  • MikroC je univerzálne prostredie (nielen pre PIK) pre vývoj. Ako už názov napovedá, je „naostrený“ na programovanie C a existujú aj programy ako MikroBasic a MikroPascal pre zodpovedajúce jazyky.;

  • JALedit - vhodné pre jazyk JAL, ktorý sme spomenuli vyššie;

  • A množstvo ďalších menej známych.

ID MPLAB

Ako bleskovať mikrokontrolér?

Existuje niekoľko programátorov pre mikroprocesory PIC. Oficiálne považovaný za PICkit. Ich 4 verzie. Môžete však blesknúť a univerzálne, napríklad, TL866 (podporuje takmer všetko, čo môže začínajúci rádioamatér potrebovať, aj keď je to veľmi lacné).

Programátory pre mikrotriediče PIC

V sieti existuje aj niekoľko rôznych obvodov programátora pre PIC, oboje pre prácu cez port COM:

Obvod programátora

Ide teda o USB (v skutočnosti tiež com, iba cez prevodník na IC MAX232).

Obvod programátora

záver

Mikrokontroléry PIC16 sú vhodné pre jednoduché projekty, ako je jednoduchá automatizácia, voltmetre, teplomery a iné malé veci. To však neznamená, že nemôžete robiť komplexné a veľké projekty týkajúce sa tejto rodiny, uviedol som príklad, prečo sa tieto projekty najčastejšie používajú. Ak chcete získať všeobecný nápad, odporúčame vám pozrieť si niekoľko videí:

V jednom článku je zbytočné zvažovať témy, ako programovať mikrokontroléry bez ohľadu na to, ktorá rodina. Pretože ide o veľmi veľké množstvo informácií.

Pozri tiež na bgv.electricianexp.com:

  • Druhy a usporiadanie mikrokontrolérov AVR
  • Programovanie mikrokontrolérov pre začiatočníkov
  • Čo sú mikrokontroléry - účel, zariadenie, softvér
  • Programovateľné mikrokontroléry v JavaScripte: ktorý zvoliť, vlastnosti ...
  • Metódy čítania a správy vstupov / výstupov Arduino

  •