- Mga Materyal na Kinakailangan:
- Memory ng flash:
- ICSP (Sa Circuit Serial Programming):
- Circuit at Hardware:
- Nasusunog ang Code gamit ang MPLAB IPE:
Sa aming nakaraang dalawang mga tutorial na tinalakay namin Kung Paano Magsimula sa PIC gamit ang MPLABX at XC8 compiler, ginawa rin namin ang aming First LED Blinking Program sa PIC at napatunayan ito sa pamamagitan ng simulation. Ngayon ay oras na para makuha natin ang ating mga kamay sa hardware. Sa tutorial na ito magtatayo kami ng isang maliit na circuit sa isang Perf Board para sa Blinking the LED gamit ang PIC. Itatapon namin ang programa sa aming PIC microcontroller at i-verify ang LED Blinking. Upang Program ang PIC MCU gagamitin namin ang MPLAB IPE.
Mga Materyal na Kinakailangan:
Tulad ng tinalakay sa aming nakaraang tutorial kakailanganin namin ang mga sumusunod na materyales:
- PicKit 3
- PIC16F877A IC
- 40 - May hawak ng IC
- Perf board
- 20 MHz Crystal OSC
- Mga pin ng Babae at Lalaki na Bergstick
- 33pf Capacitor - 2No, 100uf at 10uf cap.
- 680 ohm, 10K at 560ohm Resistor
- LED ng anumang kulay
- 1Soldering kit
- IC 7805
- 12V adapter
Ano ang mangyayari kapag "Sinunog" namin ang isang Microcontroller !!
Karaniwang kasanayan na i-upload ang code sa isang MCU at gawin itong gumana sa loob ng MCU.
Sa, upang maunawaan na ito ay makakatingin sa aming programa
Tulad ng nakikita natin ang code na ito ay nakasulat sa C-Wika at wala itong kahulugan sa aming MCU. Dito pumapasok ang bahagi ng aming tagatala; ang isang Tagatala ay isa na binago ang code na ito sa isang nababasa na form ng Machine. Ang form na nababasa ng machine na ito ay tinatawag na HEX code, bawat proyekto na nilikha namin ay magkakaroon ng HEX code na makikita sa sumusunod na direktoryo
** Ang iyong lokasyon ** \ Blink \ Blink.X \ dist \ default \ production \ Blink.X.production.hex
Kung interesado kang malaman kung paano ang hitsura ng HEX code na ito, buksan lamang ito gamit ang notepad. Para sa aming programa sa Blink, ang HEX code ay magiging katulad ng sumusunod:
: 060000000A128A11FC2F18: 100FAA008316031386018312031386018312031324: 100FBA0086150D30F200AF30F100C130F000F00BB1: 100FCA00E42FF10BE42FF20BE42F0000831203133A: 100FDA0086110D30F200AF30F100C130F000F00B95: 100FEA00F42FF10BF42FF20BF42F0000DB2F830107: 060FFA000A128A11D52F36: 02400E007A3FF7: 00000001FF
Mayroong mga paraan kung paano ito basahin at kung paano ito maiintindihan at ibalik ito sa wikang Assembly, ngunit ito ay ganap na wala sa saklaw ng tutorial na ito. Kaya, upang simpleng ilagay ito sa isang maikling salita; ang HEX ay ang pangwakas na kinalabasan ng software ng aming pag-coding at ito ang ipapadala ng MPLAB IPE para sa pagsunog sa MCU.
Memory ng flash:
Ang HEX code ay nakaimbak sa MCU sa isang lugar na tinatawag na Flash memory. Ang flash memory ay ang lugar kung saan maiimbak ang aming programa sa loob ng MCU at isinasagawa mula doon. Kapag naipon na namin ang programa sa aming MPLABX, makukuha namin ang sumusunod na impormasyon tungkol sa uri ng memorya sa Output console
Dahil naipon lamang namin ang isang maliit na LED blinking program, ipinapakita sa buod ng memorya na natupok lamang namin ang 0.5% ng magagamit na puwang ng programa at 1.4% ng puwang ng Data.
Ang memorya ng PIC16F877 microcontroller ay karaniwang nahahati sa 3 uri:
Memory ng Programa: Naglalaman ang memorya na ito ng programa (na isinulat namin), pagkatapos naming sunugin ito. Bilang paalala, ang Program Counter ay nagpapatupad ng mga utos na nakaimbak sa memorya ng programa, sunud-sunod. Dahil nakasulat kami ng isang napakaliit na programa, natupok lamang namin ang 0.5% ng kabuuang puwang. Ito ay isang di-madaling matuyo memorya, nangangahulugang ang nakaimbak na data ay hindi mawawala pagkatapos ng pag-off ng kuryente.
Memory ng Data: Ito ang uri ng memorya ng RAM, na naglalaman ng isang espesyal na rehistro tulad ng SFR (Espesyal na Pagrehistro ng Pag-andar) na may kasamang timer ng Watchdog, Brown out Reset atbp at GPR (Pangkalahatang Layunin ng Layunin) na may kasamang TRIS at PORT atbp. Ang mga variable na nakaimbak sa Memory ng Data habang ang programa ay tinanggal matapos naming i-off ang MCU. Anumang variable na idineklara sa programa ay nasa loob ng memorya ng Data. Ito rin ay isang pabagu-bago ng memorya.
Data EEPROM (Electrically Erasable Programmable Read-Only Memory): Isang memorya na pinapayagan ang pag-iimbak ng mga variable bilang resulta ng pagsunog ng nakasulat na programa. Halimbawa kung magtalaga kami ng isang variable na "a" upang makatipid ng halagang 5 dito at maiimbak ito sa EEPROM hindi mawawala ang data na ito kahit na ang Kuryente ay naka-OFF. Ito ay isang di-madaling matuyo memorya.
Ang Program Memory at EEPROM ay mga di-pabagu-bago na alaala, at tinawag bilang Flash Memory o EEPROM.
ICSP (Sa Circuit Serial Programming):
Magpo-program kami ng aming PIC16F877A gamit ang pagpipiliang ICSP na magagamit sa aming MCU.
Ngayon, Ano ang ICSP?
Ang ICSP ay isang simpleng paraan na makakatulong sa amin na magprograma ng isang MCU kahit na mailagay ito sa loob ng aming board ng Project. Hindi kailangang magkaroon ng isang hiwalay na programmer board upang mai-program ang MCU, ang kailangan lamang namin ay 6 na koneksyon mula sa programmer ng PicKit3 sa aming board tulad ng sumusunod:
1 |
VPP (o MCLRn) |
Upang makapasok sa mode ng programa. |
2 |
Vcc |
Power Pin 11 o 32 |
3 |
GND |
Ground PIN 12 o 31 |
4 |
PGD - Data |
RB7. PIN40 |
5 |
PGC - Orasan |
RB6. PIN 39 |
6 |
PGM - paganahin ang LVP |
RB3 / RB4. Hindi sapilitan |
Ang ICSP ay angkop para sa lahat ng mga pakete ng PIC; ang kailangan lang namin ay hilahin ang limang pin na ito (ang ika-6 na pin na PGM ay opsyonal) mula sa MCU hanggang sa Pickit3 tulad ng ipinakita sa larawan sa ibaba.
Circuit at Hardware:
Ngayon, handa na ang aming HEX code at alam din namin kung paano ikonekta ang aming PicKit 3 sa aming PIC MCU gamit ang ICSP. Kaya, magpatuloy tayo at maghinang sa circuit sa tulong ng mga iskemat sa ibaba:
Sa circuit sa itaas Gumamit ako ng isang 7805 upang makontrol ang output 5V sa aking PIC MCU. Ang regulator na ito ay papatakbo ng isang 12V wall mart adapter. Ginagamit ang RED Led upang ipahiwatig kung pinapagana ang PIC. Ang konektor J1 ay ginagamit para sa programa ng ICSP. Ang mga pin ay konektado tulad ng tinalakay sa talahanayan sa itaas.
Ang unang pin MCLR ay dapat na gaganapin mataas sa tulong ng isang 10k bilang default. Pipigilan nito ang MCU mula sa pag-reset. Upang mai-reset ang MCU ang pin MCLR ay dapat na gaganapin sa lupa na maaaring gawin sa tulong ng switch SW1.
Ang LED ay konektado sa pin RB3 sa pamamagitan ng isang risistor ng halagang 560 ohms (Tingnan ang calculator ng risistor ng LED). Kung ang lahat ay maayos sa sandaling na-upload ang aming programa ang LED na ito ay dapat kumurap batay sa programa. Ang buong circuit ay itinayo sa Perfboard sa pamamagitan ng paghihinang ng lahat ng mga bahagi dito tulad ng nakikita mo sa imahe sa tuktok.
Nasusunog ang Code gamit ang MPLAB IPE:
Upang sunugin ang code, sundin ang mga hakbang sa ibaba:
- Ilunsad ang MPLAB IPE.
- Ikonekta ang isang dulo ng iyong PicKit 3 sa iyong PC at iba pang dulo sa iyong mga ICSP pin sa perf board.
- Kumonekta sa iyong aparato ng PIC sa pamamagitan ng pag-click sa pindutan ng kumonekta.
- Mag-browse para sa Blink HEX file at mag-click sa Program.
Kung, ang lahat napupunta sa nakaplano dapat mong makuha ang mensahe ng tagumpay sa screen. Suriin ang Code at Video sa ibaba para sa Buong pagpapakita at gamitin ang seksyon ng komento kung mayroon kang alinlangan.
Salamat!!!
Kilalanin natin ang Susunod na tutorial kung saan maglalaro kami ng higit pang mga LED at isang switch.