luokat: Mikrokontrolleripiirit
Katselukuvien lukumäärä: 23111
Kommentit artikkeliin: 0

PIC-mikro-ohjaimet aloittelijoille

 

Nykyaikaisilla markkinoilla on useita perheitä ja sarja mikrokontrollereita eri valmistajilta, muun muassa AVR, STM32 ja PIC. Jokainen perheistä on löytänyt oman laajuutensa. Tässä artikkelissa kerron aloittelijoille PIC-mikro-ohjaimista, nimittäin siitä, mitä se on ja mitä sinun on tiedettävä aloittaaksesi heidän kanssaan.

PIC-mikro-ohjaimet aloittelijoille

Mikä on PIC

PIC on Microchip Technology Inc: n (USA) valmistaman mikrokontrollerien sarjan nimi. Nimi PIC on peräisin oheisrajapinnan ohjaimesta.

PIC-mikro-ohjaimilla on RISC-arkkitehtuuri. RISC - lyhennetty ohjekokonaisuus, käytetään myös mobiililaitteiden prosessoreissa. Sen käytöstä on olemassa useita esimerkkejä: ARM, Atmel AVR ja muut.

Vuonna 2016 Microchip osti AVR-ohjaimien valmistajan Atmelin. Siksi virallisella verkkosivustolla esitellään perheen mikrokontrollerit sekä PIC ja AVR.

Mikrokontrolleri PIC16F1xxx

perhe

8-bittisistä PIC-mikrokontrollereista se koostuu 3 perheestä, jotka eroavat toisistaan ​​arkkitehtuurinsa (bitinsyvyys ja käskyjoukot) suhteen.

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

  • Keskialue (PIC10F3xx, PIC12F6xx, PIC12F7xx, PIC16F6xx, PIC16F7xx, PIC16F8xx, PIC16F9xx);

  • Parannettu keskialue (PIC12F1xxx, PIC16F1xxx);

  • Huippuluokan tai PIC18 (18Fxxxx, 18FxxJxx ja 18FxxKxx).

Mikrokontrolleriperheiden vertailu

Ominaisuudet on annettu alla olevassa taulukossa.

PIC-mikrokontrollerin ominaisuudet

8-bittisten mikrokontrollerien lisäksi Microchip tuottaa 16-bittisiä:

  • PIC24F;

  • DsPIC30 / 33F signaalinkäsittelyyn.

16-bittisen perheen edustajat toimivat nopeudella 16 - 100 MIPS (miljoonat ohjeet sekunnissa täytetty). On syytä huomata ja ominaisuudet:

  • konesykli - 2 jaksoa;

  • ADC-resoluutio - 16 bittiä;

  • tukee useita tiedonsiirtoprotokollia (UART, IrDA, SPI, I2S ™, I2C, USB, CAN, LIN ja SENT), PWM ja paljon muuta.

Siellä on myös 32-bittisten mikrokontrollerien perhe - PIC32MX, pääpiirteet:

  • toimivat taajuudella jopa 120 MHz;

  • Suorita jopa 150 MIPS

  • ADC: 10-bittinen, 1 msps (kvantisointinopeus), jopa 48 kanavaa.



Mistä PIC: stä aloitetaan?

Aloittelijoiden tulisi aloittaa PIC-mikrokontrollerien hallitseminen 8-bittisestä linjasta. Valmistaja väittää yleensä, että koko perheen piirre on ohjelmien helppo siirrettävyys perheestä toiseen ja useiden mallien näyttäminen.

Yksi amatööriradioympäristön suosituimmista mikrokontrollereista on PIC16f628A. Sen tekniset ominaisuudet ovat seuraavat:

  • Siellä on sisäänrakennettu kellogeneraattori. Voit virittää toimimaan taajuudella 4 tai 8 MHz;

  • 18 nastaa, joista 16 - tulo / lähtö ja 2 - teho;

  • Toimiakseen jopa 20 MHz: n taajuuksilla voit kytkeä kvartsresonaattorin, mutta tässä tapauksessa tuloon / lähtöön ei ole jätetty 16, vaan 14 jalkaa;

  • Merkinnässä on kirjain F, joka tarkoittaa, että käytetään FLASH-muistia, jonka kapasiteetti on 2048 sanaa;

  • 14-bittiset ohjeet, 35 kappaletta;

  • 2 vertailuainetta;

  • 4 analogista tuloa;

  • PORTB-tuloissa on ylösvetovastukset;

  • Kaksi 8-bittistä ajastinta ja yksi 16-bittinen;

  • Konesykli - 4 kvartsikvaasi- tai sisäoskillaattorisykliä);

  • 224 tavua RAM: ta;

  • 128 tavua EEPROMia;

  • USART - sarjaportti;

  • sisäinen jännite;

  • jännite 3,3 - 5 V.

Syy suosionsa syntymiseen on alhainen hinta ja kyky kelloida sisäisestä generaattorista.

