ዝርዝር ሁኔታ:

TCA9548A I2C Multiplexer ሞዱል - ከአርዱዲኖ እና ኖድ ኤምሲዩ ጋር - 11 ደረጃዎች
TCA9548A I2C Multiplexer ሞዱል - ከአርዱዲኖ እና ኖድ ኤምሲዩ ጋር - 11 ደረጃዎች

ቪዲዮ: TCA9548A I2C Multiplexer ሞዱል - ከአርዱዲኖ እና ኖድ ኤምሲዩ ጋር - 11 ደረጃዎች

ቪዲዮ: TCA9548A I2C Multiplexer ሞዱል - ከአርዱዲኖ እና ኖድ ኤምሲዩ ጋር - 11 ደረጃዎች
ቪዲዮ: Solving I2C Address Conflicts - TCA9548A I2C Multiplexer 2024, ሰኔ
Anonim
Image
Image

ዳሳሾቹ ቋሚ ወይም ተመሳሳይ የ I2C አድራሻ እንዳላቸው ለመገንዘብ ለአርዱኖዎ ሁለት ፣ ሶስት ወይም ከዚያ በላይ የ I2C ዳሳሾችን ወደ ሽቦ ማገናኘት ያለብዎት ሁኔታ ውስጥ ገብተው ያውቃሉ? በተጨማሪም ፣ በተመሳሳይ SDA/SCL ፒኖች ላይ ተመሳሳይ አድራሻ ያላቸው ሁለት መሣሪያዎች ሊኖሯቸው አይችልም!

ስለዚህ ፣ አማራጮችዎ ምንድናቸው? ሁሉም በአንድ አውቶቡስ ላይ እርስ በእርስ እንዲነጋገሩ ለማድረግ ሁሉንም በ TCA9548A 1-to-8 I2C ባለ ብዙ ማከፋፈያ ላይ ያድርጓቸው! የ TCA9548A Breakout ከእነሱ ጋር መገናኘትን ቀላል የሚያደርግ ተመሳሳይ አድራሻ ካላቸው ከብዙ I2C መሣሪያዎች ጋር ግንኙነትን ያስችላል።

ደረጃ 1 የሃርድዌር አስፈላጊነት

የተሸፈኑ ርዕሶች
የተሸፈኑ ርዕሶች

ለዚህ ትምህርት እኛ ያስፈልገናል-

- የዳቦ ሰሌዳ

- TCA9548A I2C Multiplexer

- አርዱዲኖ ኡኖ/ናኖ ምቹ የሆነ ሁሉ

- NodeMCU

- ጥቂት 0.91 እና 0.96 I2C OLED ማሳያዎች

- ዝላይ ኬብሎች ፣ እና

- የዩኤስቢ ገመድ ኮዱን ለመስቀል

ደረጃ 2 - የተሸፈኑ ርዕሶች

የ I2C ቴክኖሎጂን መሠረታዊ ነገሮች በመረዳት ውይይታችንን እንጀምራለን

ከዚያ ስለ TCA9548A ባለ ብዙ ማባዣ እና ጌታው እና ባሪያው የ I2C ቴክኖሎጂን በመጠቀም መረጃን እንዴት እንደሚልክ እና እንደሚቀበል እንማራለን ከዚያም አርዱዲኖን እና ኖድኤምሲኡን በመጠቀም በፕሮጀክታችን ውስጥ ባለ ብዙ ማዞሪያን እንዴት መርሃግብር ማድረግ እና መጠቀም እንደምንችል እንመለከታለን ፣ በፍጥነት አሳይሻለሁ የ 8 I2C OLED ማሳያዎችን በመጠቀም ማሳያ ማሳያ እና በመጨረሻም የ TCA9548A ባለብዙ ባለ ጥቅምን እና ጉዳቶችን በመወያየት ትምህርቱን እንጨርሳለን

ደረጃ 3 - የ I2C አውቶቡስ መሠረታዊ ነገሮች

