Kategorie: Obvody mikrokontrolérů
Počet zobrazení: 23111
Komentáře k článku: 0

Mikrokontroléry PIC pro začátečníky

 

Na moderním trhu existuje řada rodin a řada mikrokontrolérů od různých výrobců, mezi nimi lze rozlišit AVR, STM32 a PIC. Každá z rodin si našla svůj vlastní rozsah. V tomto článku řeknu začátečníkům o mikrokontrolérech PIC, konkrétně o tom, co to je a co potřebujete vědět, abyste s nimi mohli začít.

Mikrokontroléry PIC pro začátečníky

Co je to PIC

PIC je název řady mikrokontrolérů vyráběných společností Microchip Technology Inc (USA). Název PIC pochází z řadiče periferních rozhraní.

Mikrokontroléry PIC mají architekturu RISC. RISC - zkrácená sada instrukcí, se také používá v procesorech pro mobilní zařízení. Existuje několik příkladů jeho použití: ARM, Atmel AVR a další.

V roce 2016 Microchip koupil výrobce regulátorů AVR společnosti Atmel. Oficiální web proto představuje mikrokontroléry rodiny a PIC a AVR.

Mikrokontrolér PIC16F1xxx

Rodiny

Mezi 8bitovými mikrokontroléry PIC se skládá ze 3 rodin, které se liší architekturou (bitová hloubka a sada instrukcí).

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

  • Střední rozsah (PIC10F3xx, PIC12F6xx, PIC12F7xx, PIC16F6xx, PIC16F7xx, PIC16F8xx, PIC16F9xx);

  • Vylepšený střední rozsah (PIC12F1xxx, PIC16F1xxx);

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

Porovnání rodiny mikrokontrolérů

Charakteristiky jsou uvedeny v následující tabulce.

Funkce mikrokontroléru PIC

Kromě 8-bitových mikrokontrolérů, Microchip produkuje 16-bitové:

  • PIC24F;

  • DsPIC30 / 33F pro zpracování signálu.

Zástupci 16bitové rodiny pracují při rychlostech od 16 do 100 MIPS (dokončeny miliony instrukcí za sekundu). Stojí za zmínku a funkce:

  • cyklus stroje - 2 cykly;

  • Rozlišení ADC - 16 bitů;

  • podporuje řadu komunikačních protokolů (UART, IrDA, SPI, I2S ™, I2C, USB, CAN, LIN a SENT), PWM a další.

K dispozici je také rodina 32 bitových mikrokontrolérů - PIC32MX, hlavní vlastnosti:

  • pracují na frekvenci až 120 MHz;

  • Proveďte až 150 MIPS

  • ADC: 10-bit, 1 Msps (kvantizační rychlost), až 48 kanálů.



S čím PIC začít?

Začátečníci by měli začít ovládat mikrokontroléry PIC z 8bitové linky. Výrobce obecně tvrdí, že rysem celé rodiny je snadná přenositelnost programů z jedné rodiny do druhé a pinout řady modelů.

Jedním z nejpopulárnějších mikrokontrolérů v amatérském rádiovém prostředí je PIC16f628A. Jeho technické vlastnosti jsou následující:

  • K dispozici je vestavěný generátor hodin. Můžete naladit práci s frekvencí 4 nebo 8 MHz;

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

  • Chcete-li pracovat na frekvencích až 20 MHz, můžete připojit křemenný rezonátor, ale v tomto případě zbývá 16, ale 14 noh pro vstup / výstup;

  • V označení je písmeno F, což znamená, že se používá paměť FLASH s kapacitou 2048 slov;

  • 14bitové pokyny, 35 kusů;

  • 2 komparátory;

  • 4 analogové vstupy;

  • Vstupy PORTB mají pull-up rezistory;

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

  • Strojový cyklus - 4 cykly křemenného rezonátoru nebo interního oscilátoru);

  • 224 bajtů RAM;

  • 128 bajtů EEPROM;

  • USART - sériový port;

  • vnitřní referenční napětí;

  • napájeno 3,3 až 5 V.