Mikä 16f628-nasta näkyy alla:

Näyttely 16f628

Tämän mikrokontrollerin lohkon sisäinen piiri on esitetty alla.

Mikrokontrollerin rakenne 16f628

Mihin minun tulisi ensinnäkin kiinnittää huomiota järjestelmässä?

Tässä mikro-ohjaimessa on kaksi porttia PORTA ja PORTB. Jokaista nastaa, kutakin niistä, voidaan käyttää tuloina ja lähtöinä sekä oheislaitteiden kytkemiseen tai muiden mikro-ohjainmoduulien aktivointiin.

Tarkastele tätä järjestelmän osaa yksityiskohtaisesti.

MK-portit

Esimerkiksi portit RB0-RB3 - voivat toimia analogisina. Tarvittaessa kellolähde kytketään RA6, RA7 (kvartsiresonaattori). Itse mikrokontrollerin lähdöt määritetään tulo- / lähtötilassa TRIS-rekisterin avulla.

Tämän tyyppisiä komentoja on:

TRISA = 0; // Kaikki portin A nastat asetetaan lähtöiksi
TRISB = 0xff; // Kaikille portin B nastoille on määritetty tulot
TRISA0 = 1; // Joten erillinen nasta määritetään tulona (1) tai ulostulona (0)
TRISA5 = 1// tässä portin A viides lähtö määritetään tulona

Yleensä toimintatilat, WDT: n (tarkkailuajastimen) sisällyttäminen, mikrokontrollerin kellolähteen valinta ja niin edelleen määritetään käyttämällä erikoisrekistereitä - SFR, ja muisti ja tiedot tallennetaan GFR: ään - yksinkertaisin sanoin, tämä on staattinen RAM.

Virallisesta tietolomakkeesta, sivuilta 18-21, löydät 4 muistipankkia erityiskäyttöön tarkoitettuihin rekistereihin SFR ja yleiskäyttöön tarkoitettuihin rekistereihin GFR. Rekisterien tuntemus on tärkeää, joten tulosta ja oppi ilmoitetut sivut Datalehdet.

Mukavuussyistä nämä taulukot on esitetty alla olevien kuvien muodossa (rekistereiden numerointi, kuten kaikki digitaalielektroniikassa, alkaa nollasta, joten neljäs luku on 3).

Erityisrekisterit
Erityisrekisterit
Erityisrekisterit
Erityisrekisterit

Kuinka yhdistää ja millä kielellä ohjelmoida?

Tämän mikrokontrollerin suorittamiseen riittää, että levitetään plus Vdd: lle ja miinus Vss: lle. Jos tarvitset kvartsiresonaattoria, se on kytketty PIC16f628-mikrokontrollerin napoihin 16 ja 15 (OSC1 ja OSC2), muille ohjaimille, joissa on suurempi tai pienempi nastat - katso tekninen taulukko. Mutta tämä kohta on ilmoitettava ohjelmoinnin ja laiteohjelmiston aikana.

Puhuminen siirrettävyydestä ja sattumanvaraisuudesta - 16f84A: lla - on samanlainen kuin monissa muissakin.

Kvartsiresonaattorin kytkentä

Katkelma piiristä, jossa ulkoinen resonaattori on kytketty pic16f628a:

Piiri fragmentti, jossa ulkoinen resonaattori on kytketty pic16f628a: hon

PIC-mikrokontrollerien ohjelmoinnissa on kaksi pääkieltä - kokoonpanija ja C, muita kieliä, esimerkiksi PICBasic, jne. Voit silti korostaa yksinkertaistettua ohjelmointikieltä JAL (vain toinen kieli).

Alla on esimerkiksi "LED-vilkkuminen" -ohjelma - eräänlainen "Hello World" PIC-mikrokontrollerille C: ssä.

Esimerkki PIC-mikrokontrolleriohjelmasta C: ssä

Rivillä 1 PIC-mikrokontrollerikirjasto on kytketty, sitten viiveohjelmakirjasto on kytketty.

Päätoiminnossa (tyhjä) alkuperäiset parametrit asetetaan alussa, samoin kuin Void setup () -toiminnossa - artikkeleissa arduinosta. Sitten riveillä 11-16 julistetaan ääretön (1) -silmukka, jonka aikana ”LED-vilkkuminen” -ohjelma suoritetaan.

Esimerkissä portin tila on jatkuvasti käänteinen, ts. jos se oli arvossa "0", niin se menee arvoon "1" ja päinvastoin. PIC: n C-kohdassa on seuraavat komentojen hallintakomennot:

PORTA = 0; // kääntää kaikki portin A tapit alhaiselle tasolle (log. 0)
PORTB = 0xff; // kääntää kaikki portin B nastat korkealle tasolle (log. 1)
RB5 = 1; // Portin B viides nasta on korkea