የ I2C አውቶቡስ መሰረታዊ ነገሮች
የ I2C አውቶቡስ መሰረታዊ ነገሮች
የ I2C አውቶቡስ መሰረታዊ ነገሮች
የ I2C አውቶቡስ መሰረታዊ ነገሮች
የ I2C አውቶቡስ መሰረታዊ ነገሮች
የ I2C አውቶቡስ መሰረታዊ ነገሮች

Inter-integrated Circuit I-squared-C (I²C) ወይም I2C በበርካታ ማቀነባበሪያዎች እና ዳሳሾች መካከል ለግንኙነት የሚያገለግል ባለሁለት የሽቦ አውቶቡስ ቴክኖሎጂ (በደንብ 4 ገመዶችም ቪሲሲ እና መሬት ስለሚፈልጉ) ነው።

ሁለቱ ሽቦዎች -

* ኤስዲኤ - ተከታታይ ውሂብ (የውሂብ መስመር) እና

* SCL - ተከታታይ ሰዓት (የሰዓት መስመር)

ያስታውሱ ፣ እነዚህ ሁለቱም መስመሮች ‹የተመሳሰሉ› ‹idirectional›››››››››››››››› እና ‹ከተቃዋሚዎች ጋር ተጎትተዋል›።

የ I2C አውቶቡስ ቴክኖሎጂ በመጀመሪያ በ 80 ዎቹ መጀመሪያ በፊሊፕስ ሴሚኮንዳክተሮች የተቀየሰ ሲሆን በተመሳሳይ የወረዳ ሰሌዳ ላይ በሚኖሩ አካላት መካከል ቀላል ግንኙነት እንዲኖር ለማድረግ ነው።

በ I2C አማካኝነት ብዙ ባሪያዎችን ከአንድ ነጠላ ጌታ (እንደ SPI) ጋር ማገናኘት ወይም ነጠላ ወይም ብዙ ባሪያዎችን የሚቆጣጠሩ ብዙ ጌቶች ሊኖሩዎት ይችላሉ። ሁለቱም ጌቶች እና ባሪያዎች መረጃን ማስተላለፍ እና መቀበል ይችላሉ። ስለዚህ ፣ በ I2C አውቶቡስ ላይ ያለው መሣሪያ ከእነዚህ አራት ግዛቶች በአንዱ ውስጥ ሊሆን ይችላል-

* ማስተር ማስተላለፍ - ማስተር መስቀለኛ መንገድ ለባሪያ መረጃን እየላከ ነው* ማስተር ይቀበል - ዋና መስቀለኛ መንገድ ከባሪያ መረጃን እየተቀበለ ነው

* የባሪያ ማስተላለፊያ - የባሪያ መስቀለኛ መንገድ ለጌታው መረጃ እየላከ ነው

* ባሪያ ይቀበላል - የባሪያ መስቀለኛ መንገድ ከጌታው መረጃ እየተቀበለ ነው

I2C 'አጭር ርቀት' 'ተከታታይ የግንኙነት ፕሮቶኮል' ነው ፣ ስለዚህ ውሂቡ በነጠላ ሽቦ ወይም በ SDA መስመር ላይ ‹ቢት-ቢት› ይተላለፋል። የቢቶች ውፅዓት በጌታው እና በባሪያው መካከል በሰዓት ምልክት ‹ተጋርቷል› ከሚለው የቢቶች ናሙና ጋር ተመሳስሏል። የሰዓት ምልክት ሁል ጊዜ በጌታው ቁጥጥር ይደረግበታል። መምህሩ ሰዓቱን ያመነጫል እና ከባሪያዎች ጋር መግባባት ይጀምራል።

ስለዚህ ፣ ለማጠቃለል>

ያገለገሉ ሽቦዎች ብዛት - 2

የተመሳሰለ ወይም ያልተመሳሰለ - የተመሳሰለ

