Mga kategorya: Mga circuit ng Microcontroller
Bilang ng mga tanawin: 23111
Mga puna sa artikulo: 0
Mga microcontroller ng PIC para sa mga nagsisimula
Sa modernong merkado mayroong isang bilang ng mga pamilya at serye ng mga microcontroller mula sa iba't ibang mga tagagawa, kabilang sa mga ito ang AVR, STM32 at PIC ay maaaring makilala. Ang bawat isa sa mga pamilya ay natagpuan ang sariling saklaw. Sa artikulong ito sasabihin ko sa mga nagsisimula tungkol sa mga microcontroller ng PIC, ibig sabihin, kung ano ito at kung ano ang kailangan mong malaman upang makapagsimula sa kanila.

Ano ang isang PIC
Ang PIC ay ang pangalan ng isang serye ng mga microcontroller na gawa ng Microchip Technology Inc (USA). Ang pangalang PIC ay nagmula sa Peripheral Interface Controller.
Ang mga microcontroller ng PIC ay may isang arkitektura ng RISC. Ang RISC - isang pinaikling hanay ng mga tagubilin, ay ginagamit din sa mga processors para sa mga mobile device. Mayroong isang bilang ng mga halimbawa ng paggamit nito: ARM, Atmel AVR at iba pa.
Noong 2016, binili ng Microchip si Atmel, isang tagagawa ng mga Controller ng AVR. Samakatuwid, ang opisyal na website ay nagtatanghal ng mga microcontroller ng pamilya at PIC at AVR.

Mga Pamilya
Kabilang sa 8-bit PIC microcontroller, binubuo ito ng 3 pamilya na naiiba sa arkitektura (medyo lalim at itinakda ng pagtuturo).
-
Baseline (PIC10F2xx, PIC12F5xx, PIC16F5x, PIC16F5xx);
-
Mid-range (PIC10F3xx, PIC12F6xx, PIC12F7xx, PIC16F6xx, PIC16F7xx, PIC16F8xx, PIC16F9xx);
-
Pinahusay na Mid-range (PIC12F1xxx, PIC16F1xxx);
-
High-end o PIC18 (18Fxxxx, 18FxxJxx at 18FxxKxx).

Ang mga katangian ay ibinibigay sa talahanayan sa ibaba.

Bilang karagdagan sa 8-bit microcontroller, ang Microchip ay gumagawa ng 16-bit:
-
PIC24F;
-
DsPIC30 / 33F para sa pagproseso ng signal.
Ang mga kinatawan ng 16-bit na pamilya ay gumana sa bilis mula 16 hanggang 100 MIPS (milyon-milyong mga tagubilin bawat segundo na nakumpleto). Ito ay nagkakahalaga ng pagpuna at mga tampok:
-
machine cycle - 2 siklo;
-
Resolusyon ng ADC - 16 bits;
-
suportahan ang isang bilang ng mga protocol ng komunikasyon (UART, IrDA, SPI, I2S ™, I2C, USB, CAN, LIN and SENT), PWM at marami pa.
Mayroon ding isang pamilya ng 32 bit microcontrollers - PIC32MX, ang pangunahing tampok:
-
gumana sa isang dalas ng hanggang sa 120 MHz;
-
Magsagawa ng hanggang sa 150 MIPS
-
ADC: 10-bit, 1 Msps (bilis ng dami ng dami), hanggang sa 48 mga channel.
Ano ang sisimulan ng PIC?
Ang mga nagsisimula ay dapat magsimulang mastering ang mga microcontroller ng PIC mula sa isang 8-bit na linya. Sa pangkalahatan, inaangkin ng tagagawa na ang isang tampok ng buong pamilya ay ang madaling portability ng mga programa mula sa isang pamilya patungo sa isa pa at ang pinout ng isang bilang ng mga modelo.
Ang isa sa mga pinakasikat na microcontroller sa amateur radio environment ay PIC16f628A. Ang mga teknikal na katangian nito ay ang mga sumusunod:
-
Mayroong built-in na generator ng orasan. Maaari kang mag-tune upang gumana sa dalas ng 4 o 8 MHz;
-
18 mga pin, kung saan 16 - input / output, at 2 - kapangyarihan;
-
Upang gumana sa mga dalas ng hanggang sa 20 MHz, maaari mong ikonekta ang isang quartz resonator, ngunit sa kasong ito ay hindi 16, ngunit 14 na mga binti ang naiwan para sa pag-input / output;
-
Mayroong liham na F sa pagmamarka, na nangangahulugan na ang memorya ng memorya na may kapasidad ng 2048 na salita ay ginagamit;
-
14-bit na mga tagubilin, 35 piraso;
-
2 mga comparator;
-
4 na mga input ng analog;
-
Ang mga input ng PORTB ay may mga pull-up resistors;
-
Dalawang 8-bit timer at isang 16-bit;
-
Ikot ng makina - 4 na siklo ng isang quartz resonator o panloob na osileytor);
-
224 byte ng RAM;
-
128 bytes ng EEPROM;
-
USART - serial port;
-
sanggunian ng panloob na boltahe;
-
pinalakas ng 3.3 hanggang 5 V.
Ang mga dahilan para sa katanyagan nito ay ang mababang presyo at ang kakayahang mag-orasan mula sa isang panloob na generator.
Aling pinout ng 16f628 ang ipinakita sa ibaba:

