Arduino I2C బస్సు గురించి

ఆర్డునో ఐ 2 సి బస్సు

కాన్ Arduino పెద్ద సంఖ్యలో ప్రాజెక్టులను సృష్టించగలదు మీరు Hwlibre చదివితే మీరు చూసినట్లు, మైక్రోకంట్రోలర్‌ను సరళమైన రీతిలో ప్రోగ్రామింగ్ చేస్తుంది. కానీ ఈ ఉచిత హార్డ్‌వేర్ బోర్డు యొక్క అనలాగ్ మరియు డిజిటల్ కనెక్షన్‌లలో, పిడబ్ల్యుఎం కనెక్షన్‌ల యొక్క నిజమైన సంభావ్యత, ఎస్‌పిఐ, సీరియల్ పోర్ట్ యొక్క ఆర్‌ఎక్స్ మరియు టిఎక్స్ పిన్‌లు లేదా చాలా మంది ప్రారంభకులకు ఇప్పటికీ తెలియనివి కొన్ని ఉన్నాయి. సొంత I2C బస్సు. అందువల్ల, ఈ ఎంట్రీతో మీరు I2C నుండి మీకు కావలసిన ప్రతిదాన్ని కనీసం తెలుసుకోవచ్చు.

కాన్ I2C బస్సు Arduino బోర్డుతో కమ్యూనికేట్ చేయడానికి ఈ రకమైన ప్రోటోకాల్ ఉన్న అనేక మూడవ పార్టీ పరికరాలను మీరు కనెక్ట్ చేయవచ్చు మరియు ఉపయోగించవచ్చు. వాటి మధ్య, మీరు ఈ ఫిలిప్స్ ఆవిష్కరణకు యాక్సిలెరోమీటర్లు, డిస్ప్లేలు, కౌంటర్, కంపాస్ మరియు మరెన్నో ఇంటిగ్రేటెడ్ సర్క్యూట్లను కనెక్ట్ చేయవచ్చు.

I2C అంటే ఏమిటి?

I2C ఇంటర్-ఇంటిగ్రేటెడ్ సర్క్యూట్‌ను సూచిస్తుంది, అంటే, ఇంటర్-ఇంటిగ్రేటెడ్ సర్క్యూట్. ఇది 1982 లో ఫిలిప్స్ సెమీకండక్టర్స్ సంస్థ అభివృద్ధి చేసిన సీరియల్ డేటా కమ్యూనికేషన్ బస్సు, ఈ విభాగాన్ని వదిలించుకున్న తరువాత నేడు ఎన్ఎక్స్పి సెమీకండక్టర్స్. మొదట ఈ బ్రాండ్ యొక్క టెలివిజన్ల కోసం, అనేక అంతర్గత చిప్‌లను సరళమైన మార్గంలో కమ్యూనికేట్ చేయడానికి సృష్టించబడింది. 1990 నుండి I2C వ్యాపించింది మరియు దీనిని చాలా మంది తయారీదారులు ఉపయోగిస్తున్నారు.

ప్రస్తుతం డజన్ల కొద్దీ చిప్‌మేకర్లు ఉపయోగిస్తున్నారు బహుళ ఫంక్షన్ల కోసం. ఆర్డునో బోర్డుల కోసం మైక్రోకంట్రోలర్‌ల సృష్టికర్త అట్మెల్, లైసెన్సింగ్ ప్రయోజనాల కోసం టిడబ్ల్యుఐ (టూ వైర్డ్ ఇంటర్‌ఫేస్) హోదాను ప్రవేశపెట్టారు, అయితే ఇది ఐ 2 సికి సమానంగా ఉంటుంది. కానీ 2006 లో, అసలు పేటెంట్ గడువు ముగిసింది మరియు ఇకపై కాపీరైట్‌కు లోబడి ఉండదు, కాబట్టి I2C అనే పదాన్ని తిరిగి ఉపయోగించారు (లోగో మాత్రమే రక్షించబడుతోంది, కానీ ఈ పదాన్ని అమలు చేయడం లేదా ఉపయోగించడం పరిమితం కాదు).

I2C బస్సు సాంకేతిక వివరాలు

ఐ 2 సి బస్సు