ተከታታይ ወይም ትይዩ: ተከታታይ

የሰዓት ምልክት የሚቆጣጠረው በ: ማስተር መስቀለኛ መንገድ

ጥቅም ላይ የዋሉ ቮልቴጅዎች: +5 V ወይም +3.3 V

ከፍተኛው የጌቶች ብዛት: ያልተገደበ

ከፍተኛው የባሮች ብዛት - 1008

ከፍተኛ ፍጥነት: መደበኛ ሞድ = 100 ኪቢ / ሴ

ፈጣን ሁነታ = 400 ኪቢ / ሴ

ከፍተኛ ፍጥነት ሁነታ = 3.4 ሜባበሰ

እጅግ በጣም ፈጣን ሁኔታ = 5 ሜባበሰ

ደረጃ 4 - TCA9548A I2C ባለብዙ ሞደር ሞዱል

TCA9548A I2C Multiplexer ሞዱል
TCA9548A I2C Multiplexer ሞዱል
TCA9548A I2C Multiplexer ሞዱል
TCA9548A I2C Multiplexer ሞዱል
TCA9548A I2C Multiplexer ሞዱል
TCA9548A I2C Multiplexer ሞዱል

TCA9548A ስምንት የተለያዩ I2C መሣሪያዎች በአንድ አስተናጋጅ I2C አውቶቡስ እንዲቆጣጠሩ የሚያስችል ስምንት-ሰርጥ (ባለሁለት አቅጣጫ) I2C ባለ ብዙ ማሰራጫ ነው። የ I2C ዳሳሾችን ወደ SCn / SDn ባለ ብዙ አውቶቡሶች ማገናኘት ብቻ ያስፈልግዎታል። ለምሳሌ ፣ በአንድ መተግበሪያ ውስጥ ስምንት ተመሳሳይ የ OLED ማሳያዎች የሚያስፈልጉ ከሆነ ፣ ከእያንዳንዱ ማሳያ አንዱ በእያንዳንዱ በእነዚህ ሰርጦች 0-7 ላይ ሊገናኝ ይችላል።

Multiplexer ከቪን ፣ ከ GND ፣ ከ SDA እና ከማይክሮ-ተቆጣጣሪው SCL መስመሮች ጋር ይገናኛል። የመለያያ ቦርድ VIN ን ከ 1.65v ወደ 5.5v ይቀበላል። ሁለቱም የግብዓት ኤስዲኤ እና የ SCL መስመሮች በ 10 ኬ መጎተቻ ተከላካይ በኩል ከቪሲሲ ጋር ተገናኝተዋል (የመጎተት ተከላካዩ መጠን በ I2C መስመሮች ላይ ባለው የአቅም መጠን ይወሰናል)። ባለብዙ ማሰራጫው ሁለቱንም መደበኛ (100 kHz) እና ፈጣን (400 kHz) I2C ፕሮቶኮሎችን ይደግፋል። የ TCA9548A ሁሉም የ I/O ፒኖች 5 ቮልት ታጋሽ ናቸው እንዲሁም ከከፍተኛ ወደ ዝቅተኛ ወይም ዝቅተኛ ወደ ከፍተኛ ቮልቴጅ ለመተርጎም ሊያገለግሉ ይችላሉ።