Důvody jeho popularity jsou nízká cena a schopnost hodin od interního generátoru.

Který vývod 16f628 je uveden níže:

Pinout v 16f628

Blokové vnitřní obvody tohoto mikrokontroléru jsou uvedeny níže.

Struktura mikrokontroléru 16f628

Na co bych měl v tomto schématu dávat pozor?

Tento mikrokontrolér má dva porty PORTA a PORTB. Každý pin, každý z nich, může být použit jako vstup a výstup, stejně jako pro připojení periferií nebo použití jiných modulů mikrokontroléru.

Zvažte tuto část schématu do detailu.

Porty MK

Například porty RB0-RB3 - mohou fungovat jako analogové. V případě potřeby je k hodinám RA6, RA7 připojen zdroj hodin (křemenný rezonátor) Výstupy mikrokontroléru jsou konfigurovány ve vstupním / výstupním režimu pomocí registru TRIS.

Pro tento typ existují příkazy:

TRISA = 0; // Všechny piny portu A jsou nastaveny jako výstupy
TRISB = 0xff; // Všechny piny portu B jsou přiřazeny jako vstupy
TRISA0 = 1; // Jako vstup (1) nebo výstup (0) je tedy přiřazen samostatný pin.
TRISA5 = 1// zde je pátý výstup portu A přiřazen jako vstup

Obecně jsou provozní režimy, zahrnutí WDT (watchdog timer), výběr zdroje hodin mikrokontroléru atd. Konfigurovány pomocí speciálních registrů - SFR a paměť a data jsou ukládány v GFR - jednoduše řečeno, jedná se o statickou RAM.

V oficiálním datovém listu najdete na stranách 18–21 4 paměťové banky pro registry zvláštních účelů SFR a registry obecných účelů GFR. Znalost registrů je důležitá, proto si vytiskněte a naučte se uvedené stránky Datasheet.

Pro větší přehlednost jsou tyto tabulky uvedeny ve formě obrázků níže (číslování registrů, stejně jako všechno v digitální elektronice, začíná od 0, takže čtvrté číslo je 3).

Registry zvláštního určení
Registry zvláštního určení
Registry zvláštního určení
Registry zvláštního určení

Jak se připojit a v jakém jazyce programovat?

Pro spuštění tohoto mikrokontroléru stačí použít plus na Vdd a mínus na Vss. Pokud potřebujete křemenný rezonátor, je připojen k pinům 16 a 15 (OSC1 a OSC2) mikrokontroléru PIC16f628, pro ostatní ovladače s větším nebo menším počtem pinů - podívejte se do datového listu. Tento bod však musí být uveden během programování a firmwaru.

Když už mluvíme o přenositelnosti a shodě pinu - na 16f84A - je to podobné a na mnoha dalších.

Připojení křemenného rezonátoru

Fragment obvodu s externím rezonátorem připojeným k pic16f628a:

Fragment obvodu s externím rezonátorem připojeným k pic16f628a

Pro programování mikrokontrolérů PIC existují dva hlavní jazyky - assembler a C, existují i ​​jiné, například PICBasic atd. Stále můžete zvýraznit zjednodušený programovací jazyk JAL (jen další jazyk).

Například níže je program pro „blikající LED“ - druh „Hello World“ pro mikrokontrolér PIC v C.

Příklad programu mikrokontroléru PIC v jazyce C

V řádku 1 je připojena knihovna mikrokontrolérů PIC, poté je připojena knihovna programů zpoždění.

V hlavní (void) funkci jsou počáteční parametry nastaveny na začátku, stejně jako ve funkci Void setup () - v článcích o arduino. Poté je v řádcích 11-16 deklarována nekonečná smyčka while (1), během níž je spuštěn program „LED bliká“.

V příkladu je stav portu neustále invertován, tj. pokud to bylo na "0", pak to půjde na "1" a naopak. V C pro PIC jsou následující příkazy pro správu příkazů:

