kategória: Mikrovezérlő áramkörök
Megtekintések száma: 23111
Megjegyzések a cikkhez: 0

PIC mikrovezérlők kezdőknek

 

A modern piacon számos család és mikrokontroller sorozat található, különféle gyártókból, köztük az AVR, az STM32 és a PIC. Mindegyik család megtalálta a saját hatókörét. Ebben a cikkben a kezdőknek elmondom a PIC mikrovezérlőkről, nevezetesen arról, hogy mi ez és mit kell tudni az induláshoz.

PIC mikrovezérlők kezdőknek

Mi a PIC?

A PIC a Microchip Technology Inc. (USA) által gyártott mikrokontrollerek sorozatának neve. A PIC név a perifériás interfészvezérlőtől származik.

A PIC mikrovezérlők RISC architektúrával rendelkeznek. A RISC egy rövidített utasításkészlet, amelyet a mobil eszközök processzoraiban is használnak. Számos példa van annak alkalmazására: ARM, Atmel AVR és mások.

2016-ban a Microchip megvásárolta az Atmel-t, az AVR vezérlők gyártóját. Ezért a hivatalos weboldal bemutatja a család mikrovezérlőit, valamint a PIC-t és az AVR-t.

PIC16F1xxx mikrovezérlő

család

A 8 bites PIC mikrokontrollerek közül 3 családból áll, amelyek architektúrájukban különböznek (bitmélység és utasításkészlet).

  • Alapvonal (PIC10F2xx, PIC12F5xx, PIC16F5x, PIC16F5xx);

  • Középkategória (PIC10F3xx, PIC12F6xx, PIC12F7xx, PIC16F6xx, PIC16F7xx, PIC16F8xx, PIC16F9xx);

  • Továbbfejlesztett középkategória (PIC12F1xxx, PIC16F1xxx);

  • Csúcskategória vagy PIC18 (18Fxxxx, 18FxxJxx és 18FxxKxx).

A mikrokontrollercsaládok összehasonlítása

A jellemzőket az alábbi táblázat tartalmazza.

PIC mikrovezérlő jellemzői

A 8 bites mikrokontrollerek mellett a Microchip 16 bites termékeket is előállít:

  • PIC24F;

  • DsPIC30 / 33F a jelfeldolgozáshoz.

A 16 bites család képviselői 16–100 MIPS sebességgel működnek (másodpercenként millió millió utasítás befejeződött). Érdemes megjegyezni, és jellemzői:

  • gépi ciklus - 2 ciklus;

  • ADC felbontás - 16 bit;

  • támogatja számos kommunikációs protokollt (UART, IrDA, SPI, I2S ™, I2C, USB, CAN, LIN és SENT), PWM és így tovább.

Van egy 32 bites mikrokontroller család is - PIC32MX, a főbb jellemzők:

  • legfeljebb 120 MHz frekvencián működnek;

  • Végezzen 150 MIPS-t

  • ADC: 10 bites, 1 msps (kvantálási sebesség), legfeljebb 48 csatorna.



Milyen PIC-vel kezdje?

A kezdőknek el kell kezdeniük a PIC mikrovezérlők elsajátítását egy 8 bites vonaltól. A gyártó általában azt állítja, hogy az egész család egyik jellemzője a programok könnyű hordozhatósága egyik családból a másikba, és számos modell elindítása.

Az amatőr rádiókörnyezet egyik legnépszerűbb mikrovezérlője a PIC16f628A. Műszaki jellemzői a következők:

  • Van egy beépített óragenerátor. Beállíthatja a 4 vagy 8 MHz frekvencia működését;

  • 18 érintkező, ebből 16 - bemeneti / kimeneti és 2 - teljesítmény;

  • A 20 MHz-ig terjedő frekvencián történő működéshez kvarc rezonátort csatlakoztathat, de ebben az esetben nem 16, hanem 14 láb marad a bemenet / kimenet számára;

  • A jelölésben F betű van, ami azt jelenti, hogy 2048 szó kapacitású FLASH memóriát használunk;

  • 14 bites utasítások, 35 darab;

  • 2 komparátor;

  • 4 analóg bemenet;

  • A PORTB bemeneteken felugró ellenállások vannak;

  • Két 8 bites időzítő és egy 16 bites;

  • Gépciklus - 4 ciklus kvarc rezonátor vagy belső oszcillátor);

  • 224 bájt RAM;

  • 128 bájt EEPROM;

  • USART - soros port;

  • belső feszültség referencia;

  • 3,3–5 V feszültséggel

