د Ardino I2C بس په اړه ټول

اردوینو I2C بس

con اردوینو کولی شي لوی شمیر پروژې رامینځته کړي لکه څنګه چې تاسو لیدلي که تاسو هولبری لوستئ ، په ساده ډول د مایکرو کنټرولر پروګرام کول. مګر د دې وړیا هارډویر بورډ انلاګ او ډیجیټل ارتباطاتو کې ، ځینې شتون لري چې لاهم د ډیری پیل کونکو لپاره نامعلوم دي ، لکه د PWM ارتباطاتو ریښتیني احتمال ، د SPI ، RX او TX پنونو سریال بندر ، یا د خپله I2C بس. له همدې امله ، د دې ننوتلو سره تاسو کولی شئ لږترلږه هر هغه څه وپیژنئ چې تاسو د I2C څخه ورته اړتیا لرئ.

con د I2C بس تاسو کولی شئ ډیری د دریمې ډلې وسیلې وصل او وکاروئ چې دا ډول پروتوکول لري د اریډوینو بورډ سره اړیکه ونیسي. د دوی ترمینځ ، تاسو کولی شئ د فیلیپس ایجاد څخه مننه وکړئ اکیلرومیټرونه ، ښودنې ، کاونټر ، کمپاسونه او نور ډیر یوځای شوي سرکټونه وصل کړئ.

I2C څه شی دی؟

I2C د متقابل متحرک سرکټ ته اشاره کوي، دا دی ، یو له بل سره متحد شوی سرکیټ. دا د سریال ډاټا مواصلاتو بس دی چې په 1982 کې د فیلیپس سیمیکمډکټر شرکت لخوا رامینځته شوی ، کوم چې نن ورځ د دې برخې له لرې کولو وروسته NXP سیمیکمډکټرونه دي. په لومړي سر کې دا د دې برانډ د تلویزیونونو لپاره رامینځته شوی و ، څو ساده لار کې ډیری داخلي چپس ولوستل شي. مګر د 1990 راهیسې I2C خپور شوی او د ډیری جوړونکو لخوا کارول کیږي.

دا مهال د لسګونو چپمیکرانو لخوا کارول کیږي د ډیری دندو لپاره. اتیل ، د اریډوینو بورډونو لپاره د مایکرو کنټرولرانو جوړونکی ، د جواز ورکولو موخو لپاره د TWI (دوه وایرده انټررفیس) ډیزاین معرفي کړ ، که څه هم دا د I2C سره ورته دی. مګر په 2006 کې ، اصلي امتیاز پای ته رسیدلی او نور د چاپ حق نلري ، نو د I2C اصطالح بیا کارول شوې (یوازې لوګو خوندي ساتل کیږي ، مګر د دې پلي کول یا د اصطالح کارول منع ندي).

د I2C بس تخنیکي توضیحات

I2C بس

El I2C بس د صنعت معیار بدل شوی ، او اریډوینو یې پلی کړی دی د پردې سره خبرو اترو لپاره چې ورته اړتیا لري. دا د دې عملیاتو لپاره یوازې دوه لینونو یا کیبلونو ته اړتیا لري ، یو د ساعت سګنال لپاره (CLK) او بل یې د سریال ډیټا (SDA) لیږلو لپاره. دا د SPI بس په پرتله د نورو مخابراتو په پرتله ګټور دی ، که څه هم د دې عملیات د اضافي سرکري اړتیا له امله یو څه پیچلي دي.

پدې بس کې هر وسیله چې ورسره وصل دی یو پته لري دې وسیلو ته په انفرادي ډول لاسرسي لپاره کارول کیږي. دا پته د هارډویر لخوا ټاکل شوې ، د کوپرانو یا سویچ DIPs له لارې وروستي 3 ټوټې ترمیم کوي ، که څه هم دا د سافټویر لخوا هم کیدی شي. هر وسیله به یو ځانګړی پته ولري ، پداسې حال کې چې ډیری یې ممکن ورته پته ولري او ممکن اړتیا وي چې د جنجالونو مخنیوي لپاره د ثانوي بس کارولو یا د امکان په صورت کې دا بدل کړئ.

سربیره پردې ، I2C بس لري د ماسټر - غلام ډول معمار ، دا د بادار غلام دی. دا پدې مانا ده کله چې اړیکې د ماسټر وسیلې لخوا پیل شوي ، نو دا به وړتیا ولري چې د خپلو غلامانو څخه ډاټا لیږي یا ترلاسه کړي. غلامان نشي کولی د خبرو اترو پیل وکړي ، یوازې ماسټر کولی شي ، او غلامان د ماسټر مداخله پرته مستقیم یو بل سره خبرې نشي کولی.

که تاسو لرئ په بس کې څو ښوونکي، یوازې یو څوک کولی شي په ورته وخت کې د ښوونکي په توګه دنده ترسره کړي. مګر دا ارزښت نلري ، ځکه چې د ښوونکي بدلون د لوړې پیچلتیا غوښتنه کوي ، نو دا تکرار نه وي.

په یاد ولرئ چې ماسټر په ساعت کې د ټولو وسیلو ترکیب کولو لپاره د ساعت سګنال چمتو کوي. دا د هر غلام اړتیا لري چې خپل څار ولري.