El I2C బస్సు పరిశ్రమ ప్రమాణంగా మారింది, మరియు ఆర్డునో దీనిని అమలు చేసింది అవసరమైన పెరిఫెరల్స్‌తో కమ్యూనికేషన్ కోసం. దాని ఆపరేషన్ కోసం దీనికి రెండు పంక్తులు లేదా కేబుల్స్ మాత్రమే అవసరం, ఒకటి క్లాక్ సిగ్నల్ (సిఎల్‌కె) మరియు మరొకటి సీరియల్ డేటా (ఎస్‌డిఎ) పంపడం. SPI బస్సుతో పోలిస్తే ఇతర సమాచార మార్పిడితో పోలిస్తే ఇది ప్రయోజనకరంగా ఉంటుంది, అయినప్పటికీ అదనపు సర్క్యూట్రీ కారణంగా దాని ఆపరేషన్ కొంత క్లిష్టంగా ఉంటుంది.

ఈ బస్సులో దీనికి కనెక్ట్ చేయబడిన ప్రతి పరికరానికి చిరునామా ఉంటుంది ఈ పరికరాలను ఒక్కొక్కటిగా యాక్సెస్ చేయడానికి ఉపయోగిస్తారు. ఈ చిరునామా హార్డ్‌వేర్ ద్వారా పరిష్కరించబడింది, చివరి 3 బిట్‌లను జంపర్స్ లేదా స్విచ్ డిఐపిల ద్వారా సవరించుకుంటుంది, అయినప్పటికీ ఇది సాఫ్ట్‌వేర్ ద్వారా కూడా చేయవచ్చు. ప్రతి పరికరానికి ప్రత్యేకమైన చిరునామా ఉంటుంది, అయినప్పటికీ వాటిలో చాలా వరకు ఒకే చిరునామా ఉండవచ్చు మరియు విభేదాలను నివారించడానికి లేదా వీలైతే దాన్ని మార్చడానికి ద్వితీయ బస్సును ఉపయోగించడం అవసరం.

అదనంగా, ఐ 2 సి బస్సులో a మాస్టర్-స్లేవ్ రకం నిర్మాణం, అంటే, మాస్టర్-బానిస. దీని అర్థం కమ్యూనికేషన్ ఒక మాస్టర్ పరికరం ద్వారా ప్రారంభించినప్పుడు, అది దాని బానిసల నుండి డేటాను పంపగలదు లేదా స్వీకరించగలదు. బానిసలు కమ్యూనికేషన్ ప్రారంభించలేరు, మాస్టర్ మాత్రమే చేయగలరు మరియు బానిసలు మాస్టర్ జోక్యం లేకుండా నేరుగా ఒకరితో ఒకరు మాట్లాడలేరు.

మీకు ఉంటే బస్సులో చాలా మంది ఉపాధ్యాయులు, ఒకేసారి ఉపాధ్యాయుడిగా మాత్రమే పనిచేయగలరు. కానీ అది విలువైనది కాదు, ఎందుకంటే ఉపాధ్యాయుని మార్పు అధిక సంక్లిష్టతను కోరుతుంది, కాబట్టి ఇది తరచూ కాదు.

గుర్తుంచుకోండి బస్సులోని అన్ని పరికరాలను సమకాలీకరించడానికి మాస్టర్ క్లాక్ సిగ్నల్‌ను అందిస్తుంది. ప్రతి బానిస వారి స్వంత గడియారం కలిగి ఉండవలసిన అవసరాన్ని అది తొలగిస్తుంది.

I2C బస్ ప్రోటోకాల్ సరఫరా వోల్టేజ్ లైన్లలో (Vcc) పుల్-అప్ రెసిస్టర్‌ల వాడకాన్ని కూడా fore హించింది, అయితే ఈ రెసిస్టర్లు సాధారణంగా Arduino తో ఉపయోగించబడవు ప్రోగ్రామింగ్ లైబ్రరీల కారణంగా పుల్-అప్ వైర్ 20-30 k విలువలతో అంతర్గత వాటిని సక్రియం చేస్తుంది. కొన్ని ప్రాజెక్టులకు ఇది చాలా మృదువైనది కావచ్చు, కాబట్టి సిగ్నల్ యొక్క పెరుగుతున్న అంచులు నెమ్మదిగా ఉంటాయి, కాబట్టి తక్కువ వేగం మరియు తక్కువ కమ్యూనికేషన్ దూరాలను ఉపయోగించవచ్చు. దాన్ని సరిచేయడానికి మీరు 1k నుండి 4k7 కు బాహ్య పుల్-అప్ రెసిస్టర్‌లను సెట్ చేయాల్సి ఉంటుంది.

