- I2C مواصلات پروٹوکول کیا ہے؟
- I2C مواصلات کیسے کام کرتی ہے؟
- I2C مواصلات کہاں استعمال کریں؟
- نووٹن N76E003 پر I2C - ہارڈ ویئر کی ضرورت
- نووٹن N76E003 - سرکٹ ڈایاگرام کے ساتھ اے ٹی 24 ایل سی 64 کو انٹرفیس کرنا
- نووٹن N76E003 پر آئی 2 سی پن
- N76E003 میں I2C مواصلات
- I2C مواصلت کے لئے پروگرامنگ N76E003
- کوڈ اور آؤٹ پٹ کو چمکانا
ایمبیڈڈ ایپلی کیشنز کے وسیع نظام میں ، کوئی مائکروکنٹرولر خود ہی تمام سرگرمیاں انجام نہیں دے سکتا ہے۔ وقت کے کسی نہ کسی مرحلے میں ، معلومات کو شیئر کرنے کے لئے اسے دوسرے آلات سے بات چیت کرنا پڑتی ہے ، ان معلومات کو اشتراک کرنے کے لئے بہت ساری قسم کے مواصلات کے پروٹوکول موجود ہیں ، لیکن سب سے زیادہ استعمال ہونے والے حصے یو ایسارٹ ، آئی آئی سی ، ایس پی آئی ، اور کین ہیں ۔ ہر مواصلاتی پروٹوکول کا اپنا فائدہ اور نقصان ہوتا ہے۔ آئیے آئی سی کے حص now ے پر ابھی توجہ مرکوز کریں کیونکہ یہی سبق ہم اس ٹیوٹوریل میں سیکھ رہے ہیں۔ اگر آپ یہاں نئے ہیں تو ، نووٹن ٹیوٹوریلز کو دیکھیں جہاں ہم N76E003 مائکروقابو کنٹرولر کے ہر دائرہ کار پر بات کرتے ہوئے بہت ہی ابتدائی ٹیوٹوریل سے گفتگو کرتے ہیں۔ اگر آپ یہ جاننا چاہتے ہیں کہ I2C کو دوسرے مائکروکینٹرولرز کے ساتھ کس طرح استعمال کرنا ہے تو ، آپ نیچے دیئے گئے لنک چیک کرسکتے ہیں۔
- ایردوینو میں آئی 2 سی کا استعمال کیسے کریں: دو ارڈینو بورڈ کے مابین مواصلت
- آئی سی سی مائکروکانٹرولر PIC16F877 کے ساتھ مواصلت
- I2C کا استعمال کرتے ہوئے ESP32 کے ساتھ 16X2 LCD انٹرفیس کرنا
- MSP430 لانچ پیڈ کے ساتھ I2C مواصلت
- I2C کا استعمال کیے بغیر نوڈیم سی سی یو کے ساتھ ایل سی ڈی انٹرفیس کرنا
- ارڈینو کے ایک ہی پروگرام میں ملٹی مواصلات (I2C SPI UART) کو کیسے سنبھالیں
I2C ایک اہم مواصلات کا پروٹوکول ہے جو فلپس (اب NXP) نے تیار کیا ہے۔ اس I2C پروٹوکول کا استعمال کرتے ہوئے ، ایک MCU متعدد آلات کے ساتھ منسلک ہوسکتا ہے اور مواصلات کا آغاز کرسکتا ہے۔ I2C صرف دو تاروں کے ساتھ کام کرتا ہے ، یعنی ایس ڈی اے اور ایس سی ایل۔ جہاں ایس ڈی اے کا مطلب سیریل ڈیٹا ہے اور ایس سی ایل کا مطلب سیریل گھڑی ہے۔ تاہم ، ان دونوں پنوں کو VCC وولٹیج کی سطح پر پل اپ اپ ریزٹرز کی ضرورت ہوتی ہے اور کافی پل اپ ریزسٹر کے ساتھ ، بس ایک انوکھے پتے والے 127 آلات کی مدد کر سکتی ہے۔
I2C مواصلات پروٹوکول کیا ہے؟
IIC اصطلاح کا مطلب ہے " انٹر انٹیگریٹڈ سرکٹس "۔ عام طور پر اس کو I2C یا I مربع C یا کچھ جگہوں پر 2-تار انٹرفیس پروٹوکول (TWI) بھی کہا جاتا ہے لیکن اس کا مطلب ایک ہی ہے۔ I2C ایک ہم وقت ساز مواصلات کا پروٹوکول ہے جس کا معنی ہے ، وہ دونوں ڈیوائس جو معلومات کو شیئر کررہی ہیں وہ عام گھڑی کا اشارہ شیئر کرنا چاہئے۔ اس میں معلومات کو بانٹنے کے لئے صرف دو تاروں ہیں جن میں سے ایک گھڑی کے سگنل کے لئے استعمال کی جاتی ہے اور دوسرا ڈیٹا بھیجنے اور وصول کرنے کے لئے استعمال ہوتا ہے۔
I2C مواصلات کیسے کام کرتی ہے؟
I2C مواصلت سب سے پہلے فلپس نے متعارف کروائی تھی۔ جیسا کہ پہلے کہا گیا ہے ، اس میں دو تاروں ہیں ، یہ دو تاروں دو آلہوں سے منسلک ہوں گی۔ یہاں ایک آلہ کو ماسٹر کہا جاتا ہے اور دوسرے آلے کو غلام کہتے ہیں ۔ مواصلات دو اور ایک ماسٹر اور غلام کے درمیان ہمیشہ ہونے چاہئیں ۔ I2C مواصلات کا فائدہ یہ ہے کہ ایک سے زیادہ غلام ایک ماسٹر سے منسلک ہوسکتے ہیں۔
مکمل مواصلت ان دونوں تاروں یعنی سیریل کلاک (ایس سی ایل) اور سیریل ڈیٹا (ایس ڈی اے) کے ذریعے ہوتی ہے۔
سیریل گھڑی (ایس سی ایل): غلام کے ساتھ آقا کے ذریعہ تیار کردہ گھڑی سگنل کا اشتراک کرتا ہے
سیریل ڈیٹا (ایس ڈی اے): ماسٹر اور غلام کے درمیان اور اس سے ڈیٹا بھیجتا ہے۔
کسی بھی وقت ، صرف ماسٹر ہی مواصلات کا آغاز کر سکے گا۔ چونکہ بس میں ایک سے زیادہ غلام ہیں ، لہذا مالک کو ہر ایک غلام سے الگ ایڈریس استعمال کرتے ہوئے رجوع کرنا پڑتا ہے۔ جب صرف سالو کو اس مخصوص پتے سے خطاب کیا جائے گا تو وہ معلومات کے ساتھ جواب دیں گے جبکہ دوسرے خاموش رہیں۔ اس طرح ، ہم ایک ہی بس کو متعدد آلات کے ساتھ بات چیت کرنے کے ل. استعمال کرسکتے ہیں۔
I2C مواصلات کہاں استعمال کریں؟
I2C مواصلت صرف مختصر فاصلے پر ہونے والے مواصلات کے لئے استعمال ہوتا ہے ۔ یہ یقینی طور پر ایک حد تک قابل اعتماد ہے کیونکہ اس کو اسمارٹ کرنے کے ل clock ہم وقت سازی گھڑی کی نبض ہے۔ یہ پروٹوکول بنیادی طور پر سینسر یا دیگر آلات سے بات چیت کرنے کے لئے استعمال ہوتا ہے جس میں کسی ماسٹر کو معلومات بھیجنا پڑتا ہے۔ یہ بہت آسان ہے جب ایک مائکروقانت کنندہ صرف کم از کم تاروں کا استعمال کرتے ہوئے بہت سے دوسرے غلام ماڈیول کے ساتھ بات چیت کرنا پڑتا ہے۔ اگر آپ دور دراز مواصلات کی تلاش کر رہے ہیں تو ، آپ کو RS232 کی کوشش کرنی چاہئے اور اگر آپ زیادہ قابل اعتماد مواصلات کی تلاش کر رہے ہیں تو ، آپ کو ایس پی آئی پروٹوکول کو آزمانا چاہئے۔
نووٹن N76E003 پر I2C - ہارڈ ویئر کی ضرورت
چونکہ اس پروجیکٹ کی ضرورت N76E003 کا استعمال کرتے ہوئے I2C مواصلات کو سیکھنا ہے ، لہذا ہم ایک EEPROM استعمال کریں گے جو I2C ڈیٹا لائن سے منسلک ہوگا۔ ہم EEPROM میں کچھ ڈیٹا ذخیرہ کریں گے اور وہی پڑھیں گے اور UART اسکرین کا استعمال کرکے اسے ظاہر کریں گے۔
چونکہ یو آر ٹی میں ذخیرہ شدہ قیمت چھاپے گی ، لہذا کسی بھی قسم کی USB سے UART کنورٹر کی ضرورت ہے۔ اگر آپ N76E003 پر UART مواصلات کے لئے نئے ہیں تو آپ نوارٹن کے ساتھ UART پر ٹیوٹوریل بھی چیک کرسکتے ہیں۔ ہماری درخواست کے لئے ، ہم USB کنورٹر سے CP2102 UART استعمال کریں گے۔ مندرجہ بالا کے علاوہ ، ہمیں بھی درج ذیل اجزاء کی ضرورت ہے۔
- EEPROM 24C02
- 2pcs 4.7k مزاحم
نہیں ذکر، اوپر اجزاء کے علاوہ کسی اور کے لئے، ہم ایک ضرورت N76E003 microcontroller کی بنیاد پر ترقی کے بورڈ کے ساتھ ساتھ کے طور پر اب لنک پروگرامر. مزید برآں ، تمام اجزاء کو مربوط کرنے کے لئے بریڈ بورڈ اور ہک اپ تاروں کی بھی ضرورت ہے۔
نووٹن N76E003 - سرکٹ ڈایاگرام کے ساتھ اے ٹی 24 ایل سی 64 کو انٹرفیس کرنا
جیسا کہ ہم ذیل میں اسکیمیٹک میں دیکھ سکتے ہیں ، EEPROM I2C لائن میں دو پل اپ ریسٹرز کے ساتھ جڑا ہوا ہے۔ انتہائی بائیں طرف ، پروگرامنگ انٹرفیس کنکشن دکھایا گیا ہے۔
میں نے اے ٹی 24 ایل سی 64 آایسی کے لئے ایک بریڈ بورڈ استعمال کیا اور جمپر تاروں کا استعمال کرتے ہوئے آئی سی کو اپنے نیوٹن پروگرامر بورڈ سے جوڑا۔ نیو انک پروگرامر کے ساتھ میرا ہارڈویئر سیٹ اپ نیچے دکھایا گیا ہے۔
نووٹن N76E003 پر آئی 2 سی پن
N76E003 کا پن آریگرام نیچے کی تصویر میں دیکھا جاسکتا ہے۔
جیسا کہ ہم دیکھ سکتے ہیں ، ہر پن کی مختلف خصوصیات ہیں اور ہر پن کو متعدد مقاصد کے لئے استعمال کیا جاسکتا ہے۔ تاہم ، پن 1.4 کو آئی 2 سی ایس ڈی اے پن کے بطور استعمال کیا جاتا ہے ، اس سے پی ڈبلیو ایم اور دیگر فعالیت ختم ہوجائے گی۔ لیکن یہ مسئلہ نہیں ہے کیونکہ اس منصوبے کے لئے کسی اور فعالیت کی ضرورت نہیں ہے۔ P1.3 کے لئے بھی یہی ہوگا I2C کا ایس سی ایل پن ۔
چونکہ I2C پن ایک GPIO کی حیثیت سے کام کرتے ہیں ، لہذا اسے تشکیل دینے کی ضرورت ہے۔ تمام GPIO پنوں کو نیچے بیان کردہ وضع میں تشکیل کیا جاسکتا ہے۔
ڈیٹا شیٹ کے مطابق ، PxM1.n اور PxM2 ۔ n دو رجسٹر ہیں جو I / O بندرگاہ کے کنٹرول آپریشن کا تعین کرنے کے لئے استعمال ہوتے ہیں۔ ڈیٹاشیٹ میں ، یہ بیان کیا گیا ہے کہ I2C فعالیت کو استعمال کرنے کے لئے ، I / O طریقوں کو I2C سے متعلق مواصلات کے لئے اوپن ڈرین کے طور پر استعمال کرنے کی ضرورت ہے۔
N76E003 میں I2C مواصلات
آئی 2 سی پردیی کسی بھی مائکرو قابو پانے والے یونٹ کے لئے ایک اہم چیز ہے جو I2C خصوصیات کی حمایت کرتی ہے۔ متعدد اقسام کے مختلف مائکروکونٹرولرز اندرونی ساختہ I2C پیریفیریل کے ساتھ آتے ہیں۔ تاہم ، کچھ معاملات میں ، I2C سافٹ ویئر کنٹرول کا استعمال کرتے ہوئے دستی طور پر تشکیل دیا جاسکتا ہے جہاں I2C سے متعلق ہارڈویئر معاونت دستیاب نہیں ہے (مثال کے طور پر ، بہت سے 8051 مائکروکانٹرولرز)۔ تاہم ، نووٹن N76E003 I2C پردیی حمایت کے ساتھ آتا ہے۔
M76E003 I2C طریقوں میں چار اقسام کی کارروائیوں کی حمایت کرتا ہے۔ - ماسٹر ٹرانسمیٹر ، ماسٹر وصول ، غلام ٹرانسمیٹر ، اور غلام وصول کنندہ۔ یہ I2C لائن کے ل standard معیاری (100kbps) اور تیز (400kbps تک) رفتار کی بھی حمایت کرتا ہے۔ I2C ایس سی ایل اور ایس ڈی اے سگنل لائنوں میں کچھ عام اصولوں کے ساتھ کام کرتا ہے۔
اسٹارٹ اور اسٹاپ کی حالت:
یہ I2C مواصلات میں ایک اہم چیز ہے۔ جب ڈیٹا I2C لائن پر منتقل ہوتا ہے تو ، یہ شروعاتی حالت سے شروع ہوتا ہے اور اسٹاپ کی حالت کے ساتھ ختم ہوتا ہے۔
ایس سی ایل لائن زیادہ ہونے پر ایس ڈی اے میں ابتدائی حالت اعلی سے کم منتقلی ہوتی ہے اور ایس سی ایل لائن زیادہ ہونے پر ایس ڈی اے پر کم سے زیادہ منتقلی کی حالت ہوتی ہے۔ یہ دو شرائط ماسٹر (ایم سی یو یا کوئی بھی چیز جو دوسرے غلام ڈیوائسز کو کنٹرول کررہی ہیں) پیدا کرتی ہیں۔ اس وقت بس لائن اس حالت میں مصروف رہتی ہے جب شروعاتی حالت شروع کی جاتی ہے اور جب اسٹاپ کی شرط کا آغاز کیا جاتا ہے تو دوبارہ آزاد رہتا ہے۔
اسٹارٹ اور اسٹاپ کی حالت کو N76E003 ڈیٹا شیٹ میں سگنل کے تناظر میں عمدہ طور پر دکھایا گیا ہے۔
ڈیٹا فارمیٹ کے ساتھ 7 بٹ ایڈریس:
N76E003 7 بٹ ایڈریس اور ڈیٹا فارمیٹ کی حمایت کرتا ہے۔ شروع کی حالت شروع ہونے کے بعد ، ماسٹر ڈیوائس کو ڈیٹا I2C لائن پر بھیجنے کی ضرورت ہے۔ پہلا ڈیٹا ایک اہم ہے۔ اگر یہ ڈیٹا صحیح طور پر تخلیق یا منتقل نہیں ہوا ہے تو ، منسلک آلہ کی شناخت نہیں کی جاسکتی ہے اور مزید مواصلات نہیں کیے جاسکتے ہیں۔
ڈیٹا میں 7 بٹ لمبی غلام پتے پر مشتمل ہوتا ہے ، جسے SLA کہا جاتا ہے۔ اگر 7 بس میں متعدد ڈیوائسز منسلک ہوں تو یہ 7 بٹ لمبا پتہ ہر آلہ کے ل for انوکھا ہونا ضروری ہے۔ 7 بٹ ایڈریس کے بعد ، آٹھویں بٹ ڈیٹا سمت سا ہوتا ہے۔ اس کا مطلب یہ ہے کہ ، آٹھویں بٹ پر منحصر ہے ، ماسٹر غلام ڈیوائس کو اس بارے میں معلومات بھیجتا ہے کہ آیا اس غلام ڈیوائس میں ڈیٹا لکھا جائے گا یا اس ڈیوائس کو غلام آلہ سے پڑھا جائے گا۔ آٹھویں بٹ آر / ڈبلیو بٹ ہے جسے ریڈ یا رائٹ نوٹیفائر کہا جاتا ہے۔ جیسا کہ ہم سب جانتے ہیں کہ 8 بٹ معلومات 128 اقسام کی ہوسکتی ہیں ، اس طرح 128 ڈیوائسز کی حمایت کی جاسکتی ہیں ، لیکن I2C ایک ہی بس میں 127 ڈیوائسز کی حمایت کرتا ہے لیکن 128 نہیں۔ کیونکہ 0x00 ایڈریس ایک مخصوص ایڈریس ہے جسے عام کال ایڈریس کہا جاتا ہے۔ اگر آقا تمام آلات پر معلومات بھیجنا چاہتا ہے تو ،اس میں 0x00 پر توجہ دی جائے گی اور ہر ایک ڈیوائس انفرادی سافٹ ویئر کی ترتیب کے مطابق اسی انداز میں دوبارہ چلائے گی۔
اس طرح ، اعداد و شمار کی ترسیل ذیل کی طرح دکھائی دیتی ہے۔
تسلیم کریں:
مذکورہ بالا ڈیٹا ایڈریس امیج میں ، R / W بٹ کے بعد نویں بٹ کو تسلیم سا کہا جاتا ہے۔ یہ ایک اہم ہے کیونکہ اس بٹ کو استعمال کرتے ہوئے ، ماسٹر یا غلام غلام کو ایس ڈی اے لائن کو نیچے کھینچ کر ڈیٹا ٹرانسمیٹر کا جواب دیتا ہے۔ اعتراف بٹ حاصل کرنے کے ل the ، ٹرانسمیٹر کو ایس ڈی اے لائن جاری کرنے کی ضرورت ہے۔
I2C مواصلت کے لئے پروگرامنگ N76E003
اس ٹیوٹوریل میں استعمال ہونے والا مکمل پروگرام اس صفحے کے نیچے پایا جاسکتا ہے۔ کوڈ میں اہم طبقات کی وضاحت حسب ذیل ہے۔
اوپن ڈرین کے طور پر پنوں کو مرتب کریں اور انہیں I2C کے لئے تشکیل دیں:
آئیے پہلے I2C پن سیکشن کے ساتھ شروع کریں ۔ جیسا کہ پہلے بیان ہوا ہے ، آئی 2 سی ایس سی ایل اور ایس ڈی اے بندرگاہوں کو اوپن ڈرین کی ترتیب کے طور پر تشکیل اور ترتیب دینے کی ضرورت ہے۔ ایسا کرنے کے ل we ، ہم I2C.h ہیڈر فائل I2C.c سورس فائل کے ساتھ استعمال کر رہے ہیں ۔ کوڈ کا ٹکڑا اس طرح لگتا ہے۔
do {P13_OpenDrain_Mode؛ پی 14_اوپن ڈرین_موڈ؛ clr_I2CPX؛} جبکہ (0)
مذکورہ کوڈ P13 اور P14 کو اوپن ڈرین پن کی حیثیت سے ترتیب دے رہا ہے اور P1.3 پر S13 پن کے طور پر P13 اور P14 کو P1.4 اور S1 پن کو P1.4 پر منتخب کرنے کیلئے clr_I2CPX استعمال کیا جاتا ہے۔
یہ I2CPX I2C کنٹرول رجسٹر I2CON کا 0 واں بٹ ہے ۔ اگر یہ I2C_PX 1 کے بطور سیٹ کیا گیا ہے تو ، پنوں کو P0.2 میں SCL اور P1.6 SDA کے طور پر تبدیل کردیا گیا ہے۔ تاہم ، ہم P13 اور P14 استعمال کریں گے۔ متبادل پنوں کا استعمال یہاں نہیں ہوتا ہے۔
I2C کنٹرول رجسٹر I2CON:
I2C کنٹرول رجسٹر I2CON I2C کارروائیوں کو کنٹرول کرنے کے لئے استعمال کیا جاتا ہے۔ پہلا سا I2C پن سلیکشن سا ہے۔ اسے 0 مرتب کرنے سے I2C پن کو P13 اور P14 کی شکل دی جاتی ہے۔
اے اے بٹ ایکولنس اسلیڈ پرچم ہے ، اگر اے اے پرچم سیٹ ہوجاتا ہے تو ، ایس سی ایل لائن کے اعتراف گھڑی کی نبض کے دوران ایک اے سی کو واپس کردیا جائے گا۔ اگر یہ کلیئر ہوجاتا ہے تو ، ایس سی ایل لائن کی تسلیم شدہ گھڑی کی نبض کے دوران ایک نیک (ایس ڈی اے پر اعلی سطح) کو واپس کیا جائے گا۔
اگلی ساٹ ایس آئی ہے جو I2C کی حیثیت میں خلل ہے۔ اگر I2C کی حیثیت میں مداخلت کو فعال کیا گیا ہے تو ، صارف کو I2STAT رجسٹر کی جانچ پڑتال کرنی چاہئے تاکہ یہ معلوم کیا جاسکے کہ کون سا مرحلہ گزر گیا ہے اور اس پر کارروائی کرنی چاہئے۔
STO ماسٹر وضع میں سیٹ کیا جارہا ہے۔ ایک بار STOP حالت کا پتہ چلنے کے بعد ہارڈ ویئر کے ذریعہ STO خود بخود صاف ہوجاتا ہے ۔
اگلا سا STA سا ہے۔ اگر یہ جھنڈا مرتب کیا گیا ہے ، تو اگر بس مفت ہے تو I2C اسٹارٹ شرط تیار کرتا ہے۔ اگر بس مصروف ہے تو ، I2C کسی اسٹاپ کی حالت کا منتظر ہے اور مندرجہ ذیل شروعات کی کوئی شرط پیدا کرتا ہے۔ اگر ایس ٹی اے سیٹ کیا ہوا ہے جب کہ I2C پہلے ہی ماسٹر وضع میں ہے اور ایک یا زیادہ بائٹس منتقل یا موصول ہوچکے ہیں ، I2C بار بار شروع ہونے والی شرط پیدا کرتا ہے۔ سافٹ ویئر کے ذریعہ STA کو دستی طور پر صاف کرنے کی ضرورت ہے۔
آخری ، I2CEN I2C بس قابل یا غیر فعال بٹ ہے۔
ایپروم 24C02:
اب ، 24C02 پر آرہے ہیں۔ N76E003 کے بورڈ سپورٹ پیکیج میں 24LC64 کے لئے I2C کوڈ ہے اور اسے آسانی سے تبدیل کیا جاسکتا ہے۔ تاہم ، ہم I2C فنکشن کو سمجھنے کے لئے ایک آسان طریقہ استعمال کریں گے۔
اگر کوئی EEPROM 24C02 کے ساتھ مفصل انٹرفیسنگ استعمال کرنا چاہتا ہے تو بی ایس پی میں EEPROM پروگرام استعمال کیا جاسکتا ہے۔
ہم صرف I2C میں 24C02 کو مربوط کریں گے جہاں N76E003 ماسٹر ہوگا اور EEPROM غلام ہوگا۔ اس طرح ، ہم EEPROM پتے میں کوئی بھی ڈیٹا لکھیں گے اور اسی کو پڑھیں گے۔
24C02 EEPROM پن آؤٹ نیچے دکھایا گیا ہے۔
A0 ، A1 ، اور A2 پتے کے انتخاب کے تین پن ہیں۔ ڈبلیو پی پنوں کو تحریری حفاظت والی پن ہے اور EEPROM میں تحریری صلاحیت کو فعال کرنے کے لئے VSS سے منسلک ہونے کی ضرورت ہے۔
بائٹ رائٹ فعالیت کو نیچے کی تصویر میں دکھایا گیا ہے۔
مکمل لکھنے کا دور آغاز کے ساتھ ہی ہوتا ہے۔ اس کے بعد ، کنٹرول بائٹ پیش کرنے کی ضرورت ہے۔ کنٹرول بائٹ میں ، درج ذیل چیزوں کی ضرورت ہے۔
اسٹارٹ بٹ کے بعد ، غلام ایڈریس پر مشتمل ہوں۔ 1010 مستحکم ہے اور A0 ، A1 ، اور A2 ہارڈ ویئر کنکشن پر مبنی پتہ ہے۔ اگر تین پنوں کو GND یا VSS فراہمی کے ساتھ منسلک کیا گیا ہے تو ، اسے 0 کے طور پر پڑھا جائے گا۔ بصورت دیگر ، اگر VCC سے منسلک ہوتا ہے تو ، اسے 1 کی طرح پڑھا جائے گا۔ ہمارے معاملے میں ، تمام A0 ، A1 ، اور A2 VSS کے ساتھ جڑے ہوئے ہیں۔ اس طرح یہ سب 0 ہو جائیں گے۔
پڑھنے یا لکھنے کی شرط پر خرچ کرنا۔ پڑھیں یا لکھیں بٹ والے پتے کی قیمت ہوگی - لکھنے کے لئے 0xA0 اور پڑھنے کے لئے 0xA1۔ اس کے بعد اگینج بٹ ہے اور اس کے بعد ، 8 بٹ ایڈریس منتقل کیا جائے گا جہاں ڈیٹا کو اسٹور کرنے کی ضرورت ہے اور آخر میں ، وہ ڈیٹا جو متعلقہ مقام پر اسٹور کیا جائے گا۔ یہ کام مرکزی تقریب میں مرحلہ وار شکل میں کیے جاتے ہیں۔
مرکزی تقریب اور جبکہ لوپ:
باطل اہم (باطل) c چار c = 0x00؛ ابتدائی UART0_Timer3 (115200)؛ TI = 1؛ // اہم ، استعمال شدہ پرنفٹ فنکشن TI = 1 طے کرنا ضروری ہے۔ I2C_init ()؛ جبکہ (1) {EEPROM_writ (1،0x55)؛ c = EEPROM_read (1)؛ printf ("\ n پڑھی ہوئی قیمت٪ x" ہے ، c & 0xff)؛ }؛ }
مرکزی کام بہت آسان ہے ، وہ ایڈریس 1 میں EEPROM پر لگاتار اقدار لکھ رہا ہے اور ڈیٹا پڑھ رہا ہے۔ اس کے بعد ڈیٹا پرنٹ ایف فنکشن کا استعمال کرتے ہوئے پرنٹ ہو رہا ہے۔ پرنٹف قیمت کو ہیکس میں چھاپ رہا ہے۔
EEPROM لکھنے کی تقریب میں مندرجہ ذیل چیزوں پر مشتمل ہے جو EEPROM سیکشن میں بیان کیا گیا ہے۔
باطل EEPROM_write (دستخط شدہ چار ایڈریس ، دستخط شدہ چار قیمت) {I2C_start ()؛ I2C_writ (0xA0)؛ I2C_writ (ایڈریس)؛ I2C_writ (قدر)؛ I2C_stop ()؛ }
I2C اسٹارٹ فنکشن مندرجہ ذیل چیزوں پر مشتمل ہے-
باطل I2C_start (باطل) {دستخط شدہ انٹ ٹائم = ٹائم آؤٹ؛ سیٹ پی پی اے؛ clr_SI؛ جبکہ ((SI == 0) && (وقت> 0)) {وقت--؛ }؛ }
اس فنکشن میں ، ایس آئ کی حیثیت کو پہلے سے طے شدہ ٹائم آؤٹ پیریڈ (آئی 2 سی ایچ میں بیان کیا گیا ہے جہاں پیش وضاحتی وقت 1000 کے مطابق مقرر کیا گیا ہے) کے ساتھ بھی جانچ پڑتال کی جارہی ہے۔ اسٹارٹ فنکشن ایس ٹی اے کو ترتیب دینے اور ایس آئی کو صاف کرنے کے ساتھ شروع ہوتا ہے۔
باطل I2C_stop (باطل) {دستخط شدہ انٹ ٹائم = ٹائم آؤٹ؛ clr_SI؛ سیٹ پی او جبکہ ((STO == 1) && ((وقت> 0)) {وقت--؛ }؛ }
اسٹارٹ کی طرح ، اسٹاپ فنکشن استعمال ہوتا ہے۔ اسٹاپ فنکشن ایس ٹی او کو ترتیب دے کر شروع کیا جاتا ہے جس کے بعد ایس آئی کو کلیئر کیا جاتا ہے۔ فنکشن کے نیچے I2C پڑھنے کا فنکشن ہے۔
دستخط شدہ چار I2C_read (بغیر دستخط شدہ چار ack_mode) {دستخط شدہ انٹ ٹائم = ٹائم آؤٹ؛ بغیر دستخط شدہ چار ویلیو = 0x00؛ set_AA؛ clr_SI؛ جبکہ ((SI == 0) && (t> 0)) {وقت--؛ }؛ قدر = I2DAT؛ اگر (ack_mode == I2C_NACK) {t = ٹائم آؤٹ_کاؤنٹ؛ clr_AA؛ clr_SI؛ جبکہ ((SI == 0) && (t> 0)) {وقت--؛ }؛ } واپسی کی قیمت؛ }
ack_mode اور I2C_NACK ، دونوں 0 اور 1 بالترتیب طور I2C ہیڈر فائل میں وضاحت کر رہے ہیں.
اسی طرح لکھنے کی تقریب بھی تخلیق ہوتی ہے۔
باطل I2C_write (بغیر دستخط شدہ چارٹ ویلیو) {دستخط شدہ انٹ ٹائم = ٹائم آؤٹ؛ I2DAT = قیمت؛ clr_STA؛ clr_SI؛ جبکہ ((SI == 0) && (وقت> 0)) {وقت--؛ }؛ }
کوڈ اور آؤٹ پٹ کو چمکانا
کوڈ نے 0 انتباہ اور 0 نقائص کو لوٹا اور کیل کے ذریعہ پہلے سے طے شدہ چمکنے کا طریقہ استعمال کرکے چمک گیا۔ اگر آپ نئے ہیں تو ، کوڈ کو اپ لوڈ کرنے کا طریقہ سمجھنے کے لئے نووٹن ٹیوٹوریل کے ساتھ شروعات کرنا چیک کریں۔ کوڈ کو مرتب کرنے کی معلومات ذیل میں مل سکتی ہیں۔
'I2C_EEPROM' مرتب I2C_EEPROM.c مرتب کریں… مرتب I2C.c… جوڑ رہا ہے… پروگرام کا سائز: ڈیٹا = 59.2 xdata = 0 کوڈ = 2409 "سے ہیکس فائل تخلیق کرتے ہیں۔ \ آؤٹ پٹ \ I2C_EEPROM"… ". \ آؤٹ پٹ \ I2C_EEPROM "- 0 خرابی (زبانیں) ، 0 انتباہ (زبانیں)۔ بلڈ ٹائم گزرے: 00:00:04 بیچ بلڈ کا خلاصہ: 1 کامیاب ، 0 ناکام ، 0 اچٹ گیا - وقت گزر گیا: 00:00:04
ہارڈ ویئر ایک بریڈ بورڈ پر لگایا جارہا ہے اور توقع کے مطابق کام کر رہا ہے۔ جیسا کہ آپ نیچے کی تصویر میں دیکھ سکتے ہیں ، ہم ایپرووم پر ایک قدر لکھ سکتے تھے اور اسے میموری سے پڑھ کر سیریل مانیٹر پر ڈسپلے کرسکتے ہیں۔
اس کوڈ کے لئے بورڈ کس طرح کام کرتا ہے اس کے مکمل مظاہرے کے لئے نیچے دیئے گئے ویڈیو کو دیکھیں۔ امید ہے کہ آپ نے ٹیوٹوریل سے لطف اندوز ہوئے ہوں گے اور آپ کو کوئی مفید کام سیکھا ہے ، اگر آپ کے کوئی سوالات ہیں تو ، انہیں نیچے تبصرہ سیکشن میں چھوڑیں۔ آپ دوسرے تکنیکی سوالات پوسٹ کرنے کے لئے ہمارے فورمز کا استعمال بھی کرسکتے ہیں۔