د I2C بس پروتوکول د اکمالاتو ولتاژ لینونو (Vcc) کې د پل اپ اپ مقاومت کارونو وړاندوینه هم کوي ، پداسې حال کې چې دا مقاومت کونکي معمولا د اردوینو سره ندي کارول شوي راښکته کول ځکه چې د برنامو برنامې لکه څنګه چې تار د 20-30 k ارزښتونو سره داخلي کسان فعالوي. دا ممکن د ځینې پروژو لپاره خورا نرم وي ، نو له همدې امله د سیګنال پورته کېدونکي څنډې به ورو وي ، نو د ټیټ سرعت او لنډ مخابراتي واټن وکارول شي. د دې د سمولو لپاره تاسو ممکن د 1k څخه تر 4k7 پورې بهرني پل اپ مقاومت تنظیم کړئ.

سیګنال

د I2C سیګنال

 

La د اړیکې چوکاټ له هغې څخه د I2C بس سیګنالونه په بیټس یا ایالتونو مشتمل دي (هغه چې په ارډوینو کې کارول کیږي ، ځکه چې د I2C معیار نورو ته اجازه ورکوي):

  • 8 ټوټې ، له دې څخه 7 لارښوونه د غلام آله چې تاسو غواړئ له دې څخه ډاټا لیږلو یا ترلاسه کولو لاسرسی ومومئ. د 7 ټوټې سره ، تر 128 مختلف ادرسونه رامینځته کیدی شي ، نو له دې امله 128 وسیلې کولی شي په نظریاتي ډول لاسرسی ومومي ، مګر یوازې 112 لاسرسی کیدی شي ، ځکه چې 16 د ځانګړو کارونو لپاره ساتل شوي. او اضافي بټ چې په ګوته کوي که تاسو غواړئ لیږل یا ترلاسه کول د غلام آله معلومات.
  • دلته هم شتون لري د اعتبار بیټ، که چیرې دا فعاله نه وي مخابرات به د اعتبار وړ نه وي.
  • بیا د اومتوقع بایټونه چې دوی غواړي د غلامانو لخوا ولیږي یا ترلاسه کړي. هر بایټ ، لکه څنګه چې تاسو پوهیږئ ، د 8 بټونو څخه جوړ دی. په یاد ولرئ چې د لیږل شوي یا ترلاسه شوي معلوماتو هر 8-بټ یا 1 بایټ لپاره ، د اعتبار اضافه 18 ټوټې ، پته او نور اړین دي ، پدې معنی چې بس د سرعت په شرایطو کې خورا محدود دی.
  • د اعتبار د.

سربیره پردې ، لپاره د ساعت فریکونسۍ د لیږدونې کچه 100 میګاهټز د معیاري په توګه ده ، که څه هم په 400 میګاهرتټ کې ګړندی حالت شتون لري.

د I2C بس ګټې او زیانونه

د ګټې دوی دا دي:

  • سادگي یوازې د دوه کرښو په کارولو سره.
  • دا لري میکانیزمونه چې پوه شي که سیګنال رارسېدلی وي د نورو مخابراتو پروتوکولونو په پرتله.

د زیانونه دوی دا دي:

  • چټک په کافي اندازه ټیټ لیږدونه.
  • دا بشپړ دوه ګونی نه دی، دا دی ، تاسو نشئ کولی او په یوځل یې ترلاسه کړئ.
  • مساوات نه کاروي او نه د تصدیق کولو کوم بل ډول میکانیزم ترڅو پوه شي چې ترلاسه شوي ډاټا بټونه سم دي.

 

 

I2C په ارډوینو باندې

اردوینو I2C بس

En اردوینو ، په ماډل پورې اړه لري، پنونه چې د دې I2C بس کارولو لپاره وړ کیدی شي توپیر لري. د مثال په توګه:

  • Arduino UNO، نانو ، مینی پرو: A4 د SDA (ډاټا) او A5 لپاره د SCK (ساعت) لپاره کارول کیږي.
  • اردوینو میګا: د SDA لپاره 20 پن او د SCK لپاره 21.

په یاد ولرئ چې د دې کارولو لپاره تاسو باید کتابتون وکاروئ سیم ستاسو د اردوینو IDE کوډونو لپاره ، که څه هم نور هم ورته دي I2C y I2Cdevlib. تاسو کولی شئ د دې کتابتونونو سندونه یا زموږ په مقالو کې هغه پروژې ولولئ چې تاسو سره علاقه لري د کوډونو ترلاسه کولو څرنګوالی چې دا به برنامه شي.

د I2C سره کارولو لپاره د وسیله پته څنګه پیژندل کیږي؟

یوازې یو وروستی خبرداری ، او دا هغه دی کله چې تاسو له اروپایی ، جاپاني یا امریکایی تولید کونکو څخه آی سي وپیرئ ، تاسو لور ته اشاره وکړئ چې تاسو باید د وسیلې لپاره وکاروئ. له بلې خوا ، چینایان ځینې وختونه دا تفصیل نه ورکوي یا دا سم ندي ، نو دا به کار ونکړي. دا په اسانۍ سره د پتې سکینر سره حل کیدی شي ترڅو پوه شي چې تاسو کوم سمت ته باید په خپل ساکچ کې مراجعه وکړئ.

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. د معلوماتو لپاره مسؤل: میګیوانجل ګاتین
  2. د معلوماتو هدف: د سپیم کنټرول ، د نظر مدیریت.
  3. قانونیت: ستاسو رضایت
  4. د معلوماتو راټولول: معلومات به د قانوني مکلفیت پرته دریمې ډلې ته نه لیږدول کیږي.
  5. د معلوماتو ذخیره: ډیټابیس د Occentus شبکې (EU) لخوا کوربه شوی
  6. حقونه: په هر وخت کې تاسو کولی شئ خپل معلومات محدود ، له سره تنظیم او حذف کړئ.