Kategorijas: Mikrokontrolleru shēmas
Skatījumu skaits: 23111
Komentāri par rakstu: 0

PIC mikrokontrolleri iesācējiem

 

Mūsdienu tirgū ir vairākas ģimenes un dažādu ražotāju mikrokontrolleru sērijas, starp kuriem var atšķirt AVR, STM32 un PIC. Katra no ģimenēm ir atradusi savu darbības jomu. Šajā rakstā es iesācējiem pastāstīšu par PIC mikrokontrolleriem, proti, kas tas ir un kas jums jāzina, lai sāktu ar tiem.

PIC mikrokontrolleri iesācējiem

Kas ir PIC

PIC ir mikrokontrolleru sērijas nosaukums, ko ražo Microchip Technology Inc (ASV). PIC nosaukums nāk no perifērijas interfeisa kontroliera.

PIC mikrokontrolleriem ir RISC arhitektūra. RISC - saīsināts instrukciju komplekts, tiek izmantots arī mobilo ierīču procesoros. Ir vairāki tā izmantošanas piemēri: ARM, Atmel AVR un citi.

2016. gadā Microchip nopirka AVR kontrolieru ražotāju Atmel. Tāpēc oficiālajā vietnē ir parādīti ģimenes mikrokontrolleri un PIC un AVR.

Mikrokontrolieris PIC16F1xxx

Ģimenes

Starp 8 bitu PIC mikrokontrolleriem tas sastāv no 3 ģimenēm, kas atšķiras pēc arhitektūras (bitu dziļums un instrukciju kopa).

  • Sākumstāvoklis (PIC10F2xx, PIC12F5xx, PIC16F5x, PIC16F5xx);

  • Vidēja diapazona (PIC10F3xx, PIC12F6xx, PIC12F7xx, PIC16F6xx, PIC16F7xx, PIC16F8xx, PIC16F9xx);

  • Uzlabota vidējā diapazona (PIC12F1xxx, PIC16F1xxx);

  • Augstas klases vai PIC18 (18Fxxxx, 18FxxJxx un 18FxxKxx).

Mikrokontrolleru ģimeņu salīdzinājums

Raksturlielumi ir norādīti tabulā zemāk.

PIC mikrokontrolleru funkcijas

Papildus 8 bitu mikrokontrolleriem Microchip ražo arī 16 bitu:

  • PIC24F;

  • DsPIC30 / 33F signāla apstrādei.

16 bitu saimes pārstāvji darbojas ar ātrumu no 16 līdz 100 MIPS (izpildīti miljoni instrukciju sekundē). Ir vērts atzīmēt, un funkcijas:

  • mašīnas cikls - 2 cikli;

  • ADC izšķirtspēja - 16 biti;

  • Atbalsta vairākus sakaru protokolus (UART, IrDA, SPI, I2S ™, I2C, USB, CAN, LIN un SENT), PWM un daudz ko citu.

Ir arī 32 bitu mikrokontrolleru saime - PIC32MX, galvenās funkcijas:

  • darbojas frekvencē līdz 120 MHz;

  • Veiciet līdz 150 MIPS

  • ADC: 10 bitu, 1 ms / s (kvantēšanas ātrums), līdz 48 kanāliem.



Ar kuru PIC sākt?

Iesācējiem jāsāk apgūt PIC mikrokontrolleri no 8 bitu līnijas. Kopumā ražotājs apgalvo, ka visas ģimenes iezīme ir ērta programmu pārnesamība no vienas ģimenes uz otru un vairāku modeļu izvietojums.

Viens no populārākajiem mikrokontrolleriem radioamatieru vidē ir PIC16f628A. Tā tehniskie parametri ir šādi:

  • Ir iebūvēts pulksteņu ģenerators. Jūs varat noskaņoties strādāt ar frekvenci 4 vai 8 MHz;

  • 18 tapas, no kurām 16 - ieeja / izeja un 2 - jauda;

  • Lai darbotos frekvencēs līdz 20 MHz, varat pievienot kvarca rezonatoru, taču šajā gadījumā ievadei / izvadei ir palikušas nevis 16, bet 14 kājas;

  • Marķējumā ir burts F, kas nozīmē, ka tiek izmantota FLASH atmiņa ar ietilpību 2048 vārdi;

  • 14 bitu instrukcijas, 35 gabali;

  • 2 salīdzinātāji;

  • 4 analogās ieejas;

  • PORTB ieejām ir savilkšanas rezistori;

  • Divi 8 bitu taimeri un viens 16 bitu taimeri;

  • Mašīnas cikls - 4 kvarca rezonatora vai iekšējā oscilatora cikli);

  • 224 baiti operatīvās atmiņas;

  • 128 baiti EEPROM;

  • USART - seriālais ports;

  • iekšējā sprieguma atsauce;

  • barošanu no 3,3 līdz 5 V.

