- I2C مواصلات پروٹوکول کیا ہے؟
- I2C مواصلت کیسے کام کرتی ہے؟
- I2C مواصلات کہاں استعمال کریں؟
- ایم ایس پی 430 میں آئی 2 سی: AD5171 ڈیجیٹل پوٹینومیٹر کنٹرول کرنا
ایم ایس پی 303030 ایک طاقتور پلیٹ فارم ہے جو ایمبیڈڈ پروجیکٹس کے لئے ٹیکساس آلات کے ذریعہ فراہم کیا گیا ہے ، اس کی ورسٹائل نوعیت نے اسے بہت سے ایپلی کیشنز کے راستے تلاش کرنے میں مدد فراہم کی ہے اور ابھی بھی مرحلہ جاری ہے۔ اگر آپ ہمارے ایم ایس پی 303030 سبق پر عمل پیرا ہوتے ہیں تو آپ نے محسوس کیا ہوگا کہ ہم نے مائکروکانٹرولر پر بہت سے سبق حاصل کیے ہیں جو بہت ہی بنیادی باتوں سے شروع ہو رہے ہیں۔ اب سے ، ہم نے بنیادی باتوں کا احاطہ کیا ہے کہ ہم مواصلاتی پورٹل جیسے مزید دلچسپ سامان میں جاسکتے ہیں۔
ایمبیڈڈ ایپلی کیشنز کے وسیع نظام میں ، کوئی مائکروکنٹرولر خود ہی تمام سرگرمیاں انجام نہیں دے سکتا ہے۔ معلومات کے اشتراک کے ل time کسی دوسرے مرحلے میں اسے دوسرے آلات سے بات چیت کرنا پڑتی ہے ، ان معلومات کو اشتراک کرنے کے لئے بہت ساری قسم کے مواصلات کے پروٹوکول موجود ہیں ، لیکن سب سے زیادہ استعمال ہونے والے حصے یو ایس اے آر ٹی ، آئی سی ، ایس پی آئی اور سی اے این ہیں ۔ ہر مواصلاتی پروٹوکول کا اپنا فائدہ اور نقصان ہوتا ہے۔ آئیے اب کے لئے I2C پر توجہ مرکوز کریں کیونکہ یہی سبق ہم اس ٹیوٹوریل میں سیکھ رہے ہیں۔
I2C مواصلات پروٹوکول کیا ہے؟
IIC اصطلاح کا مطلب ہے " انٹر انٹیگریٹڈ سرکٹس "۔ عام طور پر اس کو I2C یا I مربع C یا کچھ جگہوں پر 2-تار انٹرفیس پروٹوکول (TWI) بھی کہا جاتا ہے لیکن اس کا مطلب ایک ہی ہے۔ I2C ایک ہم وقت ساز مواصلات کا پروٹوکول ہے جس کا معنی ہے ، وہ دونوں ڈیوائس جو معلومات کو شیئر کررہی ہیں وہ عام گھڑی کا اشارہ شیئر کرنا چاہئے۔ اس میں معلومات بانٹنے کے لئے صرف دو تاروں ہیں جن میں سے ایک کو لنڈ سگنل کے لئے استعمال کیا جاتا ہے اور دوسرا ڈیٹا بھیجنے اور وصول کرنے کے لئے استعمال ہوتا ہے۔
I2C مواصلت کیسے کام کرتی ہے؟
I2C مواصلت سب سے پہلے فلپس نے متعارف کروائی تھی۔ جیسا کہ پہلے کہا گیا ہے کہ اس میں دو تاروں ہیں ، یہ دو تاروں دو آلات سے منسلک ہوں گی۔ یہاں ایک آلہ کو ماسٹر کہا جاتا ہے اور دوسرے آلہ کو غلام کہا جاتا ہے ۔ مواصلت دو ماسٹر اور غلام کے درمیان ہمیشہ ہونی چاہئے اور ہوگی ۔ I2C مواصلات کا فائدہ یہ ہے کہ ایک سے زیادہ غلام ایک ماسٹر سے منسلک ہوسکتے ہیں۔
مکمل مواصلت ان دونوں تاروں یعنی سیریل کلاک (ایس سی ایل) اور سیریل ڈیٹا (ایس ڈی اے) کے ذریعے ہوتی ہے۔
سیریل گھڑی (ایس سی ایل): غلام کے ساتھ آقا کے ذریعہ تیار کردہ گھڑی سگنل کا اشتراک کرتا ہے
سیریل ڈیٹا (ایس ڈی اے): ماسٹر اور غلام کے درمیان اور اس سے ڈیٹا بھیجتا ہے۔
کسی بھی وقت صرف ماسٹر ہی مواصلات کا آغاز کر سکے گا۔ چونکہ بس میں ایک سے زیادہ غلام ہیں ، لہذا مالک کو ہر ایک غلام سے الگ ایڈریس استعمال کرتے ہوئے رجوع کرنا پڑتا ہے۔ جب صرف اس غلام کو مخاطب کیا جاتا ہے جب اس مخصوص پتے کے ساتھ ہی جواب میں جواب دیا جائے گا جبکہ دوسرے کام چھوڑ دیتے ہیں۔ اس طرح ہم ایک ہی بس کو متعدد آلات کے ساتھ بات چیت کرنے کے ل. استعمال کرسکتے ہیں۔
I2C کی وولٹیج کی سطح پیش وضاحتی نہیں ہیں. I2C مواصلت لچکدار ہے ، اس کا مطلب یہ ہے کہ وہ آلہ جس میں 5v وولٹ حاصل ہوتا ہے ، I2C کے لئے 5v استعمال کرسکتا ہے اور 3.3v آلات I2C مواصلات کے لئے 3v استعمال کرسکتے ہیں۔ لیکن اگر کیا دو آلات جو مختلف وولٹیج پر چل رہے ہیں ، I2C کا استعمال کرتے ہوئے بات چیت کرنے کی ضرورت ہے تو؟ A 5V I2C بس 3.3V آلہ کے ساتھ منسلک نہیں کیا جا سکتا. اس معاملے میں وولٹیج شفٹرز دو I2C بسوں کے درمیان وولٹیج کی سطح کو میچ کرنے کے لئے استعمال کیا جاتا ہے۔
کچھ شرائط ہیں جن میں لین دین ہوتا ہے۔ ٹرانسمیشن کا آغاز ایس ڈی اے کے گرتے ہوئے کنارے سے ہوتا ہے ، جس کو نیچے آریھ میں 'START' حالت سے تعبیر کیا جاتا ہے جہاں ایس ڈی اے کو کم کرتے ہوئے ماسٹر ایس سی ایل کو چھوڑ دیتا ہے۔
جیسا کہ مندرجہ بالا آریگرام میں دکھایا گیا ہے ،
ایس ڈی اے کا گرتا ہوا آغاز شرط کے لئے ہارڈ ویئر ٹرگر ہے۔ اس کے بعد ایک ہی بس میں موجود سارے آلات سننے کے موڈ میں چلے جاتے ہیں۔
اسی طرح ، ایس ڈی اے کے بڑھتے ہوئے کنارے ٹرانسمیشن کو روکتا ہے جو اوپر آریگرام میں 'اسٹاپ' حالت کے طور پر دکھایا جاتا ہے ، جہاں ماسٹر ایس سی ایل کو اعلی چھوڑ دیتا ہے اور ایس ڈی اے کو ہائیٹ جانے کے لئے بھی جاری کرتا ہے۔ تو ایس ڈی اے کے بڑھتے ہوئے کنارے ٹرانسمیشن کو روکتا ہے۔
آر / ڈبلیو بٹ مندرجہ ذیل بائٹس کی ترسیل کی سمت کی نشاندہی کرتا ہے ، اگر اس کا مطلب ہائی ہے تو غلام منتقل ہوگا اور اگر اس کا مطلب کم ہے تو آقا منتقل کرے گا۔
ہر تھوڑا سا ہر گھڑی کے چکر پر منتقل ہوتا ہے ، لہذا اس میں بائٹ منتقل کرنے میں 8 گھڑی کے چکر لگتے ہیں۔ ہر بائٹ کو یا تو بھیجا گیا یا موصول ہونے کے بعد ، ACK / NACK (تسلیم شدہ / تسلیم شدہ نہیں) کے لئے نویں گھڑی کا انعقاد ہوتا ہے۔ یہ ACK بٹ صورتحال یا انحصار کے مطابق غلام یا ماسٹر کے ذریعہ تیار کیا گیا ہے۔ ACK بٹ کے لئے ، ایس ڈی اے 9 ویں گھڑی کے چکر پر ماسٹر یا غلام کے ذریعہ کم ہوجاتا ہے ۔ تو یہ کم ہے اسے ACK سمجھا جاتا ہے ورنہ NACK۔
I2C مواصلات کہاں استعمال کریں؟
I2C مواصلت صرف مختصر فاصلے پر ہونے والے مواصلات کے لئے استعمال ہوتا ہے ۔ یہ یقینی طور پر ایک حد تک قابل اعتماد ہے کیونکہ اس کو اسمارٹائز بنانے کیلئے گھڑی کی ایک مطابقت پذیری موجود ہے۔ یہ پروٹوکول بنیادی طور پر سینسر یا دیگر آلات سے بات چیت کرنے کے لئے استعمال ہوتا ہے جس میں کسی ماسٹر کو معلومات بھیجنا پڑتا ہے۔ یہ بہت آسان ہے جب ایک مائکروقانت کنندہ صرف کم از کم تاروں کا استعمال کرتے ہوئے بہت سے دوسرے غلام ماڈیول کے ساتھ بات چیت کرنا پڑتا ہے۔ اگر آپ طویل فاصلہ طے کرنے والے مواصلات کی تلاش کر رہے ہیں تو آپ کو RS232 کی کوشش کرنی چاہئے اور اگر آپ زیادہ قابل اعتماد مواصلات کی تلاش کر رہے ہیں تو آپ کو ایس پی آئی پروٹوکول کو آزمانا چاہئے۔
ایم ایس پی 430 میں آئی 2 سی: AD5171 ڈیجیٹل پوٹینومیٹر کنٹرول کرنا
ہمارے ایم ایس پی 430 پروگرام کرنے کے لئے اینرجیہ آئی ڈی ای ایک آسان ترین سافٹ ویئر ہے۔ یہ اردوینو IDE کی طرح ہے۔ آپ یہاں ایمرجیئا IDE کا استعمال کرکے MSP430 کے ساتھ شروعات کرنے کے بارے میں مزید جان سکتے ہیں۔
لہذا ، انرجیہ آئی ڈی ای میں I2C استعمال کرنے کے ل we ہمیں صرف تار ہیڈ ہیڈر فائل کو شامل کرنا ہے۔ پن ڈیکلریشن (ایس ڈی اے اور ایس سی ایل) تار لائبریری کے اندر ہے ، لہذا ہمیں سیٹ اپ فنکشن میں اعلان کرنے کی ضرورت نہیں ہے ۔
نمونے کی مثالیں IDE کے مثال کے مینو میں مل سکتی ہیں۔ اس کی ایک مثال ذیل میں بیان کی گئی ہے۔
اس مثال سے پتہ چلتا ہے کہ کس طرح ینالاگ ڈیوائسز AD5171 ڈیجیٹل پوٹینومیٹر کو کنٹرول کرنا ہے جو I2C ہم وقت ساز سیریل پروٹوکول کے ذریعے بات چیت کرتا ہے۔ ایم ایس پی کی آئی 2 سی وائر لائبریری کا استعمال کرتے ہوئے ، ڈیجیٹل برتن ایک ایل ای ڈی کو ختم کرتے ہوئے ، مزاحمت کی 64 سطحوں سے گزرے گا۔
پہلے ، ہم i2c مواصلات کے لئے ذمہ دار لائبریری یعنی تار لائبریری کو شامل کریں گے
# شامل کریں
میں سیٹ اپ کی تقریب، ہم کی طرف سے تار لائبریری شروع کرے گا .begin () تقریب.
باطل سیٹ اپ () ire Wire.begin ()؛ }
اس کے بعد پوٹینومیٹر کی قدروں کو ذخیرہ کرنے کے لئے ایک متغیر ویل شروع کریں
بائٹ ویل = 0؛
میں لوپ تقریب، ہم کریں گے I2C غلام آلہ کرنے ٹرانسمیشن شروع جس آایسی کے نامہ نظارہ میں دی گئی ہے کے آلہ ایڈریس وضاحت کی طرف سے (اس کیس ڈیجیٹل potentiometer کے آایسی میں).
باطل لوپ () ire وائر.بیگین ٹرانسمیشن (44)؛ // آلہ # 44 (0x2c) میں منتقل کریں
اس کے بعد ، قطار بائٹس یعنی ڈیٹا جس کو آپ لکھنا () فنکشن کے ساتھ منتقل کرنے کے لئے آای سی کو بھیجنا چاہتے ہیں ۔
وائر ڈاٹ رائٹ (بائٹ (0x00))؛ // انسٹرکشن بائٹ وائر بھیجتا ہے ۔ // پوٹینومیٹر ویلیو بائٹ بھیجتا ہے
پھر ان کو اختتام منتقلی () پر کال کرکے منتقل کریں ۔
Wire.endTransmission ()؛ // ویل منتقل کرنے کو روکیں ++؛ // انکریمنٹ ویلیو اگر (ویل == 64) {// اگر 64 ویں پوزیشن پر پہنچ گئی (زیادہ سے زیادہ) ویل = 0؛ // سب سے کم قیمت سے پھر سے شروع } تاخیر (500)؛ }