Népszerűségének oka az alacsony ár és a belső generátorról történő órakészítés képessége.

Melyik 16f628 pinout látható az alábbiakban:

Pinout 16f628-on

A mikrokontroller blokk belső áramkörét az alábbiakban mutatjuk be.

Mikrovezérlő felépítése 16f628

Mire kell elsősorban figyelni a rendszerben?

Ennek a mikrovezérlőnek két portja van: PORTA és PORTB. Mindegyik tüske bemenetként és kimenetként használható, valamint perifériák csatlakoztatásához vagy egyéb mikrovezérlő modulok aktiválásához.

Vegyük alaposabban a rendszer ezt a részét.

MK portok

Például az RB0-RB3 portok - analógként is működhetnek. Ha szükséges, egy óraforrás csatlakoztatható a RA6, RA7 (kvarc rezonátor). A mikrovezérlő kimeneteit bemeneti / kimeneti módban konfigurálják a TRIS regiszter segítségével.

Vannak parancsok erre a típusra:

TRISA = 0; // Az A port összes csapja kimenetként van beállítva
TRISB = 0xff; // A B port összes csapja bemenetként van rendelve
TRISA0 = 1; // Tehát külön tűt rendelnek bemenetként (1) vagy kimenetként (0)
TRISA5 = 1// itt az A port 5. kimenete bemenetként van rendelve

Általában véve, az üzemmódok, a WDT (watchdog timer) beépítése, a mikrovezérlő óraforrásának kiválasztása és így tovább, speciális nyilvántartások - SFR, és a memória és az adatok GFR-ben vannak tárolva - egyszerű szavakkal ez statikus RAM.

A hivatalos adatlapon, a 18-21. Oldalakon 4 memóriabank található az SFR speciális célú nyilvántartásokra és az általános célú GFR regiszterekre. Fontos a nyilvántartások ismerete, ezért nyomtassa ki és tanulja meg a megjelölt oldalakat adatlap.

Az egyszerűség kedvéért ezeket a táblázatokat az alábbi képek formájában mutatjuk be (a regiszterek számozása, akárcsak a digitális elektronikában, 0-tól kezdődik, tehát a negyedik szám 3).

Különleges célú nyilvántartások
Különleges célú nyilvántartások
Különleges célú nyilvántartások
Különleges célú nyilvántartások

Hogyan lehet csatlakozni és milyen nyelven programozni?

A mikrovezérlő futtatásához elegendő plusz hozzáadása a Vdd-hez és mínusz a Vss-hez. Ha szüksége van kvarc rezonátorra, akkor csatlakoztatva van a PIC16f628 mikrokontroller 16. és 15. érintkezőjéhez (OSC1 és OSC2), nagyobb vagy kisebb számú tűvel rendelkező többi vezérlőhöz - nézd meg az adatlapot. Ezt a pontot azonban meg kell jelölni a programozás és a firmware során.

A pinout hordozhatóságáról és véletlenszerűségéről - a 16f84A-on - hasonló, és sok másnak is.

Kvarc rezonátor csatlakoztatása

Egy áramkör töredéke egy külső rezonátorral, amely a pic16f628a-hoz van csatlakoztatva:

Áramköri fragmentum a pic16f628a-hoz csatlakoztatott külső rezonátorral

Két fő nyelv létezik a PIC mikrovezérlők programozásához - az összeszerelő és a C, vannak más nyelvek, például a PICBasic stb. Még kiemelheti a JAL (csak egy másik nyelv) egyszerűsített programozási nyelvét.

Az alábbiakban például található egy „LED-es villogás” program - ez egyfajta „Hello World” a PIC mikrokontrolleréhez C-ben.

Példa egy PIC mikrovezérlő programra a C-ben

Az 1. sorban a PIC mikrovezérlő könyvtár csatlakozik, majd a késleltetés program könyvtár csatlakozik.

A fő (érvénytelen) funkcióban a kezdeti paramétereket az elején állítják be, ugyanúgy, mint a Void setup () függvényben - az arduinóról szóló cikkekben. Ezután a 11-16 sorban egy végtelen (1) hurkot deklarálnak, amelynek során a „LED villog” programot végrehajtják.

A példában a port állapota folyamatosan fordított, azaz ha "0" -on volt, akkor "1" -re megy, és fordítva. A PIC esetén a C a következő parancskezelési parancsok vannak:

PORTA = 0; // alacsony szintre fordítja az A port összes csapját (0. log)
PORTB = 0xff; // a B port összes csapját magas szintre fordítja (1. log)
RB5 = 1; // A B port ötödik csapja magas