Tās popularitātes iemesli ir zemā cena un spēja pulksteņa iestatīšanai no iekšējā ģeneratora.

Kurš 16f628 korpuss ir parādīts zemāk:

Pinouts pa tālruni 16f628

Šī mikrokontrollera bloka iekšējā shēma ir parādīta zemāk.

Mikrokontrolleru struktūra 16f628

Ko, pirmkārt, shēmā vajadzētu pievērst uzmanību?

Šim mikrokontrolleram ir divi porti PORTA un PORTB. Katru tapu, katru no tiem var izmantot kā ieeju un izeju, kā arī perifērijas ierīču savienošanai vai citu mikrokontrolleru moduļu aktivizēšanai.

Apsveriet šo shēmas daļu lielā apjomā.

MK ostas

Piemēram, porti RB0-RB3 - var darboties kā analogi. Ja nepieciešams, pulksteņa avots tiek savienots ar RA6, RA7 (kvarca rezonators) Pašu mikrokontrolleru izejas tiek konfigurētas ievades / izvades režīmā, izmantojot TRIS reģistru.

Šim tipam ir komandas:

TRISA = 0; // Visas A porta tapas ir iestatītas kā izejas
TRISB = 0xff; // Visus porta B kontaktdakšas piešķir kā ieejas
TRISA0 = 1; // Tātad atsevišķa tapa tiek piešķirta kā ieeja (1) vai izvade (0)
TRISA5 = 1// šeit porta A 5. izvade tiek piešķirta kā ieeja

Kopumā darba režīmi, WDT (sargsuņa taimera) iekļaušana, mikrokontrollera pulksteņa avota izvēle un tā tālāk tiek konfigurēti, izmantojot speciālajiem mērķiem paredzētos reģistrus - SFR, un atmiņa un dati tiek glabāti GFR - vienkāršiem vārdiem sakot, tas ir statisks RAM.

Oficiālā datu lapā no 18. līdz 21. lappusei jūs atradīsit 4 atmiņu bankas īpašam nolūkam paredzētiem reģistriem SFR un vispārējas nozīmes reģistriem GFR. Svarīgas ir zināšanas par reģistriem, tāpēc izdrukājiet un apgūstiet norādītās lapas no Datu lapa.

Ērtības labad šīs tabulas ir parādītas attēlu veidā zemāk (reģistru numerācija, tāpat kā viss digitālajā elektronikā, sākas ar 0, tātad ceturtais skaitlis ir 3).

Īpaša mērķa reģistri
Īpaša mērķa reģistri
Īpaša mērķa reģistri
Īpaša mērķa reģistri

Kā pieslēgties un kādā valodā programmēt?

Lai palaistu šo mikrokontrolleri, pietiek ar plusa pievienošanu Vdd un mīnusa Vss. Ja jums nepieciešams kvarca rezonators, tas ir savienots ar PIC16f628 mikrokontrollera 16. un 15. kontaktu (OSC1 un OSC2), citiem kontrolieriem ar lielāku vai mazāku kontaktu skaitu - meklēt datu lapā. Bet šis punkts ir jāprecizē programmēšanas un programmaparatūras laikā.

Runājot par pinout pārnesamību un sakritību - uz 16f84A -, tas ir līdzīgi, kā arī daudziem citiem.

Kvarca rezonatora savienojums

Ķēdes fragments ar ārēju rezonatoru, kas savienots ar pic16f628a:

Ķēdes fragments ar ārēju rezonatoru, kas savienots ar pic16f628a

PIC mikrokontrolleru programmēšanai ir divas galvenās valodas - montētājs un C, ir arī citas valodas, piemēram, PICBasic utt. Jūs joprojām varat izcelt vienkāršoto programmēšanas valodu JAL (tikai citu valodu).

Piemēram, zemāk ir programma “LED mirgo” - sava veida “Sveika pasaule” PIC mikrokontrolleram C.

PIC mikrokontrolleru programmas piemērs C

1. rindā ir pievienota PIC mikrokontrolleru bibliotēka, pēc tam ir pievienota kavējuma programmas bibliotēka.

Pamatfunkcijā (tukšums) sākotnējie parametri tiek iestatīti pašā sākumā, tāpat kā mēs to izdarījām funkcijā Void setup (). rakstos par arduino. Tad 11.-16. Rindā tiek deklarēta bezgalīga (1) cilpa, kuras laikā tiek izpildīta programma “LED mirgo”.

Piemērā ostas stāvoklis tiek pastāvīgi apgriezts, t.i. ja tas bija pie "0", tad tas pāries uz "1" un otrādi. C sadaļā PIC ir šādas komandu pārvaldības komandas:

PORTA = 0; // tulko visus A porta tapas zemā līmenī (log 0)
PORTB = 0xff; // visus porta B tapas pārvērš augstā līmenī (1. log.)
RB5 = 1; // B ostas piektais tapa ir augsts

Un izskatās, ka tā pati programma, bet jau JAL valodā es tulkoju krievu valodā komentārus no JALedit (attīstības vide) iebūvēto piemēru izstrādātājiem.

JAL programmas paraugs

Pastāv kārdinājums izvēlēties JAL, un jums tas var šķist vieglāk. Protams, jūs varat tajā īstenot jebkurus projektus, taču no ieguvuma viedokļa jums kā speciālistam tā ir bezjēdzīga valoda. Iegūstot ievērojami lielākus rezultātus, jūs sasniegsit, studējot programmēšanas sintakse un principus C valodā (lielākajā daļā šobrīd populāro C veida valodu) vai Assembler ir zema līmeņa valoda, kas ļaus jums saprast, kā ierīce darbojas un kas notiek programmā noteiktā laikā.


Kā strādāt

Ja jūs sakāt, ka esat diezgan vispārināts darbam ar nepieciešamajiem mikrokontrolleriem:

1. Teksta redaktors.

2. Sastādītājs.

3. Programma programmaparatūras lejupielādēšanai mikrokontrollerā.

Es pat lasīju vecas mācību grāmatas, kurās autors, strādājot no DOS, rakstīja kodu, sastādīja un pārpildīja to, izmantojot dažādus līdzekļus. Tagad visām populārajām operētājsistēmām ir izstrādātas attīstības vides, gan ļoti specializētas (konkrētai mikrokontrolleru saimei vai viena ražotāja ģimenēm), gan universālas (vai nu satur visus nepieciešamos rīkus, vai arī ir savienotas kā spraudņi).

Piemēram, rakstu sērijā par Arduino mēs apskatījām Arduino IDE, tajā mēs uzrakstījām kodu un ar tās palīdzību “ielejām” programmaparatūru “akmenim”. PIC mikrokontrolleriem ir šādas programmas:

  • MPASM - tiek izmantots, lai izstrādātu montētāja valodu no mikroshēmas;

  • MPLAB ir arī mikroshēmas IDE PIC kontrolieriem. Tas sastāv no daudziem blokiem testēšanai, pārbaudei, darbam ar kodu un programmu sastādīšanai un lejupielādei mikrokontrollerā. Ir arī MPLAB X IDE versija - tai ir lieliska funkcionalitāte un tā ir veidota, pamatojoties uz NetBeans platformu;

  • MikroC ir universāla vide (ne tikai PIK) attīstībai. Kā norāda nosaukums, tas ir “asināts” C programmēšanai, un attiecīgajām valodām ir arī tādas programmas kā MikroBasic un MikroPascal;

  • JALedit - piemērots JAL valodai, kuru mēs minējām iepriekš;

  • Un virkne citu mazāk zināmu.

MPLAB IDE

Kā mirgot mikrokontrolleru?

Ir vairāki programmētāji PIC mikrotrullētājiem. Oficiāli uzskatīts PICkit. Viņu 4 versijas. Bet jūs varat mirgot un universāli, piemēram, TL866 (tas atbalsta gandrīz visu, kas varētu būt nepieciešams iesācēju radioamatieriem, lai gan tas ir ļoti lēts).

Programmētāji PIC mikrotrullētājiem

Tīklā ir arī vairākas dažādas PIC programmētāju shēmas, gan darbam caur COM portu:

Programmētāja shēma

Tātad tas notiek caur USB (faktiski arī com, tikai caur pārveidotāju IC MAX232).

Programmētāja shēma

Secinājums

PIC16 mikrokontrolleri ir piemēroti vienkāršiem projektiem, piemēram, vienkāršai automatizācijai, voltmetriem, termometriem un citām mazām lietām. Bet tas nenozīmē, ka jūs nevarat veikt sarežģītus un lielus projektus šajā ģimenē, es sniedzu piemēru, kāpēc tos visbiežāk izmanto. Vispārīgai idejai iesaku noskatīties dažus videoklipus:

Vienā rakstā ir bezjēdzīgi izskatīt tēmas, kā programmēt mikrokontrollerus neatkarīgi no ģimenes. Tā kā tas ir ļoti liels informācijas daudzums.

Skatīt arī vietnē e.imadeself.com:

  • AVR mikrokontrolleru veidi un izvietojums
  • Mikrokontrolleru programmēšana iesācējiem
  • Kas ir mikrokontrolleri - mērķis, ierīce, programmatūra
  • Programmējami mikrokontrolleri JavaScript: kuru izvēlēties, raksturojums ...
  • Arduino I / O portu nolasīšanas un pārvaldības metodes

  •