- Arkitektura at Aplikasyon ng PIC Microcontroller:
- Pagpili ng PIC Microcontroller para sa aming Mga Tutorial:
- Pagpili ng Software para sa Aming Mga Tutorial:
- Paghahanda sa Hardware:
Noong 1980, binuo ng Intel ang unang Microcontroller (8051) kasama ang Harvard Architecture 8051 at mula noon ang Microcontrollers ay nagdala ng isang rebolusyon sa Electronics at naka-embed na industriya. At sa pagsulong ng teknolohiya sa paglipas ng panahon, ngayon marami kaming mas mahusay at mababang power microcontrollers tulad ng AVR, PIC, ARM. Ang mga Microcontroller na ito ay mas may kakayahan at madaling gamitin, pagkakaroon ng pinakabagong mga protocol sa komunikasyon tulad ng USB, I2C, SPI, CAN atbp Kahit na ang Arduino at Raspberry Pi ay ganap na binago ang pananaw patungo sa Microcontrollers, at ang Raspberry Pi ay hindi lamang isang microcontroller ngunit mayroon itong buong computer sa loob.
Ito ang magiging unang bahagi ng isang serye ng mga tutorial na darating pa, na makakatulong sa iyo sa pag-alam ng PIC Microcontrollers. Kung ikaw ay mula sa isang background sa electronics at palagi mong nais na magsimula sa pag-aaral ng ilang mga Microcontroller at makuha ang iyong sarili sa mundo ng pag-coding at pagbuo ng mga bagay-bagay, kung gayon ang seryeng mga tutorial na ito ang iyong unang hakbang upang magsimula.
Ang PIC microcontroller ay napaka-maginhawang pagpipilian upang makapagsimula sa isang mga proyekto ng microcontroller, sapagkat ito ay may mahusay na mga forum ng suporta at kikilos bilang isang malakas na base upang maitayo sa lahat ng iyong mga advanced na Microcontroller na hindi mo pa rin matututunan.
Ang mga tutorial na ito ay ginawa para sa ganap o intermediate na Nag-aaral; binalak naming magsimula sa mga pinaka pangunahing proyekto sa mga advanced. Inaasahan namin na walang paunang mga kahilingan mula sa mga nag-aaral dahil narito kami upang matulungan ka mula sa anumang antas. Ang bawat tutorial ay magkakaroon ng teoretikal na paliwanag at simulation na susundan ng isang hands-on tutorial. Ang mga tutorial na ito ay hindi kasangkot sa anumang mga board ng pag-unlad, gagawa kami ng aming sariling mga circuit gamit ang isang perf board. Kaya't mag-ayos, at gumawa ng ilang oras bawat linggo upang mapahusay ka sa mga Microcontroller.
Magsimula na tayo sa isang Simpleng Panimula sa PIC Microcontrollers at ilang mga pag-setup ng software upang magpatakbo kami sa aming susunod na tutorial. Suriin ang Video sa dulo para sa pag-install at pag-set up ng MPLABX, XC8, Proteus at isang mabilis na unboxing ng PICkit 3 programmer.
Arkitektura at Aplikasyon ng PIC Microcontroller:
Ang PIC microcontroller ay ipinakilala ng Microchip Technologies noong taong 1993. Orihinal na ang PIC na ito ay binuo upang maging isang bahagi ng PDP (Programmed Data Processor) Mga Computer at bawat peripheral na aparato ng computer ay nag-interfaced gamit ang PIC microcontroller na ito. Samakatuwid ang PIC ay nakakakuha ng pangalan nito bilang para sa Peripheral Interface Controller. Sa paglaon ang Microchip ay nakabuo ng maraming mga serye ng PIC na IC na maaaring magamit para sa anumang maliit na application tulad ng isang application ng pag-iilaw hanggang sa advanced.
Ang bawat Microcontroller ay magtatayo sa paligid ng ilang arkitektura, ang pinakatanyag na uri ng Arkitektura ay ang arkitekturang Harvard, ang aming PIC ay batay sa arkitekturang ito dahil kabilang ito sa klasikong 8051 na pamilya. Pumasok tayo sa isang maliit na intro tungkol sa arkitektura ng Harvard ng PIC.
Ang PIC16F877A Microcontroller ay binubuo ng isang inbuilt CPU, I / O port, memorya ng samahan, A / D converter, timer / counter, nakakagambala, serial komunikasyon, oscillator at CCP module na kung saan makakalap ay ginagawang isang malakas na microcontroller ang IC para sa mga nagsisimula upang magsimula. Ang pangkalahatang bloke ng diagram ng PIC Architecture ay ipinapakita sa ibaba
CPU (Central Processing Unit):
Ang microcontroller ay may isang CPU upang maisagawa ang mga pagpapatakbo ng Arithmetic, mga lohikal na desisyon at pagpapatakbo na nauugnay sa memorya. Ang CPU ay kailangang co-ordinate sa pagitan ng RAM at iba pang mga paligid ng Microcontroller.
Binubuo ito ng isang ALU (Arithmetic Logic Unit), na ginagamit kung saan ginagawa nito ang mga pagpapatakbo ng aritmetika at lohikal na mga desisyon. Ang isang MU (Memory unit) ay naroroon din upang maiimbak ang mga tagubilin pagkatapos na maipatupad. Ang MU na ito ang magpapasya sa laki ng programa ng aming MC. Binubuo din ito ng isang CU (Control Unit) na gumaganap bilang isang bus ng komunikasyon sa pagitan ng CPU at iba pang mga peripheral ng microcontroller. Nakakatulong ito sa pagkuha ng data pagkatapos maproseso ito sa tinukoy na mga pagrehistro.
Random Access Memory (RAM):
Ang memorya ng Random Access ay ang magpapasya sa bilis ng aming microcontroller. Ang RAM ay binubuo ng mga rehistro na bangko sa loob nito, na ang bawat isa ay nakatalaga ng isang tiyak na gawain. Sa kabuuan maaari silang maiuri sa dalawang uri:
- Rehistro ng Pangkalahatang Pakay (GPR)
- Espesyal na Pagrehistro ng Pag-andar (SFR)
Tulad ng ipinahihiwatig ng pangalan na ang GPR ay ginagamit para sa pangkalahatang pag-andar ng rehistro tulad ng pagdaragdag, pagbabawas atbp Ang mga pagpapatakbo na ito ay limitado sa loob ng 8-bit. Ang lahat ng mga rehistro sa ilalim ng GPR ay nasusulat at nababasa ng gumagamit. Wala silang anumang mga pagpapaandar sa kanilang sarili maliban kung ito ay tinukoy ng software.
Habang ang SFR ay ginagamit upang maisagawa ang mga kumplikadong espesyal na pag-andar na nagsasangkot din ng ilang 16-bit na paghawak, ang kanilang mga rehistro ay mababasa lamang (R) at hindi namin maisulat ang (W) anuman sa kanila. Kaya't ang mga rehistro na ito ay may paunang natukoy na mga pagpapaandar upang maisagawa, na itinakda sa oras ng pagmamanupaktura at ipinapakita lamang sa amin ang resulta, na ginagamit kung saan maaari kaming magsagawa ng ilang kaugnay na mga operasyon.
Basahin lamang ang memorya (ROM):
Ang memorya na basahin lamang ang lugar kung saan naiimbak ang aming programa. Nagpapasya ito ng maximum na laki ng aming programa; samakatuwid ito ay tinatawag ding memorya ng programa. Kapag ang MCU ay nasa ilalim ng pagpapatakbo, ang program na nakaimbak sa ROM ay naisakatuparan ayon sa bawat cycle ng pagtuturo. Ang yunit ng memorya na ito ay maaaring magamit lamang habang pinaprograma ang PIC, sa panahon ng pagpapatupad ito ay naging isang read only memory.
Elektronikong Na-i-Programmable Basahin Lamang Memory (EEPROM):
Ang EEPROM ay isa pang uri ng Memory Unit. Sa mga halaga ng yunit ng memorya na ito ay maaaring maiimbak sa panahon ng pagpapatupad ng programa. Ang mga halagang nakaimbak dito ay Magagamit lamang sa Elektrisidad na ang mga halagang ito ay mananatili sa PIC kahit na naka-off ang IC. Maaari silang magamit bilang maliit na puwang ng memorya upang maiimbak ang mga naisakatuparan na halaga; subalit ang memorya ng puwang ay magiging mas mababa sa mga liko ng KB.
Memory ng Flash :
Ang memorya ng flash ay isang Programmable Read Only Memory (PROM) din kung saan maaari nating basahin, isulat at burahin ang programa ng libu-libong beses. Pangkalahatan, ang PIC microcontroller ay gumagamit ng ganitong uri ng ROM.
I / O Mga Port
- Ang aming PIC16F877A ay binubuo ng limang port kabilang ang Port A, Port B, Port C, Port D & Port E.
- Sa lahat ng limang PORTS ang Port A lamang ay 16-bit, at ang PORT E ay 3-bit. Ang natitirang mga PORTS ay 8-bit.
- Ang mga pin sa mga PORTS na ito ay maaaring magamit bilang alinman sa Input o Output, batay sa pagsasaayos ng TRIS Rehistro.
- Bukod sa pagsasagawa ng mga pagpapatakbo ng I / O ang mga pin ay maaari ding gamitin para sa Mga Espesyal na pagpapaandar tulad ng SPI, Makagambala, PWM atbp.
Bus:
Ang term na Bus ay isang pangkat lamang ng mga wire na kumokonekta sa Input o Output Device na may CPU at RAM.
Ginagamit ang data bus upang ilipat o matanggap ang data.
Ginagamit ang address bus upang maipadala ang memorya ng address mula sa mga peripheral patungo sa CPU. Ginagamit ang mga I / O pin upang i-interface ang panlabas na mga peripheral; Ang UART at USART parehong mga serial komunikasyon na protokol ay ginagamit para sa pag-interfacing ng mga serial device tulad ng GSM, GPS, Bluetooth, IR, atbp.
Pagpili ng PIC Microcontroller para sa aming Mga Tutorial:
Ang PIC Microcontrollers mula sa Microchip Company ay nahahati sa 4 na malalaking pamilya. Ang bawat pamilya ay may iba't ibang mga bahagi na nagbibigay ng mga built-in na espesyal na tampok:
- Ang unang pamilya, PIC10 (10FXXX) - ay tinawag na Low End.
- Ang pangalawang pamilya, PIC12 (PIC12FXXX) - ay tinatawag na Mid-Range.
- Ang pangatlong pamilya ay PIC16 (16FXXX).
- Ang pang-apat na pamilya ay PIC 17/18 (18FXXX)
Dahil nagsisimula kaming malaman tungkol sa PIC, pumili tayo ng isang IC na ginagamit at magagamit sa buong mundo. Ang IC na ito ay kabilang sa pamilya 16F na bahagi ng bilang ng IC ay PIC16F877A. Mula sa unang tutorial hanggang sa katapusan gagamit kami ng parehong IC dahil ang IC na ito ay nilagyan ng lahat ng mga advanced na tampok tulad ng SPI, I2C, at UART atbp. Ngunit kung hindi ka makakakuha ng anuman sa mga bagay na ito ngayon ay ganap na itong maayos, gagawin namin sumulong sa bawat tutorial at sa wakas ay gumagamit ng lahat ng nabanggit na mga tampok.
Kapag napili ang IC, napakahalaga na basahin ang datasheet ng IC. Ito ang dapat na unang hakbang sa anumang konsepto na susubukan namin. Ngayon dahil napili namin ang PIC16F877A na ito ay hinahayaan na basahin ang detalye ng IC na ito sa Datasheet.
Ang Tampok na Peripheral, binabanggit na mayroon itong 3 Timer, dalawa sa mga ito ay 8-bit at ang isa ay 16-bit prescaler. Ginagamit ang mga Timer na ito upang lumikha ng mga pag-andar ng tiyempo sa aming programa. Maaari din silang magamit bilang mga counter. Ipinapakita rin nito na mayroon itong mga pagpipilian sa CCP (Capture Compare at PWM), na tumutulong sa amin na makabuo ng mga signal ng PWM at mabasa ang mga papasok na signal ng dalas. Para sa komunikasyon sa panlabas na aparato, mayroon itong SPI, I2C, PSP at USART. Para sa layuning pangkaligtasan nilagyan ito ng Brown-out Reset (BOR), na tumutulong sa pag-reset ng habang programa.
Ang Mga Tampok ng Analog, Ipinapahiwatig na ang IC ay may 10-bit 8-channel ADC. Nangangahulugan ito, maaaring i-convert ng aming IC ang mga halaga ng Analog sa digital na may resolusyon na 10-bit, at mayroong 8 mga analog na pin upang mabasa ang mga ito. Mayroon din kaming dalawang panloob na paghahambing na maaaring magamit upang ihambing ang papasok na boltahe nang direkta nang hindi talaga binabasa ang mga ito sa pamamagitan ng software.
Ang Mga Tampok na Espesyal na Microcontroller, nangangahulugan na mayroon itong 100,000 burahin / isulat na cycle, nangangahulugang maaari mong i-program ito nang halos 100,000 beses. Ang In-Circuit Serial Programming ™ (ICSP ™), ay tumutulong sa amin na i-program ang IC nang direkta gamit ang PICKIT3. Ang pag-debug ay maaaring gawin sa pamamagitan ng In-Circuit Debug (ICD). Ang isa pang tampok sa kaligtasan ay ang Watchdog Timer (WDT), na isang maaasahang timer na self-reset ang buong programa kung kinakailangan.
Ang imahe sa ibaba ay kumakatawan sa mga pinout ng aming PIC16F877A IC. Kinakatawan ng imaheng ito ang bawat pin laban sa pangalan nito at mga tampok ng iba pa. Maaari din itong matagpuan sa datasheet. Panatilihing madaling gamitin ang imaheng ito sapagkat makakatulong ito sa amin sa panahon ng aming mga gumagana sa hardware.
Pagpili ng Software para sa Aming Mga Tutorial:
Ang PIC microcontroller ay maaaring mai-program sa iba't ibang mga software na magagamit sa merkado. May mga tao na gumagamit pa rin ng wikang Assembly upang mai-program ang PIC MCUs. Para sa aming mga tutorial napili namin ang pinaka-advanced na software at tagatala na binuo ng Microchip mismo.
Upang ma-program ang PIC microcontroller kakailanganin namin ang isang IDE (Integrated Development Environment), kung saan nagaganap ang programa. Isang tagatala, kung saan ang aming programa ay nabago sa nababasa na form ng MCU na tinawag na HEX file. Isang IPE (Integrated Programming Environment), na ginagamit upang itapon ang aming hex file sa aming mga PIC MCU.
IDE: MPLABX v3.35
IPE: MPLAB IPE v3.35
Tagatala : XC8
Ibinigay ng Microchip ang lahat ng tatlong software na ito nang libre. Maaari silang mai-download nang direkta mula sa kanilang opisyal na pahina. Nagbigay din ako ng link para sa iyong kaginhawaan. Sa sandaling na-download ang i-install ang mga ito sa iyong computer. Kung mayroon kang anumang problema sa paggawa upang matingnan mo ang Video na ibinigay sa dulo.
Para sa layunin ng Simulation gumamit kami ng software na tinatawag na PROTEUS 8, na ibinigay ng Labcenter. Maaaring gamitin ang software na ito upang gayahin ang aming code na nabuo gamit ang MPLABX. Mayroong isang libreng demonstration software na maaaring ma-download mula sa kanilang opisyal na pahina sa pamamagitan ng link.
Paghahanda sa Hardware:
Ang lahat ng aming mga tutorial ay magtatapos sa hardware. Upang malaman ang PIC sa pinakamahusay na paraan na posible palaging inirerekumenda na subukan ang aming mga code at circuit sa hardware, dahil ang pagiging maaasahan ng simulation ay mas mababa. Ang mga code na gumagana sa isang simulation software, ay maaaring hindi gumana tulad ng inaasahan mo sa iyong hardware. Samakatuwid ay nagtatayo kami ng aming sariling mga circuit sa isang Perf boards upang itapon ang aming mga code.
Upang itapon o mai-upload ang aming code sa PIC, kakailanganin namin ang PICkit 3. Ang PICkit 3 programmer / debugger ay isang simple, murang in-circuit debugger na kinokontrol ng isang PC na nagpapatakbo ng MPLAB IDE (v8.20 o mas mataas) na software sa isang Windows platform. Ang PICkit 3 programmer / debugger ay isang mahalagang bahagi ng tool suite ng development engineer. Bilang karagdagan sa ito kakailanganin din namin ng iba pang mga hardware tulad ng Perf board, Soldering station, PIC ICs, Crystal oscillator, capacitors atbp Ngunit idaragdag namin ang mga ito sa aming listahan habang sumusulong kami sa aming mga tutorial.
Dinala ko ang aking PICkit 3 mula sa amazon, ang unboxing na video ng pareho ay matatagpuan sa video sa ibaba. Ang link para sa PICKIT3 ay ibinigay din; ang presyo ay maaaring medyo mataas ngunit tiwala sa akin ito ay nagkakahalaga ng pamumuhunan.