Kategorijos: Mikrovaldiklio grandinės
Peržiūrų skaičius: 23111
Straipsnio komentarai: 0

PIC mikrovaldikliai pradedantiesiems

 

Šiuolaikinėje rinkoje yra daugybė šeimų ir įvairių gamintojų mikrovaldiklių, iš jų galima išskirti AVR, STM32 ir PIC. Kiekviena šeima rado savo taikymo sritį. Šiame straipsnyje pradedantiesiems papasakosiu apie PIC mikrovaldiklius, būtent, kas tai yra ir ką reikia žinoti norint pradėti nuo jų.

PIC mikrovaldikliai pradedantiesiems

Kas yra IPS?

PIC yra mikrokontrolerių, pagamintų „Microchip Technology Inc“ (JAV), serijos pavadinimas. PIC vardas kilęs iš periferinės sąsajos valdiklio.

IPS mikrovaldikliai turi RISC architektūrą. RISC - sutrumpintas instrukcijų rinkinys, taip pat naudojamas mobiliųjų įrenginių procesoriuose. Yra keletas jo naudojimo pavyzdžių: ARM, „Atmel AVR“ ir kiti.

2016 metais „Microchip“ nusipirko AVR valdiklių gamintoją „Atmel“. Todėl oficialioje svetainėje pateikiami šeimos mikrovaldikliai ir PIC bei AVR.

Mikrovaldiklis PIC16F1xxx

Šeimos

Tarp 8 bitų PIC mikrovaldiklių jį sudaro 3 šeimos, kurios skiriasi architektūra (bitų gylis ir instrukcijų rinkinys).

  • Pradinė vertė (PIC10F2xx, PIC12F5xx, PIC16F5x, PIC16F5xx);

  • Vidutinės klasės (PIC10F3xx, PIC12F6xx, PIC12F7xx, PIC16F6xx, PIC16F7xx, PIC16F8xx, PIC16F9xx);

  • Patobulinta vidutinio nuotolio įranga (PIC12F1xxx, PIC16F1xxx);

  • „High-end“ arba „PIC18“ (18Fxxxx, 18FxxJxx ir 18FxxKxx).

Mikrovaldiklių šeimų palyginimas

Charakteristikos pateiktos žemiau esančioje lentelėje.

PIC mikrovaldiklio savybės

Be 8 bitų mikrovaldiklių, „Microchip“ gamina 16 bitų:

  • PIC24F;

  • DsPIC30 / 33F signalo apdorojimui.

16 bitų šeimos atstovai veikia nuo 16 iki 100 MIPS greičiu (įvykdoma milijonai instrukcijų per sekundę). Verta paminėti ir savybes:

  • mašinos ciklas - 2 ciklai;

  • ADC skiriamoji geba - 16 bitų;

  • palaiko daugybę ryšių protokolų (UART, IrDA, SPI, I2S ™, I2C, USB, CAN, LIN ir SENT), PWM ir dar daugiau.

Taip pat yra 32 bitų mikrovaldiklių šeima - PIC32MX, pagrindinės savybės:

  • veikti dažniu iki 120 MHz;

  • Atlikite iki 150 MIPS

  • ADC: 10 bitų, 1 msps (kiekybinis greitis), iki 48 kanalų.



Nuo ko PIC pradėti?

Pradedantieji turėtų pradėti valdyti PIC mikrovaldiklius nuo 8 bitų linijos. Apskritai, gamintojas teigia, kad visos šeimos bruožas yra lengvas programų perkeliamumas iš vienos šeimos į kitą ir daugelio modelių pakabinimas.

Vienas iš populiariausių mikrovaldiklių mėgėjų radijo aplinkoje yra PIC16f628A. Jos techninės charakteristikos yra šios:

  • Yra įmontuotas laikrodžių generatorius. Galite nusiteikti dirbti su 4 arba 8 MHz dažniu;

  • 18 kaiščių, iš kurių 16 - įvestis / išėjimas ir 2 - galia;

  • Norėdami veikti dažniais iki 20 MHz, galite prijungti kvarco rezonatorių, tačiau tokiu atveju įėjimui / išėjimui liko ne 16, o 14 kojų;

  • Žymėjime yra raidė F, tai reiškia, kad naudojama FLASH atmintis, kurios talpa yra 2048 žodžiai;

  • 14 bitų instrukcijos, 35 dalys;

  • 2 komparatoriai;

  • 4 analoginiai įėjimai;

  • PORTB įėjimuose yra traukiamieji rezistoriai;

  • Du 8 bitų laikmačiai ir vienas 16 bitų;

  • Mašinų ciklas - 4 kvarco rezonatoriaus ar vidinio generatoriaus ciklai);

  • 224 baitai RAM;

  • 128 baitai EEPROM;

  • USART - nuoseklusis prievadas;

  • vidinė įtampa;

  • maitinamas nuo 3,3 iki 5 V.