Ang panloob na circuitry ng microcontroller na ito ay ipinapakita sa ibaba.

Ano ang dapat kong pansinin sa scheme sa unang lugar?
Ang microcontroller na ito ay may dalawang port PORTA at PORTB. Ang bawat pin, ang bawat isa sa kanila ay maaaring magamit bilang input at output, pati na rin para sa pagkonekta ng mga peripheral o pag-activate ng iba pang mga module ng microcontroller.
Isaalang-alang ang bahaging ito ng scheme.

Halimbawa, ang mga port RB0-RB3 - maaaring kumilos bilang analog. Kung kinakailangan, ang isang mapagkukunan ng orasan ay konektado sa RA6, RA7 (quartz resonator) Ang mga output ng microcontroller mismo ay na-configure sa input / output mode gamit ang TRIS rehistro.
Mayroong mga utos para sa ganitong uri:
TRISA = 0; // Lahat ng mga pin ng port A ay itinakda bilang mga output
TRISB = 0xff; // Lahat ng mga pin ng port B ay itinalaga bilang mga input
TRISA0 = 1; // Kaya ang isang hiwalay na pin ay itinalaga bilang input (1) o output (0)
TRISA5 = 1; // dito ang 5th output ng port A ay itinalaga bilang isang input
Sa pangkalahatan, ang mga mode ng operating, ang pagsasama ng isang WDT (watchdog timer), ang pagpili ng mapagkukunan ng orasan ng microcontroller, atbp, ay na-configure gamit ang mga espesyal na rehistro - SFR, at ang memorya at data ay nakaimbak sa GFR - sa mga simpleng salita, ito ay isang static na RAM.
Sa opisyal na Datasheet, sa mga pahina 18-21 makakahanap ka ng 4 na mga bangko ng memorya para sa mga espesyal na layunin ay nagrerehistro sa SFR at pangkalahatang layunin ay nagrerehistro sa GFR. Mahalaga ang kaalaman sa mga rehistro, kaya i-print at alamin ang ipinahiwatig na mga pahina mula sa Datasheet.
Para sa kaginhawahan, ang mga talahanayan na ito ay ipinakita sa anyo ng mga larawan sa ibaba (ang bilang ng mga rehistro, tulad ng lahat sa digital electronics, ay nagsisimula mula sa 0, kaya ang ika-apat na bilang ay 3).




Paano kumonekta at sa anong wika sa programa?
Upang patakbuhin ang microcontroller na ito, sapat na mag-aplay kasama ang Vdd at minus sa Vss. Kung kailangan mo ng isang quartz resonator, pagkatapos ito ay konektado sa mga pin 16 at 15 (OSC1 at OSC2) ng PIC16f628 microcontroller, para sa iba pang mga Controller na may mas malaki o mas maliit na bilang ng mga pin - tumingin sa datasheet. Ngunit ang puntong ito ay dapat ipahiwatig sa panahon ng programming at firmware.
Ang pagsasalita ng portability at coincidence ng pinout - sa 16f84A - pareho ito, at sa marami pa.

Ang isang fragment ng isang circuit na may isang panlabas na resonator na konektado sa pic16f628a:

Mayroong dalawang pangunahing wika para sa mga programming ng PIC microcontroller - assembler at C, mayroong iba pa, halimbawa PICBasic, atbp. Maaari mo pa ring i-highlight ang pinasimple na wika ng programming JAL (ibang wika).
Halimbawa, sa ibaba ay isang programa para sa "LED flashing" - isang uri ng "Hello World" para sa PIC microcontroller sa C.

Sa linya 1, ang library ng PIC microcontroller ay konektado, pagkatapos ay konektado ang library ng programa ng pagkaantala.
Sa pangunahing (walang bisa) na pag-andar, ang paunang mga parameter ay nakatakda sa simula, tulad ng ginawa namin sa Void setup () function - sa mga artikulo tungkol sa arduino. Pagkatapos, sa mga linya 11-16, isang walang hanggan habang (1) loop ay idineklara, kung saan isinasagawa ang "LED blinking" na programa.
Sa halimbawa, ang estado ng daungan ay patuloy na binabaligtaran, i.e. kung ito ay sa "0", pagkatapos ay pupunta ito sa "1" at kabaligtaran. Sa C para sa PIC mayroong mga sumusunod na mga utos sa pamamahala ng utos:
PORTA = 0; // isinalin ang lahat ng mga pin ng port A sa isang mababang antas (log. 0)
PORTB = 0xff; // isinalin ang lahat ng mga pin ng port B sa isang mataas na antas (log. 1)
RB5 = 1; // Ang ikalimang pin ng port B ay mataas
At mukhang ang parehong programa, ngunit nasa wikang JAL, isinalin ko sa mga puna ng Ruso mula sa mga nag-develop ng mga built-in na halimbawa sa JALedit (kapaligiran ng pag-unlad).