సిగ్నల్

I2C సిగ్నల్

La కమ్యూనికేషన్ ఫ్రేమ్ వీటిలో I2C బస్ సిగ్నల్ బిట్స్ లేదా స్టేట్స్ కలిగి ఉంటుంది (ఆర్డునోలో ఉపయోగించినవి, I2C ప్రమాణం ఇతరులను అనుమతిస్తుంది కాబట్టి):

  • 8 బిట్స్, వాటిలో 7 చిరునామా దాని నుండి డేటాను పంపడానికి లేదా స్వీకరించడానికి మీరు యాక్సెస్ చేయదలిచిన బానిస పరికరం. 7 బిట్లతో, 128 వరకు వివిధ చిరునామాలను సృష్టించవచ్చు, కాబట్టి 128 పరికరాలను సిద్ధాంతపరంగా యాక్సెస్ చేయవచ్చు, అయితే 112 మాత్రమే యాక్సెస్ చేయవచ్చు, ఎందుకంటే 16 ప్రత్యేక ఉపయోగాల కోసం ప్రత్యేకించబడ్డాయి. మరియు మీకు కావాలంటే సూచించే అదనపు బిట్ పంపండి లేదా స్వీకరించండి బానిస పరికర సమాచారం.
  • కూడా ఉంది ధ్రువీకరణ బిట్, ఇది చురుకుగా లేకపోతే కమ్యూనికేషన్ చెల్లుబాటు కాదు.
  • అప్పుడు డేటా బైట్లు వారు బానిసల ద్వారా పంపాలని లేదా స్వీకరించాలని కోరుకుంటారు. ప్రతి బైట్, మీకు తెలిసినట్లుగా, 8-బిట్లతో రూపొందించబడింది. పంపిన లేదా స్వీకరించిన ప్రతి 8-బిట్ లేదా 1 బైట్ డేటాకు, అదనంగా 18 బిట్స్ ధ్రువీకరణ, చిరునామా మొదలైనవి అవసరమవుతాయని గమనించండి, అంటే బస్సు వేగంతో చాలా పరిమితం.
  • యొక్క చివరి బిట్ ధ్రువీకరణ కమ్యూనికేషన్ యొక్క.

అదనంగా, కోసం గడియార పౌన frequency పున్యం ప్రసారాలు ప్రమాణంగా 100 Mhz, 400 Mhz వద్ద వేగవంతమైన మోడ్ ఉన్నప్పటికీ.

I2C బస్సు యొక్క ప్రయోజనాలు మరియు అప్రయోజనాలు

ది ప్రయోజనం అవి:

  • సరళత రెండు పంక్తులను మాత్రమే ఉపయోగించడం ద్వారా.
  • ఇది ఉంది సిగ్నల్ వచ్చిందో లేదో తెలుసుకోవడానికి యంత్రాంగాలు ఇతర కమ్యూనికేషన్ ప్రోటోకాల్‌లతో పోలిస్తే.

ది అప్రయోజనాలు అవి:

  • వేగం చాలా తక్కువ ప్రసారం.
  • ఇది పూర్తి డ్యూప్లెక్స్ కాదుఅంటే, మీరు ఒకేసారి పంపలేరు మరియు స్వీకరించలేరు.
  • సమానత్వాన్ని ఉపయోగించదు అందుకున్న డేటా బిట్స్ సరైనవేనా అని తెలుసుకోవడానికి ఇతర రకాల ధృవీకరణ విధానం.

Arduino పై I2C

ఆర్డునో ఐ 2 సి బస్సు

En ఆర్డునో, మోడల్‌ను బట్టి, ఈ I2C బస్సును ఉపయోగించటానికి ఎనేబుల్ చేయగల పిన్స్ మారుతూ ఉంటాయి. ఉదాహరణకి:

  • Arduino UNO, నానో, మినీ ప్రో: A4 ను SDA (డేటా) మరియు A5 SCK (గడియారం) కోసం ఉపయోగిస్తారు.
  • ఆర్డునో మెగా: SDA కి పిన్ 20 మరియు SCK కి 21.