Ja sama ohjelma näyttää tältä, mutta jo JAL-kielellä olen kääntänyt venäjäksi kommentit JALeditin (kehitysympäristö) sisäänrakennettujen esimerkkien kehittäjiltä.

Esimerkki JAL-ohjelmasta

JAL on houkutus valita, ja se voi tuntua helpommalta. Tietysti kaikki projektit voidaan toteuttaa sen avulla, mutta asiantuntijana sinulle koituvan hyödyn kannalta se on turha kieli. Saavutat huomattavasti parempia tuloksia tutkimalla syntaksia ja ohjelmoinnin periaatteita C-kielellä (suurin osa tällä hetkellä suosituista C-kaltaisista kielistä) tai Assembler on alhaisen tason kieli, joka saa sinut ymmärtämään, miten laite toimii ja mitä ohjelmassa tapahtuu milloin tahansa.


Kuinka työskennellä

Jos sanot melko yleistyneen työskennelläksesi tarvitsemiesi mikro-ohjaimien kanssa:

1. Tekstieditori.

2. Kääntäjä.

3. Ohjelmisto laiteohjelmiston lataamiseksi mikro-ohjaimeen.

Ja minä jopa luin vanhoja oppikirjoja, joissa DOS: n alla työskentelevä kirjoittaja kirjoitti koodia, käänsi ja salasi sen erilaisin keinoin. Nyt kaikissa suosituissa käyttöjärjestelmissä on kehitysympäristöjä, jotka ovat erittäin erikoistuneita (tietylle mikrokontrollerien perheelle tai yhden valmistajan perheille) ja yleismaailmallisia (sisältävät joko kaikki tarvittavat työkalut tai ne on kytketty lisäosina).

Esimerkiksi Arduinoa käsittelevässä artikkelisarjassa tarkastelimme Arduino IDE: tä, siinä kirjoitimme koodin ja “kaatoi” laiteohjelmiston “kiveen”. PIC-mikrokontrollereille on olemassa seuraavia ohjelmia:

  • MPASM - käytetään kehittämiseen Assembler-kielellä Microchipistä;

  • MPLAB on myös Microchip IDE PIC-ohjaimille. Se koostuu monista lohkoista testaamiseksi, tarkistamiseksi, koodin kanssa työskentelemiseksi ja ohjelmien kokoamiseksi sekä lataamiseksi mikro-ohjaimelle. MPLAB X IDE: stä on myös versio - siinä on erinomainen toimivuus ja se on rakennettu NetBeans-alustan pohjalta;

  • MikroC on yleinen kehitysympäristö (ei vain PIK: ille). Kuten nimestä voi päätellä, se on "terävöitetty" C-ohjelmoinnille, ja vastaavia kieliä varten on olemassa myös ohjelmia, kuten MikroBasic ja MikroPascal;

  • JALedit - sopii edellä mainitulle JAL-kielelle;

  • Ja joukko muita vähemmän tunnettuja.

MPLAB IDE

Kuinka salata mikro-ohjain?

PIC-mikrotrollereille on olemassa useita ohjelmoijia. Virallisesti pidetty PICkit. Heidän 4 versiota. Mutta voit välähtää ja yleismaailmallisia, esimerkiksi TL866 (se tukee melkein kaikkea mitä aloittelijoille tarkoitettu radioamatööri voi tarvita, vaikka se onkin erittäin halpaa).

Ohjelmoijat PIC mikrotrollereille

Verkossa on myös useita erilaisia ​​ohjelmointipiirejä PIC: lle, molemmat toimimaan COM-portin kautta:

Ohjelmointipiiri

Joten se on USB: n kautta (itse asiassa myös com, vain IC MAX232 -muuntimen kautta).

Ohjelmointipiiri

johtopäätös

PIC16-mikrokontrollerit sopivat yksinkertaisiin projekteihin, kuten yksinkertaisiin automaatioihin, volttimittariin, lämpömittariin ja muihin pieniin asioihin. Mutta tämä ei tarkoita, ettet voi tehdä monimutkaisia ​​ja suuria hankkeita tämän perheen parissa, annoin esimerkin siitä, miksi niitä käytetään eniten. Yleisen idean saamiseksi suosittelen katsomaan muutama video:

Yhdessä artikkelissa on turhaa pohtia aiheita mikro-ohjaimien ohjelmoinnista riippumatta siitä, mikä perhe. Koska tämä on erittäin suuri määrä tietoa.

Katso myös osoitteesta i.electricianexp.com:

  • AVR-mikrokontrollerien tyypit ja järjestely
  • Mikrokontrolleriohjelmointi aloittelijoille
  • Mitkä ovat mikro-ohjaimet - tarkoitus, laite, ohjelmisto
  • Ohjelmoitavat mikrokontrollerit JavaScript: kumpi valita, ominaisuudet ...
  • Menetelmät Arduino I / O -porttien lukemiseen ja hallintaan

  •