- I2C కమ్యూనికేషన్ ప్రోటోకాల్ అంటే ఏమిటి?
- I2C కమ్యూనికేషన్ ఎలా పనిచేస్తుంది?
- I2C కమ్యూనికేషన్ను ఎక్కడ ఉపయోగించాలి?
- XC8 కంపైలర్ ఉపయోగించి PIC16F877a తో I2C
- I2C హెడర్ ఫైళ్ళను ఉపయోగించి ప్రోగ్రామింగ్:
- ప్రోటీస్ అనుకరణ:
పిఐసి మైక్రోకంట్రోలర్లు ఎంబెడెడ్ ప్రాజెక్టుల కోసం మైక్రోచిప్ అందించిన శక్తివంతమైన వేదిక, దాని బహుముఖ స్వభావం అనేక అనువర్తనాలలో మార్గాలను కనుగొనటానికి దీనిని చేసింది మరియు దశ ఇంకా కొనసాగుతోంది. మీరు మా PIC ట్యుటోరియల్లను అనుసరిస్తుంటే, మేము ఇప్పటికే చాలా ప్రాథమిక విషయాల నుండి ప్రారంభించి PIC మైక్రోకంట్రోలర్పై విస్తృత శ్రేణి ట్యుటోరియల్లను కవర్ చేశామని మీరు గమనించవచ్చు. ఇప్పటి నుండి, కమ్యూనికేషన్ పోర్టల్ వంటి మరింత ఆసక్తికరమైన విషయాలలోకి ప్రవేశించగల ప్రాథమికాలను మేము కవర్ చేసాము.
ఎంబెడెడ్ అనువర్తనాల యొక్క విస్తారమైన వ్యవస్థలో, మైక్రోకంట్రోలర్ అన్ని కార్యకలాపాలను స్వయంగా చేయలేడు. కొంత దశలో సమాచారాన్ని పంచుకోవడానికి ఇతర పరికరాలతో కమ్యూనికేట్ చేయవలసి ఉంటుంది, ఈ సమాచారాన్ని పంచుకోవడానికి అనేక రకాలైన కమ్యూనికేషన్ ప్రోటోకాల్లు ఉన్నాయి, అయితే ఎక్కువగా ఉపయోగించినవి USART, IIC, SPI మరియు CAN. ప్రతి కమ్యూనికేషన్ ప్రోటోకాల్ దాని స్వంత ప్రయోజనం మరియు ప్రతికూలతను కలిగి ఉంటుంది. ఈ ట్యుటోరియల్లో మనం నేర్చుకోబోయేది కనుక ప్రస్తుతం ఐఐసి భాగంపై దృష్టి పెడదాం.
I2C కమ్యూనికేషన్ ప్రోటోకాల్ అంటే ఏమిటి?
IIC అనే పదం “ ఇంటర్ ఇంటిగ్రేటెడ్ సర్క్యూట్స్ ”. ఇది సాధారణంగా I2C లేదా I స్క్వేర్డ్ సి లేదా కొన్ని ప్రదేశాలలో 2-వైర్ ఇంటర్ఫేస్ ప్రోటోకాల్ (TWI) గా సూచించబడుతుంది, అయితే ఇవన్నీ ఒకే విధంగా ఉంటాయి. I2C అనేది సింక్రోనస్ కమ్యూనికేషన్ ప్రోటోకాల్ అర్థం, సమాచారాన్ని పంచుకునే రెండు పరికరాలు తప్పనిసరిగా సాధారణ గడియార సంకేతాన్ని పంచుకోవాలి. సమాచారాన్ని పంచుకోవడానికి దీనికి రెండు వైర్లు మాత్రమే ఉన్నాయి, వీటిలో ఒకటి కాక్ సిగ్నల్ కోసం ఉపయోగించబడుతుంది మరియు మరొకటి డేటాను పంపడానికి మరియు స్వీకరించడానికి ఉపయోగించబడుతుంది.
I2C కమ్యూనికేషన్ ఎలా పనిచేస్తుంది?
I2C కమ్యూనికేషన్ను మొదట ఫిలిప్స్ పరిచయం చేశారు. ఇంతకు ముందు చెప్పినట్లుగా దీనికి రెండు వైర్లు ఉన్నాయి, ఈ రెండు వైర్లు రెండు పరికరాల్లో అనుసంధానించబడతాయి. ఇక్కడ ఒక పరికరాన్ని మాస్టర్ అని, మరొక పరికరాన్ని బానిస అని పిలుస్తారు. కమ్యూనికేషన్ మరియు మాస్టర్ మరియు స్లేవ్ ఇద్దరి మధ్య ఎల్లప్పుడూ జరగాలి. I2C కమ్యూనికేషన్ యొక్క ప్రయోజనం ఏమిటంటే, ఒకటి కంటే ఎక్కువ బానిసలను మాస్టర్కు కనెక్ట్ చేయవచ్చు.
సీరియల్ క్లాక్ (ఎస్సీఎల్) మరియు సీరియల్ డేటా (ఎస్డీఏ) అనే ఈ రెండు వైర్ల ద్వారా పూర్తి కమ్యూనికేషన్ జరుగుతుంది.
సీరియల్ క్లాక్ (ఎస్సీఎల్): మాస్టర్ సృష్టించిన క్లాక్ సిగ్నల్ను బానిసతో పంచుకుంటుంది
సీరియల్ డేటా (SDA): మాస్టర్ మరియు బానిస మధ్య మరియు నుండి డేటాను పంపుతుంది.
ఏ సమయంలోనైనా మాస్టర్ మాత్రమే కమ్యూనికేషన్ను ప్రారంభించగలుగుతారు. బస్సులో ఒకటి కంటే ఎక్కువ బానిసలు ఉన్నందున, మాస్టర్ ప్రతి బానిసను వేరే చిరునామాను ఉపయోగించి సూచించాలి. ప్రసంగించినప్పుడు, నిర్దిష్ట చిరునామాతో ఉన్న సాల్వ్ మాత్రమే సమాచారంతో తిరిగి ప్రత్యుత్తరం ఇస్తుంది, మరికొందరు నిష్క్రమించేటప్పుడు. ఈ విధంగా మనం బహుళ పరికరాలతో కమ్యూనికేట్ చేయడానికి ఒకే బస్సును ఉపయోగించవచ్చు.
I2C కమ్యూనికేషన్ను ఎక్కడ ఉపయోగించాలి?
I2C కమ్యూనికేషన్ స్వల్ప దూర కమ్యూనికేషన్ కోసం మాత్రమే ఉపయోగించబడుతుంది. ఇది స్మార్ట్గా చేయడానికి సమకాలీకరించబడిన గడియారపు పల్స్ ఉన్నందున ఇది ఖచ్చితంగా కొంతవరకు నమ్మదగినది. ఈ ప్రోటోకాల్ ప్రధానంగా సెన్సార్ లేదా ఇతర పరికరాలతో కమ్యూనికేట్ చేయడానికి ఉపయోగించబడుతుంది, ఇది మాస్టర్కు సమాచారాన్ని పంపాలి. మైక్రోకంట్రోలర్ కనీసం అనేక వైర్లను ఉపయోగించి అనేక ఇతర బానిస మాడ్యూళ్ళతో కమ్యూనికేట్ చేయవలసి వచ్చినప్పుడు ఇది చాలా సులభమైంది. మీరు సుదూర కమ్యూనికేషన్ కోసం చూస్తున్నట్లయితే మీరు RS232 ను ప్రయత్నించాలి మరియు మీరు మరింత నమ్మదగిన కమ్యూనికేషన్ కోసం చూస్తున్నట్లయితే మీరు SPI ప్రోటోకాల్ను ప్రయత్నించాలి.
XC8 కంపైలర్ ఉపయోగించి PIC16F877a తో I2C
తగినంత పరిచయాలు, దానిలోకి ప్రవేశించి, I2C కమ్యూనికేషన్ చేయడానికి మైక్రోకంట్రోలర్ను ఎలా ఉపయోగించవచ్చో తెలుసుకుందాం. ఈ ట్యుటోరియల్ XC8 కంపైలర్ను ఉపయోగించి PIC16F877a లోని I2C గురించి మాత్రమే మాట్లాడుతుందని మేము స్పష్టం చేయడానికి ముందు, ఈ ప్రక్రియ ఇతర మైక్రోకంట్రోలర్లకు సమానంగా ఉంటుంది, అయితే స్వల్ప మార్పులు అవసరం కావచ్చు. PIC18F సిరీస్ వంటి అధునాతన మైక్రోకంట్రోలర్ల కోసం, కంపైలర్ I2C లక్షణాలను ఉపయోగించడానికి అంతర్నిర్మితంగా కొన్ని లైబ్రరీని కలిగి ఉండవచ్చని గుర్తుంచుకోండి, కానీ PIC16F877A కోసం అలాంటిదేమీ లేదు కాబట్టి మన స్వంతదానిని నిర్మించుకుందాం. ఇక్కడ వివరించిన లైబ్రరీ దిగువన డౌన్లోడ్ కోసం హెడర్ ఫైల్గా ఇవ్వబడుతుంది, ఇది ఇతర I2C పరికరాలతో కమ్యూనికేట్ చేయడానికి PIC16F877A కోసం ఉపయోగించబడుతుంది.
ఎప్పటిలాగే ఏదైనా ప్రారంభించడానికి ఉత్తమమైన ప్రదేశం మా డేటాషీట్. డేటాషీట్లో I2C గురించి వివరాల కోసం చూడండి మరియు ఏ రిజిస్టర్లను కాన్ఫిగర్ చేయాలో తనిఖీ చేయండి. డేటాషీట్ మీ కోసం ఇప్పటికే చేసినందున నేను వివరంగా వివరించబోతున్నాను. మరింత క్రింద నేను హెడర్ ఫైల్లో ఉన్న విభిన్న విధులను మరియు ప్రోగ్రామ్లో వాటి బాధ్యతను వివరించబోతున్నాను.
I2C_Initialize () ను రద్దు చేయండి
మేము I2C ప్రోటోకాల్ను ఉపయోగించబోతున్నామని మైక్రోకంట్రోలర్కు చెప్పడానికి ప్రారంభ ఫంక్షన్ ఉపయోగించబడుతుంది. SSPCON మరియు SSPCON2 రిజిస్టర్లో అవసరమైన బిట్లను సెట్ చేయడం ద్వారా ఇది చేయవచ్చు. మొదటి దశ IIC పిన్లను ఇన్పుట్ పిన్లుగా ప్రకటించడం, ఇక్కడ పిన్లు RC3 మరియు RC4 లను I2C కమ్యూనికేషన్ కోసం ఉపయోగించాలి కాబట్టి మేము వాటిని ఇన్పుట్ పిన్లుగా ప్రకటిస్తాము. తరువాత మనం MSSP కంట్రోల్ రిజిస్టర్ అయిన SSPCON మరియు SSPCON2 ను సెట్ చేయాలి. మేము FOSC / (4 * (SSPADD + 1)) యొక్క క్లాక్ ఫ్రీక్వెన్సీతో IIC మాస్టర్ మోడ్లో PIC ని నిర్వహిస్తున్నాము. నిర్దిష్ట రిజిస్టర్ ఆ విధంగా ఎందుకు సెట్ చేయబడిందో అర్థం చేసుకోవడానికి దిగువ వ్యాఖ్య పంక్తులలో పేర్కొన్న డేటాషీట్ యొక్క పేజీ సంఖ్యలను చూడండి.
కాబట్టి తరువాత మనం క్లాక్ ఫ్రీక్వెన్సీని సెట్ చేయాలి, వేర్వేరు అనువర్తనాల కోసం క్లాక్ ఫ్రీక్వెన్సీ మారవచ్చు, అందువల్ల మేము వినియోగదారు నుండి వేరియబుల్ feq_k ద్వారా ఎంపిక చేసుకుంటాము మరియు SSPADD రిజిస్టర్ సెట్ చేయడానికి మా సూత్రాలలో ఉపయోగిస్తాము.
void I2C_Initialize (const unsigned long feq_K) // IIC ని మాస్టర్గా ప్రారంభించండి { TRISC3 = 1; TRISC4 = 1; // SDA మరియు SCL పిన్లను ఇన్పుట్ పిన్లుగా సెట్ చేయండి SSPCON = 0b00101000; // pg84 / 234 SSPCON2 = 0b00000000; // pg85 / 234 SSPADD = (_XTAL_FREQ / (4 * feq_K * 100%)) - 1; // క్లాక్ స్పీడ్ సెట్టింగ్ pg99 / 234 SSPSTAT = 0b00000000; // pg83 / 234 }
I2C_Hold () ను రద్దు చేయండి
తదుపరి ముఖ్యమైన ఫంక్షన్ I2C_hold ఫంక్షన్, ఇది ప్రస్తుత I2C ఆపరేషన్ పూర్తయ్యే వరకు పరికరం యొక్క అమలును ఉంచడానికి ఉపయోగించబడుతుంది. ఏదైనా కొత్త ఆపరేషన్ ప్రారంభించే ముందు I2C ఆపరేషన్లు నిర్వహించాలా అని మేము తనిఖీ చేయాలి. SSPSTAT మరియు SSPCON2 రిజిస్టర్ను తనిఖీ చేయడం ద్వారా ఇది చేయవచ్చు. SSPSTAT లో I2C బస్సు యొక్క స్థితి గురించి సమాచారం ఉంది.
ప్రోగ్రామ్ “మరియు” మరియు “లేదా” ఆపరేటర్ను కలిగి ఉన్నందున ఇది కొంచెం క్లిష్టంగా అనిపించవచ్చు. మీరు దానిని విచ్ఛిన్నం చేసినప్పుడు
SSPSTAT & 0b00000100 SSPCON2 & 0b00011111
SSPSTAT లో 2 వ బిట్ సున్నా అని మరియు అదేవిధంగా 0 నుండి 4 వరకు బిట్స్ SSPCON2 లో సున్నా అని మేము నిర్ధారించుకుంటున్నాము. ఫలితం సున్నా అని తనిఖీ చేయడానికి మేము ఇవన్నీ కలుపుతాము. ఫలితం సున్నా అయితే ప్రోగ్రామ్ ముందుకు సాగుతుంది, కాకపోతే అది సున్నా వచ్చేవరకు అక్కడే ఉంటుంది, ఎందుకంటే ఇది కాసేపు లూప్లో ఉపయోగించబడుతుంది.
శూన్య I2C_Hold () { అయితే ((SSPCON2 & 0b00011111) - (SSPSTAT & 0b00000100%); // ఐఐసి పురోగతిలో లేదని నిర్ధారించుకోవడానికి రిజిస్టర్లలో దీన్ని తనిఖీ చేయండి }
I2C_Begin () మరియు శూన్యమైన I2C_End () ను రద్దు చేయండి
ప్రతిసారీ మేము I2C బస్సును ఉపయోగించి ఏదైనా డేటాను వ్రాసేటప్పుడు లేదా చదివేటప్పుడు మనం ప్రారంభించాలి మరియు I2C కనెక్షన్ను ముగించాలి. I2C కమ్యూనికేషన్ను ప్రారంభించడానికి మనం SEN బిట్ను సెట్ చేయాలి మరియు కమ్యూనికేషన్ను ముగించడానికి మనం PEN స్టేటస్ బిట్ను సెట్ చేయాలి. ఈ బిట్స్లో దేనినైనా టోగుల్ చేయడానికి ముందు, పైన చర్చించిన విధంగా I2C_Hold ఫంక్షన్ను ఉపయోగించడం ద్వారా I2C బస్సు బిజీగా ఉందో లేదో కూడా తనిఖీ చేయాలి.
శూన్యమైన I2C_Begin () { I2C_Hold (); // ప్రోగ్రామ్ను పట్టుకోండి I2C బిజీగా ఉంది SEN = 1; // IIC ప్రారంభించండి pg85 / 234 } శూన్యమైన I2C_End () { I2C_Hold (); // ప్రోగ్రామ్ను పట్టుకోండి I2C బిజీగా ఉంది PEN = 1; // ముగింపు IIC pg85 / 234 }
I2C_Write () ను రద్దు చేయండి
మాస్టర్ మాడ్యూల్ నుండి సాల్వ్ మాడ్యూల్కు ఏదైనా డేటాను పంపడానికి రైట్ ఫంక్షన్ ఉపయోగించబడుతుంది. ఈ ఫంక్షన్ సాధారణంగా I2C ప్రారంభ ఫంక్షన్ తర్వాత ఉపయోగించబడుతుంది మరియు తరువాత I2C ఎండ్ ఫంక్షన్ ఉంటుంది. IIC బస్సుకు వ్రాయవలసిన డేటా వేరియబుల్ డేటా ద్వారా పంపబడుతుంది. ఈ డేటాను I2C బస్సు ద్వారా పంపడానికి SSPBUF బఫర్ రిజిస్టర్లో లోడ్ చేయబడుతుంది.
సాధారణంగా డేటాను వ్రాయడానికి ముందు చిరునామా వ్రాయబడుతుంది కాబట్టి మీరు రెండుసార్లు వ్రాసే ఫంక్షన్ను ఉపయోగించాల్సి ఉంటుంది, ఒకసారి చిరునామాను సెట్ చేయడానికి మరియు మరొకసారి అసలు డేటాను పంపడానికి.
శూన్యమైన I2C_ రైట్ (సంతకం చేయని డేటా) { I2C_Hold (); // ప్రోగ్రామ్ను పట్టుకోండి I2C బిజీగా ఉంది SSPBUF = డేటా; // pg82 / 234 }
సంతకం చేయని చిన్న I2C_Read ()
మనం తెలుసుకోవలసిన చివరి ఫంక్షన్ I2C_Read ఫంక్షన్. ఈ ఫంక్షన్ ప్రస్తుతం I2C బస్సులో ఉన్న డేటాను చదవడానికి ఉపయోగించబడుతుంది. బస్సుకు కొంత విలువ రాయడానికి బానిసను అడిగిన తరువాత ఇది ఉపయోగించబడుతుంది. అందుకున్న విలువ SSPBUF లో ఉంటుంది, ఆ విలువను మన ఆపరేషన్ కోసం ఏదైనా వేరియబుల్కు బదిలీ చేయవచ్చు.
I2C కమ్యూనికేషన్ సమయంలో, మాస్టర్ కోరిన డేటాను పంపిన తరువాత బానిస మరొక బిట్ను పంపుతుంది, ఇది రసీదు బిట్, కమ్యూనికేషన్ విజయవంతమైందని నిర్ధారించుకోవడానికి ఈ బిట్ను మాస్టర్ కూడా తనిఖీ చేయాలి. రసీదు కోసం ACKDT బిట్ను తనిఖీ చేసిన తరువాత ACKEN బిట్ను సెట్ చేయడం ద్వారా దీన్ని ప్రారంభించాలి.
సంతకం చేయని చిన్న I2C_ రీడ్ (సంతకం చేయని షార్ట్ అక్) { సంతకం చేయని చిన్న ఇన్కమింగ్; I2C_ హోల్డ్ (); RCEN = 1; I2C_ హోల్డ్ (); ఇన్కమింగ్ = SSPBUF; // SSPBUF I2C_Hold () లో సేవ్ చేసిన డేటాను పొందండి ; ACKDT = (అక్)? 0: 1; // అక్ బిట్ ACKEN = 1 అందుకున్నారో లేదో తనిఖీ చేయండి ; // pg 85/234 రిటర్న్ ఇన్కమింగ్; }
అంటే, ఈ విధులు I2C కమ్యూనికేషన్ను సెటప్ చేయడానికి మరియు పరికరం నుండి డేటాను వ్రాయడానికి లేదా చదవడానికి సరిపోతాయి. I2C కమ్యూనికేషన్ చేయగల అనేక ఇతర కార్యాచరణలు ఉన్నాయని కూడా గమనించండి, కాని సరళత కొరకు మేము వాటిని ఇక్కడ చర్చించడం లేదు. యొక్క పూర్తి పనిని తెలుసుకోవడానికి మీరు ఎల్లప్పుడూ డేటాషీట్ను సూచించవచ్చు
PIC16F877A I2C కమ్యూనికేషన్ కోసం హెడర్ ఫైల్తో పూర్తి కోడ్ను లింక్ నుండి డౌన్లోడ్ చేసుకోవచ్చు.
I2C హెడర్ ఫైళ్ళను ఉపయోగించి ప్రోగ్రామింగ్:
ఇప్పుడు మేము ఒక I2C కమ్యూనికేషన్ ఎలా పనిచేస్తుందో మరియు దాని కోసం సృష్టించిన హెడర్ ఫైల్ను ఎలా ఉపయోగించవచ్చో నేర్చుకున్నాము, ఒక సాధారణ ప్రోగ్రామ్ను తయారు చేద్దాం, దీనిలో మనం హెడర్ ఫైల్ని ఉపయోగిస్తాము మరియు I2C పంక్తులకు కొన్ని విలువలను వ్రాస్తాము. మేము అప్పుడు ఈ ప్రోగ్రామ్ను అనుకరిస్తాము మరియు ఈ విలువలు బస్సులో వ్రాయబడుతున్నాయో లేదో తనిఖీ చేస్తాము.
ఎప్పటిలాగే ప్రోగ్రామ్ కాన్ఫిగరేషన్ బిట్లను సెటప్ చేయడం మరియు క్లాక్ ఫ్రీక్వెన్సీని 20 MHz కు సెట్ చేయడం ద్వారా క్రింద చూపిన విధంగా ప్రారంభమవుతుంది
#pragma config FOSC = HS // ఓసిలేటర్ ఎంపిక బిట్స్ (HS ఓసిలేటర్) #pragma config WDTE = OFF // వాచ్డాగ్ టైమర్ బిట్ను ప్రారంభించండి (WDT నిలిపివేయబడింది) #pragma config PWRTE = ON // పవర్-అప్ టైమర్ ఎనేబుల్ బిట్ (PWRT ప్రారంభించబడింది) # pragma config బోరెన్ = ON // బ్రౌన్ అవుట్ రీసెట్ బిట్ ప్రారంభించు (బోర్ ఎనేబుల్) #pragma config LVP OFF = // తక్కువ వోల్టేజ్ (సింగిల్-సప్లై) లో-సర్క్యూట్ సీరియల్ ప్రోగ్రామింగ్ బిట్ ప్రారంభించు (RB3 డిజిటల్ I / O, HV ఉంది MCLR ప్రోగ్రామింగ్ కోసం ఉపయోగిస్తారు తప్పక) #pragma config CPD OFF = // డేటా EEPROM మెమరీ కోడ్ రక్షణ బిట్ (డేటా EEPROM కోడ్ రక్షణ ఆఫ్) #pragma config wrt OFF = // ఫ్లాష్ ప్రోగ్రామ్ మెమరీ వ్రాయండి బిట్స్ (వ్రాయండి రక్షణ ఆఫ్ ప్రారంభించండి; అన్ని కార్యక్రమం మెమరీ EECON నియంత్రణ ద్వారా వ్రాయవచ్చు) # ప్రాగ్మా కాన్ఫిగర్ CP = OFF // ఫ్లాష్ ప్రోగ్రామ్ మెమరీ కోడ్ ప్రొటెక్షన్ బిట్ (కోడ్ ప్రొటెక్షన్ ఆఫ్) # _XTAL_FREQ 20000000 ని నిర్వచించండి
తదుపరి దశ మనం ఇప్పుడే చర్చించిన హెడర్ ఫైల్ను జోడించడం. హెడర్ ఫైల్కు PIC16F877a_I2C.h అని పేరు పెట్టారు మరియు మేము పైన చర్చించిన లింక్ నుండి డౌన్లోడ్ చేసుకోవచ్చు. మీ ప్రాజెక్ట్ జాబితా యొక్క హెడర్ ఫైల్లో హెడర్ ఫైల్ జోడించబడిందని నిర్ధారించుకోండి, మీ ప్రాజెక్ట్ ఫైల్ నిర్మాణం ఇలా ఉండాలి
మీ ప్రాజెక్ట్ ఫైల్కు హెడర్ ఫైల్ జతచేయబడిందని నిర్ధారించుకున్న తరువాత హెడర్ ఫైల్ను ప్రధాన సి ఫైల్లో చేర్చండి
# చేర్చండి
అయితే లూప్ లోపల మేము I2C కమ్యూనికేషన్ I2C బస్సుకు కొన్ని యాదృచ్ఛిక విలువలను వ్రాసి, ఆపై I2C కమ్యూనికేషన్ను ముగించాము. నేను ఎంచుకున్న యాదృచ్ఛిక విలువలు D0, 88 మరియు FF. మీకు కావలసిన విలువలను మీరు ఇన్పుట్ చేయవచ్చు. కానీ ఆ విలువలను గుర్తుంచుకోండి, ఎందుకంటే మేము వాటిని మా అనుకరణలో ధృవీకరిస్తాము.
(1) { I2C_Begin (); I2C_Write (0xD0); I2C_Write (0x88); I2C_Write (0xFF); I2C_End (); __ ఆలస్యం_ఎంఎస్ (1000); }
పూర్తి కార్యక్రమం పేజీ దిగువన చూడవచ్చు, మీరు ఆ ఉపయోగించడానికి లేదా ఇక్కడ నుండి ప్రోగ్రామ్ యొక్క పూర్తి జిప్ ఫైల్ డౌన్లోడ్ చేసుకోవచ్చు. ప్రోగ్రామ్ పొందిన తరువాత దాన్ని కంపైల్ చేసి అనుకరణకు సిద్ధంగా ఉండండి.
ప్రోటీస్ అనుకరణ:
ప్రోటీయస్ I2C డీబగ్గర్ అని పిలువబడే ఒక మంచి పరికరాన్ని కలిగి ఉంది, ఇది I2C బస్సులోని డేటాను చదవడానికి ఉపయోగపడుతుంది, కాబట్టి దీనిని ఉపయోగించి ఒక సర్క్యూట్ను నిర్మించి, డేటా విజయవంతంగా వ్రాయబడుతుందో లేదో తనిఖీ చేద్దాం. పూర్తి సర్క్యూట్ రేఖాచిత్రం క్రింద చూపబడింది
మైక్రోకంట్రోలర్పై డబుల్ క్లిక్ చేయడం ద్వారా మా ప్రోగ్రామ్ ద్వారా ఉత్పత్తి చేయబడిన హెక్స్ ఫైల్ను లోడ్ చేయండి. అప్పుడు ప్రోగ్రామ్ను అనుకరించండి. I2C బస్సు గురించి మొత్తం సమాచారాన్ని ప్రదర్శించే విండో పాపప్ను మీరు గమనించవచ్చు. మా ప్రోగ్రామ్ కోసం విండో క్రింద చూపబడింది.
మీరు వ్రాసిన డేటాను నిశితంగా పరిశీలిస్తే, అవి మా ప్రోగ్రామ్లో మేము వ్రాసినవి కూడా ఉన్నాయని మీరు గమనించవచ్చు. విలువలు D0, 88 మరియు FF. ప్రతి 1 సెకనుకు విలువలు వ్రాయబడతాయి కాబట్టి క్రింద చూపిన విధంగా సమయం కూడా నవీకరించబడుతుంది. నీలం బాణం అది మాస్టర్ నుండి బానిస వరకు వ్రాయబడిందని సూచిస్తుంది, లేకపోతే అది వ్యతిరేక దిశలో చూపబడుతుంది. పంపబడుతున్న డేటా యొక్క దగ్గరి పరిశీలన క్రింద చూపబడింది.
ఇది I2C ఏమి చేయగలదో ఒక సంగ్రహావలోకనం, ఇది బహుళ పరికరాలకు డేటాను చదవగలదు మరియు వ్రాయగలదు. I2C ప్రోటోకాల్తో పనిచేసే వివిధ మాడ్యూళ్ళను ఇంటర్ఫేస్ చేయడం ద్వారా మా రాబోయే ట్యుటోరియల్లలో I2C గురించి మరింత కవర్ చేస్తాము.
మీరు ప్రాజెక్ట్ అర్థం చేసుకున్నారని మరియు దాని నుండి ఉపయోగకరమైనదాన్ని నేర్చుకున్నారని ఆశిస్తున్నాము. మీకు ఏవైనా సందేహాలు ఉంటే వాటిని క్రింది వ్యాఖ్య విభాగంలో పోస్ట్ చేయండి లేదా సాంకేతిక సహాయం కోసం ఫోరమ్లను ఉపయోగించండి.
పూర్తి కోడ్ క్రింద ఇవ్వబడింది; మీరు ఇక్కడ నుండి అన్ని కోడ్లతో హెడర్ ఫైల్లను డౌన్లోడ్ చేసుకోవచ్చు.