ምንም እንኳን ውጥረቶቹ ተመሳሳይ ቢሆኑም በሁሉም የ TCA9548A ሰርጦች ላይ የሚጎትቱ መቆጣጠሪያዎችን ማድረጉ ጥሩ ሀሳብ ነው። ይህ የሆነበት ምክንያት በውስጣዊው የ NMOS መቀየሪያ ምክንያት ነው። ከፍተኛ ቮልቴጅን በደንብ አያስተላልፍም, በሌላ በኩል ደግሞ ዝቅተኛ ቮልቴጅዎችን በደንብ ያስተላልፋል. TCA9548A ለቮልቲንግ ትርጉምም ጥቅም ላይ ሊውል ይችላል ፣ ይህም በእያንዳንዱ የኤስ.ሲ.ኤን./ኤስዲኤን ጥንድ ላይ የተለያዩ የአውቶቡስ ቮልቴጅን መጠቀም በመፍቀድ 1.8-ቪ ፣ 2.5-ቪ ወይም 3.3-ቪ ክፍሎች ከ 5-ቪ ክፍሎች ጋር መገናኘት ይችላሉ። አውቶቡሱን ወደ ጌታው እና ለእያንዳንዱ የባሪያ ሰርጥ ወደሚፈለገው voltage ልቴጅ ለመሳብ ይህ የውጭ መጎተቻ መቆጣጠሪያዎችን በመጠቀም ነው።

ማይክሮ መቆጣጠሪያው የአውቶቡስ ግጭትን ወይም ሌላ ተገቢ ያልሆነ አሠራር ካወቀ TCA9548A ዝቅተኛ ወደ RESET ፒን በማረጋገጥ እንደገና ሊጀመር ይችላል።

ደረጃ 5

ምስል
ምስል
ምስል
ምስል
ምስል
ምስል

TCA9548 ለእያንዳንዱ ማይክሮሶፍት ባሪያ ንዑስ አውቶቡስ ልዩ ሰርጥ በመመደብ አንድ ዓይነት ማይክሮ መቆጣጠሪያ እስከ ‹64 ዳሳሾች ›ድረስ ሁሉም ተመሳሳይ ወይም የተለየ የ I2C አድራሻ እንዲገናኝ ያስችለዋል።

ከ 2 ሽቦዎች በላይ መረጃን ወደ ብዙ መሣሪያዎች ስለ መላክ ስንነጋገር ከዚያ እነሱን ለመቅረፍ መንገድ እንፈልጋለን። ፖስታ ቤቱ በአንድ መንገድ ላይ እንደመጣ እና የፖስታ ጥቅሎችን ወደ ተለያዩ ቤቶች እንደወረደ ተመሳሳይ ነው ምክንያቱም እነሱ የተፃፉባቸው የተለያዩ አድራሻዎች ስላሉ።

64 ተመሳሳይ የ I2C አድራሻ ክፍሎች 64 ን ለመቆጣጠር በ 0x70-0x77 አድራሻዎች ላይ በአንድ ላይ የተገናኙት የእነዚህ ባለብዙ ሜትሮች ከፍተኛው 8 ላይ ሊኖርዎት ይችላል። ሦስቱን የአድራሻ ነጥቦችን A0 ፣ A1 እና A2 ን ከ VIN ጋር በማገናኘት የተለያዩ የአድራሻዎችን ጥምረት ማግኘት ይችላሉ። የ TCA9548A አድራሻ ባይት እንደዚህ ይመስላል። የመጀመሪያዎቹ 7-ቢት ተጣምረው የባሪያውን አድራሻ ይመሰርታሉ። የባሪያው አድራሻ የመጨረሻው ቢት የሚከናወንበትን ቀዶ ጥገና (ማንበብ ወይም መጻፍ) ይገልጻል። ከፍተኛ (1) ሲሆን ፣ ንባብ ተመርጧል ፣ ዝቅተኛ (0) ደግሞ የመፃፍ ክዋኔን ይመርጣል።

ደረጃ 6 - ጌታው እንዴት እንደሚልክ እና መረጃን እንደሚቀበል

ጌታው እንዴት እንደሚልክ እና መረጃን እንደሚቀበል
ጌታው እንዴት እንደሚልክ እና መረጃን እንደሚቀበል
ጌታው እንዴት እንደሚልክ እና መረጃን እንደሚቀበል
ጌታው እንዴት እንደሚልክ እና መረጃን እንደሚቀበል

የሚከተለው ለጌታ የባሪያ መሣሪያን ለመድረስ አጠቃላይ የአሠራር ሂደት ነው-

