- అవసరమైన పదార్థాలు:
- ఫ్లాష్ మెమోరీ:
- ICSP (సర్క్యూట్ సీరియల్ ప్రోగ్రామింగ్లో):
- సర్క్యూట్ మరియు హార్డ్వేర్:
- MPLAB IPE ని ఉపయోగించి కోడ్ బర్నింగ్:
మా మునుపటి రెండు ట్యుటోరియల్లో, MPLABX మరియు XC8 కంపైలర్ ఉపయోగించి PIC తో ఎలా ప్రారంభించాలో చర్చించాము, మేము మా మొదటి LED బ్లింక్ ప్రోగ్రామ్ను PIC తో తయారు చేసాము మరియు దానిని అనుకరణ ద్వారా ధృవీకరించాము. ఇప్పుడు మేము హార్డ్వేర్పై చేయి చేసుకోవలసిన సమయం వచ్చింది. ఈ ట్యుటోరియల్లో పిఐసిని ఉపయోగించి ఎల్ఈడీని మెరిసేందుకు పెర్ఫ్ బోర్డులో చిన్న సర్క్యూట్ నిర్మిస్తాం. మేము ప్రోగ్రామ్ను మా PIC మైక్రోకంట్రోలర్కు డంప్ చేస్తాము మరియు LED బ్లింకింగ్ను ధృవీకరిస్తాము. PIC MCU ని ప్రోగ్రామ్ చేయడానికి మేము MPLAB IPE ని ఉపయోగిస్తాము.
అవసరమైన పదార్థాలు:
మా మునుపటి ట్యుటోరియల్లో చర్చించినట్లు మనకు ఈ క్రింది పదార్థాలు అవసరం:
- పిక్కిట్ 3
- PIC16F877A IC
- 40 - పిన్ ఐసి హోల్డర్
- పెర్ఫ్ బోర్డు
- 20 MHz క్రిస్టల్ OSC
- ఆడ మరియు మగ బెర్గ్ స్టిక్ పిన్స్
- 33 పిఎఫ్ కెపాసిటర్ - 2 సంఖ్యలు, 100 యుఎఫ్ మరియు 10 యుఎఫ్ క్యాప్.
- 680 ఓం, 10 కె మరియు 560 ఓహ్మ్ రెసిస్టర్
- ఏదైనా రంగు యొక్క LED
- 1 సోల్డరింగ్ కిట్
- ఐసి 7805
- 12 వి అడాప్టర్
మేము మైక్రోకంట్రోలర్ను "బర్న్" చేసినప్పుడు ఏమి జరుగుతుంది !!
కోడ్ను MCU లోకి అప్లోడ్ చేసి MCU లోపల పని చేయడం సాధారణ పద్ధతి.
లో, దీన్ని అర్థం చేసుకోవడానికి మా ప్రోగ్రామ్ను చూద్దాం
మనం చూడగలిగినట్లుగా ఈ కోడ్ సి-లాంగ్వేజ్లో వ్రాయబడింది మరియు ఇది మా MCU కి అర్ధం కాదు. ఇక్కడే మా కంపైలర్ యొక్క భాగం వస్తుంది; ఒక కంపైలర్ ఒక మెషీన్ రీడబుల్ రూపం ఈ కోడ్ మారుస్తుంది ఇది ఒకటి. ఈ మెషీన్ రీడబుల్ ఫారమ్ను HEX కోడ్ అంటారు, మేము సృష్టించే ప్రతి ప్రాజెక్ట్లో HEX కోడ్ ఉంటుంది, అది క్రింది డైరెక్టరీలో ఉంటుంది
** మీ స్థానం ** \ బ్లింక్ \ బ్లింక్.ఎక్స్ \ డిస్ట్ \ డిఫాల్ట్ \ ప్రొడక్షన్ \ బ్లింక్.ఎక్స్.ప్రొడక్షన్.హెక్స్
ఈ HEX కోడ్ ఎలా ఉందో తెలుసుకోవడానికి మీకు అంత ఆసక్తి ఉంటే, నోట్ప్యాడ్ను ఉపయోగించి దాన్ని తెరవండి. మా బ్లింక్ ప్రోగ్రామ్ కోసం, HEX కోడ్ క్రింది విధంగా కనిపిస్తుంది:
: 060000000A128A11FC2F18: 100FAA008316031386018312031386018312031324: 100FBA0086150D30F200AF30F100C130F000F00BB1: 100FCA00E42FF10BE42FF20BE42F0000831203133A: 100FDA0086110D30F200AF30F100C130F000F00B95: 100FEA00F42FF10BF42FF20BF42F0000DB2F830107: 060FFA000A128A11D52F36: 02400E007A3FF7: 00000001FF
దీన్ని ఎలా చదవాలి మరియు దానిని అసెంబ్లీ భాషలోకి ఎలా అర్థం చేసుకోవాలి మరియు రివర్స్ చేయాలి అనే దానిపై మార్గాలు ఉన్నాయి, అయితే ఇది ఈ ట్యుటోరియల్ పరిధిలో పూర్తిగా లేదు. కాబట్టి, క్లుప్తంగా చెప్పాలంటే; HEX అనేది మా కోడింగ్ యొక్క తుది సాఫ్ట్వేర్ ఫలితం మరియు MCU ని కాల్చడానికి MPLAB IPE చేత పంపబడుతుంది.
ఫ్లాష్ మెమోరీ:
హెక్స్ కోడ్ ఫ్లాష్ మెమరీ అనే ప్రదేశంలో MCU లోకి నిల్వ ఉంది. ఫ్లాష్ మెమరీ అంటే మా ప్రోగ్రామ్ MCU లోపల నిల్వ చేయబడుతుంది మరియు అక్కడ నుండి అమలు చేయబడుతుంది. మేము మా MPLABX లో ప్రోగ్రామ్ను కంపైల్ చేసిన తర్వాత, అవుట్పుట్ కన్సోల్లో మెమరీ రకం గురించి కింది సమాచారం మాకు లభిస్తుంది.
మేము ఒక చిన్న LED మెరిసే ప్రోగ్రామ్ను కంపైల్ చేసినందున, మెమరీ సారాంశం మేము అందుబాటులో ఉన్న ప్రోగ్రామ్ స్థలంలో 0.5% మరియు డేటా స్థలాన్ని 1.4% వినియోగించినట్లు చూపిస్తుంది.
PIC16F877 మైక్రోకంట్రోలర్ యొక్క మెమరీ ప్రాథమికంగా 3 రకాలుగా విభజించబడింది:
ప్రోగ్రామ్ మెమరీ: ఈ మెమరీలో ప్రోగ్రామ్ (మేము వ్రాసినది) ఉంది, మేము దానిని కాల్చిన తర్వాత. రిమైండర్గా, ప్రోగ్రామ్ కౌంటర్ ప్రోగ్రామ్ మెమరీలో నిల్వ చేసిన ఆదేశాలను ఒకదాని తరువాత ఒకటి అమలు చేస్తుంది. మేము చాలా చిన్న ప్రోగ్రామ్ వ్రాసినందున, మేము మొత్తం స్థలంలో 0.5% మాత్రమే వినియోగించాము. ఇది అస్థిర మెమరీ, అంటే పవర్ ఆఫ్ అయిన తర్వాత నిల్వ చేసిన డేటా కోల్పోదు.
డేటా మెమరీ: ఇది ర్యామ్ మెమరీ రకం, దీనిలో వాచ్డాగ్ టైమర్, బ్రౌన్ అవుట్ రీసెట్ మొదలైన SFR (స్పెషల్ ఫంక్షన్ రిజిస్టర్) మరియు TRIS మరియు PORT మొదలైన GPR (జనరల్ పర్పస్ రిజిస్టర్) వంటి ప్రత్యేక రిజిస్టర్లు ఉన్నాయి. నిల్వ చేయబడిన వేరియబుల్స్ మేము MCU ని ఆపివేసిన తర్వాత ప్రోగ్రామ్ సమయంలో డేటా మెమరీలో తొలగించబడతాయి. ప్రోగ్రామ్లో ప్రకటించిన ఏదైనా వేరియబుల్ డేటా మెమరీ లోపల ఉంటుంది. ఇది కూడా అస్థిర జ్ఞాపకం.
డేటా EEPROM (ఎలక్ట్రికల్లీ ఎరేజబుల్ ప్రోగ్రామబుల్ రీడ్-ఓన్లీ మెమరీ): వ్రాతపూర్వక ప్రోగ్రామ్ను బర్న్ చేయడం వల్ల వేరియబుల్స్ నిల్వ చేయడానికి అనుమతించే మెమరీ. ఉదాహరణకు, దానిలో 5 విలువను ఆదా చేసి, దానిని EEPROM లో భద్రపరచడానికి "a" అనే వేరియబుల్ను కేటాయించినట్లయితే, శక్తి ఆపివేయబడినప్పటికీ ఈ డేటా కోల్పోదు. ఇది అస్థిర జ్ఞాపకం.
ప్రోగ్రామ్ మెమరీ మరియు EEPROM అస్థిర జ్ఞాపకాలు, మరియు వీటిని ఫ్లాష్ మెమరీ లేదా EEPROM అని పిలుస్తారు.
ICSP (సర్క్యూట్ సీరియల్ ప్రోగ్రామింగ్లో):
మేము మా MCU లో అందుబాటులో ఉన్న ICSP ఎంపికను ఉపయోగించి మా PIC16F877A ను ప్రోగ్రామింగ్ చేస్తాము.
ఇప్పుడు, ICSP అంటే ఏమిటి?
ICSP అనేది మా ప్రాజెక్ట్ బోర్డ్ లోపల ఉంచిన తర్వాత కూడా MCU ని ప్రోగ్రామ్ చేయడానికి మాకు సహాయపడే ఒక సాధారణ మార్గం. MCU ని ప్రోగ్రామ్ చేయడానికి ప్రత్యేక ప్రోగ్రామర్ బోర్డ్ అవసరం లేదు, మనకు కావలసిందల్లా PicKit3 ప్రోగ్రామర్ నుండి మా బోర్డుకి 6 కనెక్షన్లు ఈ క్రింది విధంగా ఉన్నాయి:
1 |
VPP (లేదా MCLRn) |
ప్రోగ్రామింగ్ మోడ్లోకి ప్రవేశించడానికి. |
2 |
విసిసి |
పవర్ పిన్ 11 లేదా 32 |
3 |
GND |
గ్రౌండ్ పిన్ 12 లేదా 31 |
4 |
PGD - డేటా |
ఆర్బి 7. పిన్ 40 |
5 |
పిజిసి - గడియారం |
ఆర్బి 6. పిన్ 39 |
6 |
PGM - LVP ఎనేబుల్ |
RB3 / RB4. తప్పనిసరి కాదు |
ICSP అన్ని PIC ప్యాకేజీలకు అనుకూలంగా ఉంటుంది; దిగువ చిత్రంలో చూపిన విధంగా MCU నుండి Pickit3 కు ఈ ఐదు పిన్లను (6 వ పిన్ PGM ఐచ్ఛికం) బయటకు తీయడం మాకు అవసరం.
సర్క్యూట్ మరియు హార్డ్వేర్:
ఇప్పుడు, మా HEX కోడ్ సిద్ధంగా ఉంది మరియు ICSP ని ఉపయోగించి మా PICKit 3 ని మా PIC MCU కి ఎలా కనెక్ట్ చేయాలో కూడా మాకు తెలుసు. కాబట్టి, ఈ క్రింది స్కీమాటిక్స్ సహాయంతో సర్క్యూట్ను టంకం చేద్దాం:
పై సర్క్యూట్లో నేను నా పిఐసి ఎంసియుకు అవుట్పుట్ 5 విని నియంత్రించడానికి 7805 ను ఉపయోగించాను. ఈ రెగ్యులేటర్ 12 వి వాల్ మార్ట్ అడాప్టర్ ద్వారా శక్తిని పొందుతుంది. PIC శక్తితో ఉందో లేదో సూచించడానికి RED Led ఉపయోగించబడుతుంది. కనెక్టర్ J1 ICSP ప్రోగ్రామింగ్ కోసం ఉపయోగించబడుతుంది. పై పట్టికలో చర్చించినట్లు పిన్స్ అనుసంధానించబడి ఉన్నాయి.
మొదటి పిన్ MCLR అప్రమేయంగా 10k సహాయంతో అధికంగా ఉండాలి. ఇది MCU ను రీసెట్ చేయకుండా నిరోధిస్తుంది. MCU ని రీసెట్ చేయడానికి పిన్ MCLR ను తప్పనిసరిగా నేలమీద ఉంచాలి, ఇది SW1 స్విచ్ సహాయంతో చేయవచ్చు.
విలువ 560 ఓంల రెసిస్టర్ ద్వారా పిన్ RB3 కి LED అనుసంధానించబడి ఉంది (LED రెసిస్టర్ కాలిక్యులేటర్ చూడండి). మా ప్రోగ్రామ్ అప్లోడ్ అయిన తర్వాత ప్రతిదీ సరిగ్గా ఉంటే ఈ ఎల్ఈడీ ప్రోగ్రామ్ ఆధారంగా మెరిసిపోతుంది. ఎగువ చిత్రంలో మీరు చూడగలిగినట్లుగా దానిపై ఉన్న అన్ని భాగాలను టంకం వేయడం ద్వారా హోల్ సర్క్యూట్ పెర్ఫ్బోర్డ్లో నిర్మించబడింది.
MPLAB IPE ని ఉపయోగించి కోడ్ బర్నింగ్:
కోడ్ను బర్న్ చేయడానికి, క్రింది దశలను అనుసరించండి:
- MPLAB IPE ని ప్రారంభించండి.
- మీ పిక్కిట్ 3 యొక్క ఒక చివరను మీ పిసికి మరియు మరొక చివరను పెర్ఫ్ బోర్డ్లోని మీ ఐసిఎస్పి పిన్లకు కనెక్ట్ చేయండి.
- కనెక్ట్ బటన్ పై క్లిక్ చేయడం ద్వారా మీ PIC పరికరానికి కనెక్ట్ అవ్వండి.
- బ్లింక్ HEX ఫైల్ కోసం బ్రౌజ్ చేయండి మరియు ప్రోగ్రామ్ పై క్లిక్ చేయండి.
ఒకవేళ, ప్రతిదీ ప్రణాళిక ప్రకారం జరిగితే మీరు తెరపై విజయ సందేశాన్ని పొందాలి. పూర్తి ప్రదర్శన కోసం దిగువ కోడ్ మరియు వీడియోను తనిఖీ చేయండి మరియు మీకు ఏమైనా సందేహం ఉంటే వ్యాఖ్య విభాగాన్ని ఉపయోగించండి.
ధన్యవాదాలు!!!
తదుపరి ట్యుటోరియల్లో కలుద్దాం, అక్కడ మనం ఎక్కువ ఎల్ఈడీలు మరియు స్విచ్తో ప్లే చేస్తాము.