آردوينو I2C بس بابت سڀ ڪجهه

آردوينو I2C بس

سان آردوينو وڏي تعداد ۾ منصوبا ٺاهي سگھي ٿو جئين توھان ڏٺو آھي ته توھان ھنلبي کي پڙھيو آھي ، مائڪرو ڪنٽرولر کي سادي طريقي سان پروگرام ڪرڻ. پر هن مفت هارڊويئر بورڊ جي اينالاگ ۽ ڊجيٽل ڪنيڪشنن مان ، ڪجهه اهڙا آهن جيڪي اڃا تائين ڪيترن ئي ابتدائي طور تي نامعلوم آهن ، جيئن ته PWM ڪنيڪشن جي حقيقي صلاحيت ، سي پي آئي ، آر سي ۽ سي ايڪس بندرگاهن جي TX پنن ، يا پنهنجو I2C بس. ان ڪري ، هن داخلا سان توهان گهٽ ۾ گهٽ توهان سڀ ڪجهه knowاڻي سگهو ٿا جيڪي توهان کي I2C کان ضرورت آهي.

سان I2C بس توهان ڪيترائي آرڊينو بورڊ سان ڳالھ ٻولھ ڪرڻ لاءِ گھڻن ٽئين پارٽي جي ڪنارن کي ڳن connectي ۽ استعمال ڪري سگھو ٿا. انهن جي وچ ۾ ، توهان فلپس ايجاد جي مهرباني ، تيز رفتار ، ڊسپليز ، سيٽير ، ڪمپاس ۽ ٻين ڪيترن ئي گڏيل سرڪٽ کي ڳن canي سگهو ٿا.

I2C ڇا آهي؟

I2C انٽر انٽيگريٽٽي سرڪٽ کي رد ڪري ٿو، اهو آهي ، گڏيل مربوط سرڪٽ. اهو هڪ سيرل ڊيٽا مواصلاتي بس آهي جيڪو 1982 ۾ فلپس سيمڪڊٽرز ڪمپني پاران تيار ڪيو ويو آهي ، جيڪو ا N هن سيڪشن مان جان ڇڏائڻ کان پوءِ اين ايڪس پي سيمڪ ڪنڊيٽرز آهي. اها پهرين ته اها هن برانڊي جي ٽيليويزن لاءِ ٺاهي وئي ، ڪيترن ئي اندروني چپس کي سادي طريقي سان ڳالھائڻ جي لاءِ. پر 1990 کان وٺي I2C پکڙجي چڪي آهي ۽ ڪيترن ئي ٺاهيندڙن طرفان استعمال ڪئي ويندي آهي.

في الحال ڪيترن ئي چپ چپ ٺاهيندڙن پاران استعمال ڪيو ويو آهي گهڻن افعالن لاءِ. ايٽمي ، ارڊينو بورڊز لاءِ مائڪرو ڪنٽرولرز جو خالق ، لائسنس حاصل ڪرڻ لاءِ TWI (ٻه وائرڊ انٽرفيس) عهدو متعارف ڪرايو ، جيتوڻيڪ اها I2C جي هڪجهڙائي آهي. پر 2006 ۾ ، اصل پيٽرن جي مدت ختم ٿي وئي ۽ هاڻي ڪاپي رائيٽ سان مشروط نه آهي ، ان ڪري I2C وارو اصطلاح ٻيهر استعمال ٿي چڪو آهي (صرف علامت (لوگو) محفوظ رهي ٿي ، پر ان تي عمل يا اصطلاح استعمال محدود ناهي).

I2C بس ٽيڪنيڪل تفصيل

I2C بس

El I2C بس هڪ انڊسٽري معيار بڻجي وئي آهي ، ۽ ارڊينوينو ان تي عمل ڪيو آهي رابطي جي ضرورت رکندڙن لاءِ ، جيڪي ان جي ضرورت آهن. ان کي صرف انهي جي عمل لاءِ ٻه لائنون يا ڪيبل گهرجن ، هڪ گھڙي سگنل لاءِ (CLK) ۽ ٻيو سيريل ڊيٽا موڪلڻ (SDA) لاءِ. اھو ايس پي آئي بس جي مقابلي ۾ ٻين مواصلات جي مقابلي ۾ فائديمند آھي ، جيتوڻيڪ ان جو آپريشن اضافي سرڪشي جي ضرورت سبب ڪجھ وڌيڪ پيچيده آھي.