Jo populiarumo priežastys yra maža kaina ir galimybė paleisti laikrodį iš vidinio generatoriaus.

Kuris 16f628 iškyša parodytas žemiau:

Pinoutas 16f628

Šio mikrovaldiklio bloko vidinė schema parodyta žemiau.

Mikrovaldiklio struktūra 16f628

Į ką pirmiausia turėčiau atkreipti dėmesį į schemą?

Šis mikrovaldiklis turi du prievadus PORTA ir PORTB. Kiekvienas kaištis, kiekvienas iš jų gali būti naudojamas kaip įvestis ir išvestis, taip pat prijungti periferinius įrenginius arba suaktyvinti kitus mikrovaldiklio modulius.

Apsvarstykite šią schemos dalį plačiai.

MK uostai

Pavyzdžiui, prievadai RB0-RB3 - gali veikti kaip analoginiai. Jei reikia, laikrodžio šaltinis prijungiamas prie RA6, RA7 (kvarco rezonatorius) Patys mikrovaldiklio išėjimai yra sukonfigūruoti įvesties / išvesties režime naudojant TRIS registrą.

Yra šio tipo komandos:

TRISA = 0; // Visi A prievado kaiščiai yra nustatyti kaip išėjimai
TRISB = 0xff; // Visi B prievado kaiščiai priskiriami kaip įėjimai
TRISA0 = 1; // Taigi atskiras kaištis yra priskirtas kaip įėjimas (1) arba išėjimas (0)
TRISA5 = 1// čia 5 įėjimas A prievadui priskiriamas kaip įėjimas

Paprastai darbo režimai, WDT (budėjimo laikmačio) įtraukimas, mikrovaldiklio laikrodžio šaltinio pasirinkimas ir pan. Yra sukonfigūruoti naudojant specialios paskirties registrus - SFR, o atmintis ir duomenys saugomi GFR - paprastais žodžiais tariant, tai yra statinė RAM.

Oficialiame duomenų lapuose 18–21 puslapiuose rasite 4 atminties bankus, skirtus specialios paskirties registrams SFR ir bendrosios paskirties registrus GFR. Registrų žinios yra svarbios, todėl atsispausdinkite ir išmokite nurodytus puslapius iš Duomenų lapas.

Patogumui šios lentelės pateikiamos žemiau pateiktų paveikslėlių pavidalu (registrų numeracija, kaip ir viskas skaitmeninėje elektronikoje, prasideda nuo 0, taigi ketvirtasis skaičius yra 3).

Specialiosios paskirties registrai
Specialiosios paskirties registrai
Specialiosios paskirties registrai
Specialiosios paskirties registrai

Kaip prisijungti ir kokia kalba programuoti?

Norint paleisti šį mikrovaldiklį, pakanka pritaikyti pliusą Vdd ir minusą Vss. Jei jums reikia kvarco rezonatoriaus, tada jis yra prijungtas prie PIC16f628 mikrovaldiklio 16 ir 15 kaiščių (OSC1 ir OSC2), kitiems valdikliams su didesniu ar mažesniu kaiščių skaičiumi - ieškoti duomenų lape. Bet šis punktas turi būti nurodytas programavimo ir programinės įrangos metu.

Kalbant apie perkeliamumą ir sutapimą, susijusį su vaizdu - „16f84A“, jis yra panašus, kaip ir daugelis kitų.

Kvarco rezonatoriaus prijungimas

Grandinės fragmentas su išoriniu rezonatoriumi, prijungtu prie pic16f628a:

Grandinės fragmentas su išoriniu rezonatoriumi, prijungtu prie pic16f628a

Yra dvi pagrindinės PIC mikrovaldiklių programavimo kalbos - montuotojas ir C, yra ir kitos, pavyzdžiui, PICBasic ir kt. Jūs vis dar galite paryškinti supaprastintą programavimo kalbą JAL (tik kita kalba).

Pavyzdžiui, žemiau yra programa „LED mirksi“ - savotiškas „Hello World“, skirtas PIC mikrovaldikliui C.

PIC mikrovaldiklio programos pavyzdys C

1 eilutėje prijungiama PIC mikrovaldiklio biblioteka, tada prijungiama delsos programos biblioteka.

Pagrindinėje (negaliojančioje) funkcijoje pradiniai parametrai nustatomi pradžioje, kaip tai darėme atlikdami funkciją „Void setup“ (). straipsniuose apie arduino. Tada 11-16 eilutėse deklaruojama begalinė (1) kilpa, kurios metu vykdoma programa „LED mirksi“.

Pavyzdyje uosto būsena nuolat apverčiama, t. jei jis buvo ties „0“, tada eis į „1“ ir atvirkščiai. „C for PIC“ yra šios komandų valdymo komandos:

PORTA = 0; // perkelia visus A prievado kaiščius į žemą lygį (log. 0)
PORTB = 0xff; // paverčia visus B prievado kaiščius aukštu lygiu (1 log.)
RB5 = 1; // Penktasis uosto B kaištis yra aukštas

Ir atrodo, kad ta pati programa, bet jau JAL kalba išvertiau į rusų kalbą JALedit (kūrimo aplinka) įmontuotų pavyzdžių kūrėjų komentarus į rusų kalbą.

JAL programos pavyzdys

Yra pagunda pasirinkti JAL, ir jums gali pasirodyti lengviau. Žinoma, jūs galite įgyvendinti bet kokius projektus, tačiau, kalbant apie naudą jums, kaip specialistui, tai nenaudinga kalba. Žymiai didesnių rezultatų pasieksite studijuodami sintaksę ir programavimo principus C (dauguma šiuo metu populiarių C kalbą primenančių kalbų) arba „Assembler“ yra žemo lygio kalba, kuri leis suprasti, kaip įrenginys veikia ir kas vyksta programoje bet kuriuo metu.


Kaip dirbti

Jei sakote, kad gana apibendrintas darbas su bet kokiais jums reikalingais mikrovaldikliais:

1. Teksto rengyklė.

2. Sudarytojas.

3. Programinės įrangos atsisiuntimo į mikrovaldiklį programa.

Aš netgi skaičiau senus vadovėlius, kur autorius, dirbdamas iš DOS, rašė kodą, jį komponuodavo ir naudodavo įvairiomis priemonėmis. Dabar visose populiariose operacinėse sistemose yra tobulinimo aplinka, tiek labai specializuota (skirta konkrečiai mikrovaldiklių šeimai ar vieno gamintojo šeimoms), tiek universali (joje yra visi reikalingi įrankiai, arba jie yra prijungti kaip papildiniai).

Pavyzdžiui, straipsnių serijoje apie Arduino mes pažvelgėme į Arduino IDE, jame mes parašėme kodą ir su jo pagalba „pilame“ programinę-aparatinę įrangą į „akmenį“. PIC mikrovaldikliams yra tokios programos:

  • MPASM - naudojamas „Microchip“ plėtrai montuotojo kalba;

  • MPLAB taip pat yra PIC valdiklių „Microchip IDE“. Jį sudaro daugybė bandymų, tikrinimo, darbo su kodu ir programų sudarymo bei atsisiuntimo į mikrovaldiklį blokų. Taip pat yra MPLAB X IDE versija - ji pasižymi puikiu funkcionalumu ir yra sukurta remiantis „NetBeans“ platforma;

  • „MikroC“ yra universali aplinka (ne tik PIK) plėtrai. Kaip rodo pavadinimas, jis „padidinamas“ C programavimui, taip pat yra programų, tokių kaip „MikroBasic“ ir „MikroPascal“ atitinkamoms kalboms.;

  • JALedit - tinka JAL kalbai, kurią minėjome aukščiau;

  • Ir nemažai kitų mažiau žinomų.

MPLAB IDE

Kaip mirksėti mikrovaldikliui?

Yra daugybė PIC mikrotraukiklių programuotojų. Oficialiai laikomas PICkit. Jų 4 versijos. Bet jūs galite mirksėti ir universaliai, pavyzdžiui, TL866 (jis palaiko beveik viską, ko gali prireikti pradedančiajam radijo mėgėjui, nors jis yra labai pigus).

Programuotojai PIC mikrotraukliams

Taip pat tinkle yra daugybė skirtingų programuotojų schemų, skirtų PIC, tiek darbui per COM prievadą:

Programuotojo grandinė

Taigi tai yra per USB (iš tikrųjų, taip pat ir com, tik per IC MAX232 keitiklį).

Programuotojo grandinė

Išvada

PIC16 mikrovaldikliai yra tinkami paprastiems projektams, tokiems kaip paprasta automatika, voltmetrai, termometrai ir kiti maži dalykai. Bet tai nereiškia, kad šioje šeimoje negalima daryti sudėtingų ir didelių projektų, aš pateikiau pavyzdį, kodėl jie dažniausiai naudojami. Bendrai idėjai rekomenduoju pažiūrėti kelis vaizdo įrašus:

Viename straipsnyje beprasmiška nagrinėti temas, kaip programuoti mikrovaldiklius, nesvarbu, kuri šeima. Kadangi tai labai didelis informacijos kiekis.

Taip pat žiūrėkite tinklalapyje i.electricianexp.com:

  • AVR mikrovaldiklių tipai ir išdėstymas
  • Mikrovaldiklio programavimas pradedantiesiems
  • Kas yra mikrovaldikliai - paskirtis, prietaisas, programinė įranga
  • Programuojami mikrovaldikliai „JavaScript“: kurį pasirinkti, charakteristikos ...
  • Arduino I / O prievadų skaitymo ir valdymo metodai

  •