1. አንድ ጌታ ለባሪያ (መፃፍ) መረጃ ለመላክ ከፈለገ

-ማስተር-አስተላላፊ የ START ሁኔታን ይልካል እና የባሪያ ተቀባዩ አድራሻዎች እና R/W ወደ 0 ተቀናብረዋል

-ማስተር-አስተላላፊው ባሪያው ዝግጁ መሆኑን ሲያውቅ በ ‹8-ቢት መቆጣጠሪያ መመዝገቢያዎች› ውስጥ መረጃን ለባሪያ ተቀባዩ ይልካል።

-ማስተር ማስተላለፊያ በ STOP ሁኔታ ዝውውሩን ያቋርጣል

2. አንድ ጌታ ከባሪያ መረጃ ለመቀበል ወይም ለማንበብ ከፈለገ (ይነበባል)

-ማስተር-ተቀባዩ የ START ሁኔታን ይልካል እና የባሪያ ተቀባዩ አድራሻዎች እና R/W ወደ 1 ተቀናብሯል

-ማስተር-ተቀባዩ የተጠየቀውን መዝገብ ለባሪያ አስተላላፊ እንዲያነብ ይልካል

-ማስተር-ተቀባዩ ከባሪያ አስተላላፊው መረጃ ይቀበላል

- ሁሉም ባይት ከተቀበሉ በኋላ ማስተር ግንኙነቶችን ለማቆም እና አውቶቡሱን ለመልቀቅ NACK ን ለባሪያው ይልካል

- ማስተር-ተቀባዩ በ STOP ሁኔታ ዝውውሩን ያቋርጣል

STOP ሁኔታ ከተከሰተ በኋላ ሁለቱም SDA እና SCL መስመሮች ከፍ ካሉ አውቶቡስ እንደ ስራ ፈት ይቆጠራል።

ደረጃ 7 ኮድ

ኮድ
ኮድ

አሁን ፣ Int ኮዱ የ “ሽቦ” ቤተ -መጽሐፍትን በማካተት እና የብዙ -ነጥብ አድራሻን በመወሰን ይጀምራል።

#"Wire.h" ን ያካትቱ

#"U8glib.h" ን ያካትቱ

#መግለፅ MUX_Address 0x70 // TCA9548A የኢኮደር አድራሻዎች

ከዚያ እኛ ልንገናኝበት የምንፈልገውን ወደብ መምረጥ እና ይህንን ተግባር በመጠቀም በላዩ ላይ ያለውን ውሂብ መላክ ያስፈልገናል-

ባዶ ይምረጡI2CChannels (uint8_t i) {

(i> 7) ከተመለሰ;

Wire.begin ማስተላለፊያ (MUX_Address);

Wire.write (1 << i);

Wire.endTransmission ();

}

በመቀጠል “u8g.begin ();” ን በመደወል በማዋቀሪያው ክፍል ውስጥ ማሳያውን እናስጀምራለን። ከ MUX “tcaselect (i)” ጋር ለተያያዘ ለእያንዳንዱ ማሳያ።

አንዴ ከተነሳን በኋላ ተግባሩን “tcaselect (i) ፤” ብለን በመጥራት የፈለግነውን ማድረግ እንችላለን። ባለ ብዙ ባለአውቶቡስ ዋጋ “i” እና ከዚያ መረጃውን እና ሰዓቱን በዚሁ መሠረት ይልካል።

ደረጃ 8: I2C ስካነር

I2C ስካነር
I2C ስካነር

ስለ የእርስዎ I2C ጋሻ የመሣሪያ አድራሻ እርግጠኛ ካልሆኑ የመሣሪያዎን ሄክስክ አድራሻ ለማግኘት የተያያዘውን ‹I2C ስካነር› ኮድ ያሂዱ። ወደ አርዱዲኖ ሲጫን ፣ ሥዕሉ ምላሽ እየሰጡ ያሉትን አድራሻዎች በማሳየት የ I2C አውታረ መረብን ይቃኛል።