PORTA = 0; // převede všechny kolíky portu A na nízkou úroveň (log. 0)
PORTB = 0xff; // převede všechny kolíky portu B na vysokou úroveň (log. 1)
RB5 = 1; // Pátý kolík portu B je vysoký

A stejný program vypadá takto, ale již v jazyce JAL jsem přeložil do ruštiny komentáře od vývojářů vestavěných příkladů v JALeditu (vývojové prostředí).

Ukázkový program JAL

Je zde pokušení vybrat JAL, a může se vám to zdát jednodušší. Můžete samozřejmě realizovat jakékoli projekty, ale z pohledu výhod pro vás jako specialistu je to zbytečný jazyk. Dosažením výrazně větších výsledků dosáhnete studiem syntaxe a principů programování v jazyce C (většina aktuálně populárních jazyků typu C) nebo Assembler je jazyk na nízké úrovni, díky kterému porozumíte tomu, jak zařízení pracuje a co se v programu děje v daném okamžiku.


Jak pracovat

Pokud říkáte, že je zobecněn pro práci s mikrokontroléry, které potřebujete:

1. Textový editor.

2. Kompilátor.

3. Program pro stažení firmwaru do mikrokontroléru.

A dokonce jsem četl staré učebnice, kde autor, pracující pod DOSem, psal kód, kompiloval a blikal jej různými prostředky. Nyní pro všechny populární operační systémy existují vývojová prostředí, jak vysoce specializovaná (pro specifickou rodinu mikrokontrolérů nebo rodin od jednoho výrobce), tak univerzální (buď obsahují všechny potřebné nástroje, nebo jsou připojena jako plug-iny).

Například v řadě článků o Arduinu jsme se podívali na Arduino IDE, v něm jsme napsali kód a jeho pomocí „nalili“ firmware do „kamene“. Pro mikrokontroléry PIC existují takové programy jako:

  • MPASM - používá se pro vývoj v jazyce Assembler z Microchip;

  • MPLAB je také Microchip IDE pro PIC regulátory. Skládá se z mnoha bloků pro testování, kontrolu, práci s kódem a kompilační programy a stahování do mikrokontroléru. K dispozici je také verze MPLAB X IDE - má vynikající funkčnost a je postavena na platformě NetBeans;

  • MikroC je univerzální prostředí (nejen pro PIK) pro vývoj. Jak název napovídá, je „naostřen“ pro programování C a existují také programy jako MikroBasic a MikroPascal pro odpovídající jazyky;

  • JALedit - vhodné pro jazyk JAL, který jsme zmínili výše;

  • A řada dalších méně známých.

MPLAB IDE

Jak flash mikrokontrolér?

Existuje řada programátorů pro mikroprocesory PIC. Oficiálně považováno za PICkit. Jejich 4 verze. Můžete však flashovat a univerzálně, například, TL866 (podporuje téměř vše, co může začínající radioamatér potřebovat, zatímco je to velmi levné).

Programátory pro mikroprocesory PIC

V síti existuje také řada různých obvodů programátorů pro PIC, oba pro práci přes port COM:

Obvod programátoru

Jedná se tedy o USB (ve skutečnosti také com, pouze přes převodník na IC MAX232).

Obvod programátoru

Závěr

Mikrokontroléry PIC16 jsou vhodné pro jednoduché projekty, jako je jednoduchá automatizace, voltmetry, teploměry a další drobné věci. To však neznamená, že v této rodině nemůžete dělat složité a velké projekty, uvedl jsem příklad, proč se nejčastěji používají. Pro obecný nápad doporučujeme sledovat několik videí:

V jednom článku je zbytečné uvažovat o tématech, jak programovat mikrokontroléry, bez ohledu na to, která rodina. Protože se jedná o velmi velké množství informací.

Viz také na i.electricianexp.com:

  • Druhy a uspořádání mikrokontrolérů AVR
  • Programování mikrokontrolérů pro začátečníky
  • Co jsou mikrokontroléry - účel, zařízení, software
  • Programovatelné mikrokontroléry v JavaScriptu: který zvolit, vlastnosti ...
  • Metody čtení a správy vstupních / výstupních portů Arduino

  •