దీన్ని ఉపయోగించడానికి మీరు తప్పక గుర్తుంచుకోండి లైబ్రరీని ఉపయోగించుకోండి వైర్.హెచ్ మీ Arduino IDE కోడ్‌ల కోసం, ఇతరులు ఉన్నప్పటికీ I2C y i2cdevlib. మీరు ఈ లైబ్రరీల పత్రాలను లేదా ప్రోగ్రామ్ చేయబడే సంకేతాలను పొందటానికి మీకు ఆసక్తి ఉన్న ప్రాజెక్టులపై మా కథనాలను చదవవచ్చు.

పరికరం I2C తో ఉపయోగించడానికి దాని చిరునామాను ఎలా తెలుసుకోవాలి?

చివరి హెచ్చరిక, మరియు మీరు యూరోపియన్, జపనీస్ లేదా అమెరికన్ తయారీదారుల నుండి IC లను కొనుగోలు చేసినప్పుడు, మీరు దిశను సూచించండి మీరు పరికరం కోసం ఉపయోగించాలి. మరోవైపు, చైనీయులు కొన్నిసార్లు దీనిని వివరించరు లేదా అది సరైనది కాదు, కాబట్టి ఇది పనిచేయదు. మీ స్కెచ్‌లో మీరు ఏ దిశను సూచించాలో తెలుసుకోవడానికి చిరునామా స్కానర్‌తో దీన్ని సులభంగా పరిష్కరించవచ్చు.

La arduino సంఘం దీన్ని సృష్టించింది చిరునామాను స్కాన్ చేసి గుర్తించడానికి కోడ్ సరళమైన మార్గంలో. నేను మీకు ఇక్కడ కోడ్ చూపించినప్పటికీ:

#include "Wire.h"
 
extern "C" { 
    #include "utility/twi.h"
}
 
void scanI2CBus(byte from_addr, byte to_addr, void(*callback)(byte address, byte result) ) 
{
  byte rc;
  byte data = 0;
  for( byte addr = from_addr; addr <= to_addr; addr++ ) {
    rc = twi_writeTo(addr, &data, 0, 1, 0);
    callback( addr, rc );
  }
}
 
void scanFunc( byte addr, byte result ) {
  Serial.print("addr: ");
  Serial.print(addr,DEC);
  Serial.print( (result==0) ? " Encontrado!":"       ");
  Serial.print( (addr%4) ? "\t":"\n");
}
 
 
const byte start_address = 8;
const byte end_address = 119;
 
void setup()
{
    Wire.begin();
 
    Serial.begin(9600);
    Serial.print("Escaneando bus I2C...");
    scanI2CBus( start_address, end_address, scanFunc );
    Serial.println("\nTerminado");
}
 
void loop() 
{
    delay(1000);
}


వ్యాఖ్యానించిన మొదటి వ్యక్తి అవ్వండి

మీ వ్యాఖ్యను ఇవ్వండి

మీ ఇమెయిల్ చిరునామా ప్రచురితమైన కాదు. లు గుర్తించబడతాయి గుర్తించబడతాయి *

*

*

  1. డేటాకు బాధ్యత: మిగ్యుల్ ఏంజెల్ గాటన్
  2. డేటా యొక్క ఉద్దేశ్యం: కంట్రోల్ స్పామ్, వ్యాఖ్య నిర్వహణ.
  3. చట్టబద్ధత: మీ సమ్మతి
  4. డేటా యొక్క కమ్యూనికేషన్: డేటా చట్టపరమైన బాధ్యత ద్వారా తప్ప మూడవ పార్టీలకు తెలియజేయబడదు.
  5. డేటా నిల్వ: ఆక్సెంటస్ నెట్‌వర్క్స్ (EU) హోస్ట్ చేసిన డేటాబేస్
  6. హక్కులు: ఎప్పుడైనా మీరు మీ సమాచారాన్ని పరిమితం చేయవచ్చు, తిరిగి పొందవచ్చు మరియు తొలగించవచ్చు.