انهي بس تي ھر ڊيوائس ان سان ڳن hasيل آھي ان جو پتو آھي انفرادي طور تي انهن ڊوائيس تائين رسائي حاصل ڪئي وئي. اهو پتو هارڊويئر طرفان طئي ڪيو ويو آهي ، جمپرز يا سوئچ ڊي آئي پيز جي ذريعي آخري 3 بٽس کي تبديل ڪندي ، جيتوڻيڪ اهو پڻ سافٽويئر ڪري سگهجي ٿو. هر ڊوائيس جو هڪ منفرد پتو هوندو ، جيتوڻيڪ انهن مان ڪيترن جو ساڳيو هوندو ۽ ٿي سگهي ٿو ته هڪ ثانوي بس استعمال ڪري تنازعات کان بچڻ يا جيڪڏهن ممڪن هجي ته ان کي تبديل ڪريو.

ان کان علاوه ، I2C بس کي آھي ماسٽر ـ ٻلي قسم جي اڏاوت ، اھو آھي ، آقا غلام. انهي جو مطلب آهي ته جڏهن ماسٽر ڊيوائس ذريعي ڪميونيڪيشن شروع ٿي ويندي آهي ، ته اها پنهنجي ٻانهن کان ڊيٽا موڪلڻ يا وصول ڪرڻ جي قابل ٿيندي. غلام مواصلات جي شروعات نه ڪري سگھندا ، صرف ماسٽر ائين ڪري سگھي ٿو ، ۽ غلام مالڪ جي مداخلت کان سواءِ سڌو سنئون گفتگو نٿا ڪري سگھن.

جيڪڏهن توهان وٽ آهيو بس ۾ ڪيترائي استاد، صرف هڪ هڪ استاد سان هڪجهڙائي طور ڪم ڪرڻ جي قابل هوندو. پر اهو ان جي لائق ناهي ، جئين استاد جي تبديلي وڏي پيچيدگي جو مطالبو ڪري ٿي ، تنهن ڪري اهو اڪثر نه آهي.

ذهن ۾ رکو ته ماسٽر بس تي سڀني ڊوائيسن کي هم وقت سازي لاءِ گھڙي سگنل فراهم ڪندو آهي. اها هر ٻانهن جي پنهنجي گھڙي هجڻ جي ضرورت کي ختم ڪري ٿي.

I2C بس پروٽوڪول پڻ سپلائي وولٹیج لائنن ۾ پل اپ رزسٽرز جي استعمال جي پيشنگوئي ڪئي آهي. pull-up ڇاڪاڻ ته پروگرامنگ لائبريريون جئين وائر 20-30 ڪ جي قدرن سان اندروني کي چالو ڪري ٿو. اهو شايد ڪجهه منصوبن لاءِ ڏا softو نرم هجي ، تنهن ڪري سگنل جا اڀرندڙ ڪنارا سست هوندا ، انهي ڪري گهٽ رفتار ۽ گهٽ مواصلاتي فاصلا استعمال ٿي سگهن ٿا. انهي کي درست ڪرڻ لاءِ توهان کي 1k کان 4k7 تائين ٻاهرين پل اپ ريزسٽرز رکڻ جي ضرورت آهي.

سگنل

I2C سگنل

 

La رابطي جو فريم جن مان هڪ I2C بس سگنل بٽس يا رياستن تي مشتمل آهي (اهي آرڊينوينو ۾ استعمال ٿيل آهن ، ڇاڪاڻ ته I2C معيار ٻين کي اجازت ڏين ٿا):

  • 8 بٽ ، انهن مان 7 هدايت ٻانهن جي ان ڊوڙ جو جيڪو توهان ان کان ڊيٽا موڪلڻ يا وصول ڪرڻ جي رسائي حاصل ڪرڻ چاهيو ٿا. 7 بٽس سان ، 128 تائين مختلف ايڊريسون ٺاهي سگھجن ٿيون ، تنهن ڪري نظرياتي طور تي 128 ڊوائيسز تائين رسائي ٿي سگهي ٿي ، پر صرف 112 تائين رسائي ڪري سگهجي ٿي ، جڏهن ته 16 خاص استعمال لاءِ مخصوص آهن. ۽ اضافي بٽ جيڪو اشارو ڏئي ٿو جيڪڏهن توهان چاهيو ٿا موڪليو يا وصول ڪيو غلام جي informationاڻ.
  • هتي پڻ آهي تصديق واري بٽ، جيڪڏهن اهو چالو نه آهي مواصلات صحيح نه ٿيندي.
  • پوءِ ڊيٽا بائٽس ته انهن ٻانهن کان موڪلڻ يا وصول ڪرڻ چاهيندا آهن. هر بائيٽ ، جئين توهان کي knowاڻ آهي ، 8 بائيٽ مان ٺهيل آهي. ياد رکو ته هر 8-bit يا 1 بائيٽ ڊيٽا موڪلي يا حاصل ڪيل ، تصديق جي وڌيڪ 18 بٽ ، ايڊريس ، وغيره گهربل آهن ، جنهن جو مطلب آهي ته بس رفتار جي لحاظ کان تمام محدود آهي.
  • جو هڪ آخري ساٽ تصديق رابطو جي.