ደረጃ 9 ሽቦ እና ማሳያ

ሽቦ እና ማሳያ
ሽቦ እና ማሳያ
ሽቦ እና ማሳያ
ሽቦ እና ማሳያ

ሽቦ:

ባለብዙ ማሰራጫውን ከኖድኤምሲዩ ቦርድ ጋር በማገናኘት እንጀምር። አገናኝ ፦

ቪን ወደ 5 ቪ (ወይም 3.3 ቪ)

GND ወደ መሬት

ኤስዲኤ ወደ D2 እና

SCL ወደ D1 ፒኖች በቅደም ተከተል

ለአርዱዲኖ ቦርድ ይገናኙ

ቪን ወደ 5 ቪ (ወይም 3.3 ቪ)

GND ወደ መሬት

ኤስዲኤ ወደ A4 እና

SCL ወደ A5 ፒኖች በቅደም ተከተል

አንዴ MUX ከማይክሮ መቆጣጠሪያ ጋር ከተያያዘ ፣ ዳሳሾቹን ከ SCn / SDn ጥንዶች ጋር ማገናኘት ብቻ ያስፈልግዎታል።

አሁን ፣ እኔ 8 OLED ማሳያዎችን ከ TCA9548A ባለብዙ ማያያዣ ጋር ያገናኘሁበትን ይህንን ፈጣን ማሳያ ይመልከቱ። እነዚህ ማሳያዎች የ I2C ግንኙነትን ሲጠቀሙ ፣ 2 ፒኖችን ብቻ በመጠቀም ከአርዱዲኖ ጋር ይገናኛሉ።

ደረጃ 10 ጥቅሞች እና ጉዳቶች

ጥቅሞች እና ጉዳቶች
ጥቅሞች እና ጉዳቶች

ጥቅሞች

* ግንኙነት ሁለት የአውቶቡስ መስመሮችን (ሽቦዎችን) ብቻ ይፈልጋል

* ቀላል የጌታ/የባሪያ ግንኙነቶች በሁሉም አካላት መካከል አሉ

* እንደ RS232 ያሉ ጥብቅ የባውድ ተመን መስፈርቶች የሉም ፣ ጌታው የአውቶቡስ ሰዓት ያመነጫል

* ሃርድዌር ከ UART ዎች ያነሰ የተወሳሰበ ነው

* በርካታ ጌቶችን እና በርካታ ባሪያዎችን ይደግፋል

* ACK/NACK ቢት እያንዳንዱ ክፈፍ በተሳካ ሁኔታ እንደተላለፈ ማረጋገጫ ይሰጣል

* I2C የግሌግሌ እና የግጭት ማወቂያን የሚሰጥ ‹እውነተኛ ባለብዙ ማስተር አውቶቡስ› ነው

* ከአውቶቡሱ ጋር የተገናኘ እያንዳንዱ መሣሪያ በልዩ አድራሻ ሶፍትዌር ሊደረስበት የሚችል ነው

* አብዛኛዎቹ የ I2C መሣሪያዎች በ 100kHz ወይም 400kHz መገናኘት ይችላሉ

* I²C ቀላልነት እና ዝቅተኛ የማምረቻ ዋጋ ከፍጥነት የበለጠ አስፈላጊ ለሆኑ ተጓዳኝ አካላት ተገቢ ነው

* የታወቀ እና በሰፊው ጥቅም ላይ የዋለ ፕሮቶኮል

ጉዳቶች

* ከ SPI ይልቅ ቀርፋፋ የውሂብ ዝውውር መጠን

* የውሂብ ፍሬም መጠን በ 8 ቢት ብቻ የተገደበ ነው

* ከ SPI ቴክኖሎጂ የበለጠ ለመተግበር የበለጠ የተወሳሰበ ሃርድዌር

የሚመከር: