8051 مائکروکونٹرولر کے ساتھ I2C-EEPROM انٹرفیس کیسے کریں

مسائل کو ختم کرنے کے لئے ہمارے آلے کو آزمائیں





اصطلاح I2C یا IIC مخفف ایک انٹر ہے مربوط سرکٹ اور اس کو کہتے ہیں جیسا کہ میں مربع سی I2C ایک سیریل کمپیوٹر بس ہے ، جو NXP سیمیکمڈکٹروں نے ایجاد کیا تھا اس سے پہلے اسے فلپس سیمیکمڈکٹر کا نام دیا گیا تھا۔ I2C بس کم رفتار پردیی مربوط سرکٹس کو منسلک کرنے کے لئے استعمال ہوتی ہے مائکروکنٹرولر اور پروسیسرز . سال 2006 میں ، I2C پروٹوکول کے نفاذ کے لئے کوئی لائسنسنگ فیس ضروری نہیں ہے۔ لیکن NXP سیمی کنڈکٹرز کے ذریعہ تفویض کردہ I2C غلام ایڈریس حاصل کرنے کے لئے فیس ضروری ہے۔

کچھ حریف جیسے ٹیکساس آلات ، سیمنز اے جی ، این ای سی ، موٹرولا ، انٹرسیل اور ایس ٹی میکرو الیکٹرانکس نے 1990 کی دہائی کے وسط میں مارکیٹ میں مناسب مناسب I²C مصنوعات کا اعلان کیا ہے۔ سال 1995 میں ، SMBus کی وضاحت انٹیل کے ذریعہ کی گئی ہے ، یہ I²C کا ایک ذیلی گروپ ہے جس میں کہا گیا ہے کہ پروٹوکول زیادہ سخت ہیں۔ ایس ایمبس کا بنیادی مقصد باہمی تعاون اور مضبوطی کی تائید کرنا ہے۔ لہذا ، موجودہ I²C سسٹم میں SMBus کے قواعد اور پالیسیاں شامل ہیں ، بعض اوقات یہ کم سے کم تشکیل نو کے ساتھ I2C اور SMBus دونوں کی حمایت کرتا ہے۔




I2C بس

I2C بس

انٹرفیس I2C بس - EEPROM 8051 مائکروکانٹرولر کے ساتھ

I2C بس کیا ہے؟

I2c بس میں دو سمتیہ کھلی نالی لائنوں جیسے ایس ڈی اے (سیریل ڈیٹا لائن) اور ایس سی ایل (سیریل کلاک لائن) کا استعمال کیا گیا ہے اور یہ مزاحم کاروں کے ساتھ کھینچی گئیں۔ I2C بس ایک ماسٹر ڈیوائس کو غلام ڈیوائس کے ساتھ بات چیت شروع کرنے کی اجازت دیتی ہے۔ ان دونوں آلات کے مابین ڈیٹا کا تبادلہ ہوتا ہے۔ استعمال شدہ عام وولٹیجس + 3..3 وی یا + V وی ہیں اگرچہ اضافی وولٹیج والے نظام کی اجازت ہے۔



I2C انٹرفیس

I2C انٹرفیس

EEPROM

برقی طور پر مٹا پانے کے قابل پروگرام روم (EEPROM) ایک صارف میں تبدیل کرنے والا ROM ہے جسے عام برقی وولٹیج سے زیادہ استعمال کرنے کے ذریعہ بار بار ہٹایا جاسکتا ہے اور اسے دوبارہ پروگرامر کیا جاسکتا ہے۔ EEPROM ایک طرح کی غیر مستحکم میموری ہے جو الیکٹرانک آلات جیسے کمپیوٹرز میں استعمال ہوتی ہے جس میں تھوڑی مقدار میں ڈیٹا اسٹور کیا جاتا ہے جسے بجلی کے الگ ہونے پر بچانا چاہئے۔

8051 سلکر بورڈ

8051 سلکر بورڈ خاص طور پر اس علاقے میں تکنیکی طلباء کی مدد کے لئے تیار کیا گیا ہے سرایت شدہ نظام . اس کٹ کو اس طرح ڈیزائن کیا گیا ہے کہ اس کی تمام خصوصیات 8051 مائکروکانٹرولر ممکنہ طور پر طلباء استعمال کریں گے۔ یہ اسٹرائیکر بورڈ آئی ایس پی (ان سسٹم پروگرامنگ) کی حمایت کرتا ہے جو سیریل پورٹ کے ذریعے کیا جاتا ہے۔ این ایکس پی کی طرف سے یہ کٹ اور 8051 رفتار 8 بٹ مائکروکنٹرولرز کے آس پاس کے بہت سے ڈیزائنوں کی ڈیبگنگ کی پیشرفت کو ہموار کرنے کی تجویز ہے۔

انٹرفیسنگ I2C - EEPROM

مندرجہ ذیل اعداد و شمار I5C-EEPROM کو 8051 مائکروکانٹرولر کے ساتھ مداخلت کرتا ہے۔ یہاں ، I2C ایک ماسٹر غلام غلام پروٹوکول ہے ، جس میں گھڑی کی نبض کے ساتھ ساتھ ڈیٹا بھی شامل ہوتا ہے۔ عام طور پر ، ماسٹر ڈیوائس نے گھڑی کی لائن کو تبدیل کیا ، ایس سی ایل۔ یہ لائن اعداد و شمار کے وقت کا آرڈر دیتی ہے جو I2C بس پر منتقلی کرتی ہے۔ جب تک گھڑی نہیں چلائی جاتی ہے ، کوئی بھی ڈیٹا منتقل نہیں ہوتا ہے۔ تمام غلاموں کو ایک ہی گھڑی ، ایس سی ایل کے ذریعہ کنٹرول کیا جاتا ہے۔


انٹرفیسنگ I2C - EEPROM

انٹرفیسنگ I2C - EEPROM

I2C بس مختلف آلات کی حمایت کرتی ہے جہاں ہر آلے کی شناخت ایک انوکھے پتے سے ہوتی ہے چاہے وہ LCD ڈرائیور ، میموری کارڈ ، مائکروکونٹرولر ہو یا کی بورڈ میں انٹرفیسنگ جو Tx یا Rx کے بطور کام کرسکتی ہے اس کا انحصار آلہ کے کام پر ہے۔ کنٹرولر I2C پروٹوکول کے ذریعے EEPROM ڈیوائس کو کنٹرول کرنے کے لئے ڈیزائن کیا گیا ہے۔ یہاں ، وہ I2C پروٹوکول ایک ماسٹر ڈیوائس کے طور پر کام کرتا ہے اور EEPROM کو باقاعدہ کرتا ہے اور یہ غلام کی حیثیت سے کام کرتا ہے۔ ایڈ / اور / یا ڈیٹا بس پر مشتمل کنٹرول سگنل کا ایک سیٹ منتقل کرکے آر / ڈبلیو آپریشن ماہر ہیں۔ مناسب سگنل کے ساتھ ان اشاروں پر شرکت کی جانی چاہئے

انٹرفیس I2C بس - EEPROM 8051 مائکروکانٹرولر کے ساتھ

اگر آپ 8051 اسٹرائیکر بورڈ میں I2C بس کا استعمال کرکے EEPROM کو لکھنا اور مٹانا چاہتے ہیں۔ I2 بس EEPROM کے ساتھ انٹرفیسنگ 8051 مائکروکانٹرولر بہت آسان ہے . اس انٹرفیسنگ کا عمل WRITE جیسے سگنل بھیجنا ہے ، اس کے بعد ڈیٹا اور ایڈریس بس ہوتا ہے۔ اس کارروائی میں ، EEPROM ڈیٹا کو ذخیرہ کرنے کے لئے استعمال کیا جاتا ہے۔ 8051 کٹ میں ، دو نمبر EEPROM لائنوں کو I2C کے حمایت یافتہ ڈرائیوروں کے ذریعہ منظم کیا جاتا ہے۔ ایس سی ایل اور ایس ڈی اے I2C پر مبنی سیریل EEPROM IC سے جڑے ہوئے ہیں۔

انٹرفیس I2C بس - EEPROM 8051 مائکروکانٹرولر کے ساتھ

انٹرفیس I2C بس - EEPROM 8051 مائکروکانٹرولر کے ساتھ

ایس ڈی اے اور ایس سی ایل آئی 2 سی لائنوں کا استعمال کرکے ، EEPROM کے پڑھنے اور تحریری عمل 8051 سلکر کٹ میں کیے جاتے ہیں

I2C کی انٹرفیسنگ بہت آسان ہے اور ہر ایک ڈیٹا میں EEPROM میں پڑھیں / لکھیں۔ تاخیر کا انحصار ان مرتب کردہ مشین پر ہوتا ہے کہ جیسے ہی آپ انتخاب میں تبدیلی کرتے ہیں تاخیر میں فرق آتا ہے۔

I2C انٹرفیسنگ کے لئے ماخذ کوڈ

# شامل کریں
# شامل کریں
# شامل کریں

# ڈیفائن اے سی 1
# متعین NO_ACK 0

دستخط شدہ چار
دستخط شدہ چار EData [5]
دستخط شدہ چار ڈیٹا
باطل ابتداء (باطل)
باطل DelayMs (بغیر دستخط شدہ)
باطل WritI2C (دستخط شدہ چارٹ)
باطل شروع (باطل)
باطل بند کرو (باطل)
باضابطہ ReadBYTE (بغیر دستخط شدہ)
باطل WritBYTE (بغیر دستخط شدہ)
دستخط شدہ چار ReadI2C (تھوڑا سا)

ایسبیٹ ایس سی ایل = پی 2 ^ 0 // ایس سی ایل پن سے جڑیں (گھڑی)
ایسبیٹ ایس ڈی اے = پی 2 ^ 1 // ایس ڈی اے پن سے مربوط ہوں (ڈیٹا)

//
// مین پروگرام
//
باطل اہم (باطل)
{
ابتداء () // سیریل پورٹ کو شروع کریں
پوٹچار (0x0C) // واضح ہائپر ٹرمینل
DelayMs (5)
WritBYTE (0x0000)
WritI2C (‘A’) // یہاں ڈیٹا لکھیں
WritI2C (‘B’)
WritI2C (‘C’)
WritI2C (‘D’)
WritI2C (‘E’)
WritI2C (‘F’)
بند کرو ()
DelayMs (10)

ReadBYTE (0x0000)
ایڈیٹا [0] = ReadI2C (NO_ACK)
ایڈیٹا [1] = ReadI2C (NO_ACK)
ایڈیٹا [2] = ReadI2C (NO_ACK)
ایڈیٹا [3] = ReadI2C (NO_ACK)
ایڈیٹا [4] = ReadI2C (NO_ACK)
ایڈیٹا [5] = ReadI2C (NO_ACK)

(i = 0i) کیلئے<6i++)
{
پرنٹف ('قدر =٪ c n' ، ای ڈیٹا [i]) // ڈسپلے ڈیٹا * /
DelayMs (100)
}

جبکہ (1)
}

//
// سیریل پورٹ شروع کریں
//
باطل ابتداء (باطل)
{
SCON = 0x52 // سیٹ اپ سیریل پورٹ کنٹرول
TMOD = 0x20 // ہارڈ ویئر (9600 BAUD @ 11.0592MHZ)
TH1 = 0xFD // TH1
TR1 = 1 // ٹائمر 1 آن
}

// ———————————-
// اسٹارٹ I2C
// ———————————-
باطل شروع (باطل)
{
ایس ڈی اے = 1
ایس سی ایل = 1
_ بٹن _ () _ نہیں_ ()
ایس ڈی اے = 0
_ بٹن _ () _ نہیں_ ()
ایس سی ایل = 0
_ بٹن _ () _ نہیں_ ()
}

// ———————————-
// I2C روکیں
// ———————————-
باطل بند کرو (باطل)
{
ایس ڈی اے = 0
_ بٹن _ () _ نہیں_ ()
ایس سی ایل = 1
_ بٹن _ () _ نہیں_ ()
ایس ڈی اے = 1
}

// ———————————-
// I2C لکھیں
// ———————————-
باطل WritI2C (دستخط شدہ چار ڈیٹا)
{

(i = 0i) کیلئے<8i++)
{
ایس ڈی اے = (ڈیٹا اور 0x80)؟ 1: 0
ایس سی ایل = 1 ایس سی ایل = 0
ڈیٹا<<=1
}

ایس سی ایل = 1
_ بٹن _ () _ نہیں_ ()
ایس سی ایل = 0

}

// ———————————-
// I2C پڑھیں
// ———————————-
دستخط شدہ چار ReadI2C (بٹ ACK_Bit)
{

شروع کریں ()
WritI2C (0xA1)

ایس ڈی اے = 1
(i = 0i) کیلئے<8i++)

ایس سی ایل = 1
ڈیٹا<<= 1
تاریخ = (تاریخ)

اگر (ACK_Bit == 1)
ایس ڈی اے = 0 // ACK ارسال کریں
اور
ایس ڈی اے = 1 // NO ACK ارسال کریں

_ بٹن _ () _ نہیں_ ()
ایس سی ایل = 1
_ بٹن _ () _ نہیں_ ()
ایس سی ایل = 0
بند کرو ()
ڈیٹا واپس کریں
}

// ———————————-
// 1 بائٹ فارم I2C پڑھیں
// ———————————-
باطل ReadBYTE (دستخط شدہ INT ایڈر)
{
شروع کریں ()
WritI2C (0xA0)
WritI2C ((دستخط شدہ چارٹ) (ایڈر >> 8) اور 0xFF)
WritI2C ((دستخط شدہ چارٹ) ایڈڈر اور 0xFF)
}

// ———————————-
// I2C پر 1 بائٹ لکھیں
// ———————————-
باضابطہ WritBYTE (دستخط شدہ INT ایڈر)
{
شروع کریں ()
WritI2C (0xA0)
WritI2C ((دستخط شدہ چار)) (ایڈر >> 8) اور 0xFF) // بھیجیں ایڈریس اونچی
WritI2C ((دستخط شدہ چار) ایڈڈر اور 0xFF) // ایڈریس کم بھیجیں
}

//
// تاخیر ایم ایس تقریب
//
باطل DelayMs (بغیر دستخط شدہ گنتی شمار)
m // mSec تاخیر 11.0592 میگاہرٹز
دستخط شدہ انٹ i // کییل v7.5a
جبکہ (گنتی)
{
i = 115
جبکہ (i> 0) i–
شمار-
}
}

اس طرح ، یہ سب I2C انٹرفیس کے نفاذ کے بارے میں ہے۔ ہم امید کرتے ہیں کہ آپ کو اس تصور کی بہتر تفہیم ملی ہے۔ مزید یہ کہ ، اس تصور کے بارے میں کوئی سوالات یا انٹرفیسنگ ڈیوائسز براہ کرم ذیل میں تبصرہ سیکشن میں تبصرہ کرکے اپنی قیمتی تجاویز دیں۔