ان کان علاوه ، ڪلاڪ جي تعدد معياري 100 مي ايڇز معياري طور ، جيتوڻيڪ ھڪڙو 400 Mhz تي ھڪڙو تيز موڊ آھي.

I2C بس جا فائدا ۽ نقصان

جي فائدا اهي آهن:

  • سادگي صرف ٻن لائنن جي استعمال سان.
  • اهو آهي toاڻڻ لاءِ مشيني ھجي ته ڇا سگنل اچي چڪو آھي ٻين مواصلاتي پروٽوڪولن جي مقابلي ۾.

جي نقصان اهي آهن:

  • اسپيڊ تمام گهٽ ٽرانسميشن
  • اها مڪمل نقل نه آهياھو آھي ، توھان ھڪٻئي سان موڪلي نه سگھندا آھيو.
  • برابري استعمال نه ڪندو آهي نه ئي ڪنهن ٻئي قسم جي تصديق جو طريقو معلوم ڪرڻ لاءِ ته معلوم ڪيو ويو آهي ته حاصل ڪيل ڊيٽا بائيٽ صحيح آهن يا نه.

 

 

ارڊينوينو تي I2C

آردوينو I2C بس

En آرڊينوين ، ماڊل تي ڀاڙين ٿا، انهي I2C بس کي استعمال ڪرڻ لاءِ فعال ڪيل پن مختلف ٿي سگهن ٿا. مثال طور:

  • Arduino UNO، نانو ، ميني پرو: اي 4 ايس ڊي اي (ڊيٽا) لاءِ ۽ A5 ايس سي سي (ڪلاڪ) لاءِ استعمال ڪيو ويندو آهي.
  • ارڊينو ميگا: پن 20 لاءِ ايس ڊي اي ۽ 21 لاءِ ايس سي سي لاءِ آهي.

ياد رکو ته انهي کي استعمال ڪرڻ لاءِ توهان کي لازمي هجڻ گهرجي ها لائبريري جو استعمال ڪريو تار توهان جي Arduino IDE ڪوڊز لاءِ ، جيتوڻيڪ اتي ٻيا آهن I2C y I2 سي ڊيبيب. توهان انهن لائبريرين جا دستاويز پڙهي سگهو ٿا يا اسان جا مضمون انهن پروجيڪٽس تي جيڪي توهان جي پروگرامن کي ڪوڊ حاصل ڪرڻ لاءِ دلچسپي وٺندا.

I2C سان ان کي استعمال ڪرڻ لاءِ هڪ ڊوائيس جو پتو ڪيئن معلوم ڪجي؟

صرف هڪ آخري خبرداري ، ۽ اهو آهي ته جڏهن توهان يورپين ، جاپاني يا آمريڪي ٺاهيندڙن مان IC خريد ڪندا آهيو طرف ظاهر ڪيو اهو توهان کي ڊوائيس لاءِ استعمال ڪرڻ گهرجي. ٻئي طرف ، چيني ڪڏهن ڪڏهن ان جو تفصيل نه ڏيندو آهي يا اهو صحيح ناهي ، تنهن ڪري ڪم ڪونه ڪندو. اهو آساني سان حل ڪري سگھجي ٿو ايڊريس اسڪينر سان knowاڻڻ لاءِ ته توهان پنهنجي خاڪي ۾ ڪهڙي هدايت جو حوالو ڏيڻ گهرجي.

La آردوينو ڪميونٽي اهو هن پيدا ڪيو آهي ايڊريس اسڪين ڪرڻ ۽ ان کي سڃاڻڻ لاءِ ڪوڊ هڪ سادي طريقي سان. جيتوڻيڪ آئون توهان کي هتي ئي ڪوڊ ڏيکاريان ٿو:

#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. ڊيٽا جو ذميوار: Miguel Ángel Gatón
  2. ڊيٽا جو مقصد: ڪنٽرول سپيم ، تبصرو جي انتظام.
  3. سازش: توهان جي رضامندي
  4. ڊيٽا جي ابلاغ: ڊيٽا کي قانوني ذميواري کانسواءِ ٽئين پارٽين تائين رسائي نه ڏني ويندي.
  5. ڊيٽا اسٽوريج: ڊيٽابيس اويسينٽس نيٽورڪ (اي يو) پاران ميزباني ڪيل
  6. حق: ڪنهن به وقت توهان پنهنجي معلومات کي محدود ، ٻيهر ۽ ختم ڪري سگهو ٿا.