Ugyanez a program néz ki így, de már a JAL nyelven fordítottam oroszra a JALedit (fejlesztési környezet) beépített példák fejlesztõinek kommentárjait.

JAL program minta

Nagyon kísértés választani a JAL-t, és ez számodra könnyebbnek tűnik. Természetesen bármilyen projektet végrehajthat rajta, de szakember számára az előnye szempontjából ez egy haszontalan nyelv. Jelentősen nagyobb eredményeket érhet el, ha tanulmányozza a szintaxist és a programozás alapelveit C-ben (a jelenleg népszerű nyelvek többsége C-szerű) vagy az Assemblerben - ez egy alacsony szintű nyelv, amely meg fogja érteni az eszköz elvét és azt, hogy mi történik a programban egy adott időpontban.


Hogyan kell dolgozni

Ha azt mondja, hogy elég általános, hogy dolgozzon bármilyen szükséges mikrovezérlővel:

1. Szövegszerkesztő.

2. A fordító.

3. A firmware letöltésére szolgáló program a mikrovezérlőre.

És még olvastam a régi tankönyveket is, ahol a szerző, a DOS alatt dolgozott, kódot írt, összeállította és különféle eszközökkel villogta. Most, az összes népszerű operációs rendszerben, vannak fejlesztési környezetek, mind magasan specializálódott (egy adott mikrokontroller családhoz vagy egy gyártó családjától), mind univerzális (vagy tartalmazzák a szükséges eszközöket, vagy plug-inekként vannak csatlakoztatva).

Például egy cikk-sorozatban az Arduino-ról az Arduino IDE-re néztünk, benne írtuk a kódot, és annak segítségével „beöntöttük” a firmware-t a “kőbe”. A PIC mikrovezérlők számára vannak olyan programok, mint:

  • MPASM - fejlesztéshez használják a Microchipből származó összeszerelő nyelvben;

  • Az MPLAB egyben a Microchip IDE a PIC vezérlőkhöz. Számos blokkból áll, amelyek tesztelésére, ellenőrzésére, a kóddal való munkára és a programok összeállítására, valamint a mikrokontrollerre történő letöltésre szolgálnak. Van egy MPLAB X IDE verzió is - kiváló funkcionalitással és a NetBeans platformon alapul.;

  • A MikroC egy univerzális környezet (nem csak a PIK-k számára) a fejlesztéshez. Ahogy a neve is sugallja, a C programozáshoz „élesítve” van, és vannak olyan programok, mint a MikroBasic és a MikroPascal a megfelelő nyelvekre.;

  • JALedit - alkalmas a JAL nyelvre, amelyet már említettünk;

  • És számos más kevésbé ismert.

MPLAB IDE

Hogyan kell villanni egy mikrovezérlőt?

Számos programozó létezik a PIC mikrotörlőkhöz. Hivatalosan figyelembe vett PICkit. A 4 változat. De villoghat és univerzális lehet, például a TL866 (szinte mindent támogat, amelyre egy kezdő rádióamatőrnek szüksége lehet, bár nagyon olcsó).

Programozók PIC mikrotankolókhoz

A hálózaton számos különféle programozó áramkör létezik a PIC-k számára, mind a COM porton keresztül történő működéshez:

Programozó áramkör

Tehát USB-n keresztül (valójában kom, csak az IC MAX232 konverterén keresztül).

Programozó áramkör

következtetés

A PIC16 mikrovezérlők egyszerű projektekhez, például egyszerű automatizáláshoz, voltmérőkhöz, hőmérőkhöz és más apró dolgokhoz alkalmazhatók. De ez nem azt jelenti, hogy nem végezhet komplex és nagy projekteket ezen a családon, példát adtam arra, hogy miért használják őket leggyakrabban. Általános ötletként néhány videót ajánlom nézni:

Az egyik cikkben értelmetlen a mikrokontrollerek programozásával kapcsolatos témákat megfontolni, függetlenül attól, hogy melyik családba tartozik. Mivel ez nagyon nagy mennyiségű információ.

Lásd még az bgv.electricianexp.com oldalon:

  • Az AVR mikrovezérlők típusai és elrendezése
  • Mikrovezérlő programozás kezdőknek
  • Mik a mikrovezérlők - cél, eszköz, szoftver?
  • Programozható mikrovezérlők JavaScript-ben: melyiket választani, jellemzők ...
  • Az Arduino I / O portok olvasásának és kezelésének módszerei

  •