May isang tukso na pumili ng JAL, at tila mas madali sa iyo. Siyempre, maaari mong ipatupad ang anumang mga proyekto sa ito, ngunit mula sa punto ng view ng benepisyo para sa iyo bilang isang dalubhasa, ito ay isang walang saysay na wika. Makakamit mo ang makabuluhang mas malaking resulta sa pamamagitan ng pag-aaral ng syntax at mga prinsipyo ng programming sa C (karamihan sa kasalukuyang tanyag na mga wika na tulad ng C) o Assembler ay isang mababang antas ng wika na gagawing maunawaan mo kung paano gumagana ang aparato at kung ano ang mangyayari sa programa sa anumang oras.
Paano magtrabaho
Kung sasabihin mong medyo pangkalahatan upang gumana sa anumang mga microcontroller na kailangan mo:
1. Text editor.
2. Ang tagatala.
3. Ang programa para sa pag-download ng firmware sa microcontroller.
At nabasa ko kahit na ang mga lumang aklat-aralin, kung saan ang may-akda, na nagtatrabaho mula sa ilalim ng DOS, ay nagsulat ng code, naipon at pinalabas gamit ang iba't ibang paraan. Ngayon, para sa lahat ng mga tanyag na operating system, may mga pag-unlad na kapaligiran, parehong lubos na dalubhasa (para sa isang tiyak na pamilya ng mga microcontroller o pamilya mula sa isang tagagawa) at unibersal (alinman ay naglalaman ng lahat ng kinakailangang mga tool, o sila ay konektado bilang mga plug-in).
Halimbawa, sa isang serye ng mga artikulo tungkol sa Arduino, sinuri namin ang Arduino IDE na kapaligiran; sa loob nito ay nagsulat kami ng code at sa tulong nito "ibinuhos" ang firmware sa "bato". Para sa mga microcontroller ng PIC ay mayroong mga programang tulad ng:
-
MPASM - ginamit para sa kaunlaran sa wikang Assembler mula sa Microchip;
-
Ang MPLAB din ang Microchip IDE para sa mga Controller ng PIC. Binubuo ito ng maraming mga bloke para sa pagsubok, pagsuri, pagtatrabaho sa code at pag-iipon ng mga programa at pag-download sa microcontroller. Mayroon ding isang bersyon ng MPLAB X IDE - nagtatampok ito ng mahusay na pag-andar at itinayo batay sa platform ng NetBeans;
-
Ang MikroC ay isang unibersal na kapaligiran (hindi lamang para sa mga PIK) para sa kaunlaran. Tulad ng ipinahihiwatig ng pangalan, ito ay "patalasin" para sa programming ng C, at mayroon ding mga programa tulad ng MikroBasic at MikroPascal para sa kaukulang wika;
-
JALedit - angkop para sa wikang JAL na binanggit namin sa itaas;
-
At isang bilang ng iba pang mga mas maliit na kilala.

Paano mag-flash ng isang microcontroller?
Mayroong isang bilang ng mga programmer para sa mga PIC micronotroller. Opisyal na itinuturing na PICkit. Ang kanilang 4 na bersyon. Ngunit maaari kang mag-flash at unibersal, halimbawa, TL866 (sinusuportahan nito ang halos lahat ng maaaring kailanganin ng isang baguhan sa radio ng baguhan, habang ito ay napaka-mura).

Gayundin sa network mayroong isang bilang ng iba't ibang mga circuit ng programmer para sa mga PIC, kapwa para sa pagtatrabaho sa pamamagitan ng COM port:

Kaya ito ay sa pamamagitan ng USB (sa katunayan, com din, sa pamamagitan lamang ng converter sa IC MAX232).

Konklusyon
Ang mga microcontroller ng PIC16 ay angkop para sa mga simpleng proyekto, tulad ng simpleng automation, voltmeter, thermometer at iba pang maliliit na bagay. Ngunit hindi ito nangangahulugan na hindi ka makakagawa ng mga kumplikado at malalaking proyekto sa pamilyang ito, nagbigay ako ng isang halimbawa kung bakit madalas na ginagamit ito. Para sa isang pangkalahatang ideya, inirerekumenda ko ang panonood ng ilang mga video:
Sa isang artikulo, walang saysay na isaalang-alang ang mga paksa kung paano i-program ang mga microcontroller, anuman ang pamilya. Dahil ito ay isang napakalaking halaga ng impormasyon.
Tingnan din sa electro-tl.tomathouse.com
: