ارتباط سریال I2C در زبان بیسیک BASIC

ارتباط سریال I2C

پایه های مورد استفاده پروتکل I2C در AVR به نام پایه SCL و SDA است. در مطالب ابتدایی این آموزش با این ارتباط و پایه های آن آشنا شدید. البته برای ارتباط باید ازیک مدار مقاومتی مانند مدار زیر استفاده کنید. (مدار زیر نحوه ارتباط یک تراشه با میکروکنترلر AVR از طریق ارتباط I2C را نشان می دهد).

ارتباط سریال I2C در زبان بیسیک BASIC

نکته : حداکثر فرکانس کار این ارتباط 400khz می باشد.

در ارتباط I2C هم مانند ارتباط سریال spi یک سیستم باید master و دیگر سیستم ها به صورت slave طرح ریزی شوند.

نحوه ارتباط سریال spi یک سیستم Master با دیگر سیستم ها به صورت Slave

نکته : برد این ارتباط با مقدار مقاومتی حدود چند سانتی متر می باشد و بر ای فواصل دور نمی توان از آن استفاده کرد. در فواصل دور باید سیگنال تقویت شود.مدار زیر برای فواصل دور و تا فاصله 80cm طراحی شده است.

مدار تقویت کننده جهت افزایش فاصله ارتباط سریال I2C تا 80 سانتی متر

پیکر بندی پایه data در ارتباط سریال I2C در زبان بیسیک BASIC

این دستور پایه sda را به عنوان پایه data برای میکرو معرفی می کند.

پیکر بندی پایه clock در ارتباط سریال i2c

این دستور پایه scl را به عنوان پایه clock برای میکرو معرفی می کند.

تعیین فرکانس کلاک در ارتباط سریال i2c

این دستور مقدار x را در 10k ضرب کرده و به عنوان فرکانس کلاک i2c استفاده می کند.

نکته : x می تواند بین 1 تا 40 تغییر کند و در صورت قرار دادن مقدار بیشتر همان مقدار 40 را در نظر می گیرد.

پیکر بندی پایه clock در ارتباط سریال i2c

این دستور پایه scl را به عنوان پایه clock برای میکرو معرفی می کند.

دریافت داده از خط ارتباط سریال i2c

در برنامه نویسی این دستور از پورت ارتباط سریال i2c داده دریافت و در متغیر var می ریزد.

Address : در زمانی که سیستم slave یک حافظه سریال متصل به پورت i2c باشد می توانید آدرس حافظه را تعیین و از آن آدرس داده دریافت کنید.

Nt : مشخص کننده تعداد بایت ارسالی

Nr : مشخص کننده تعداد بایت دریافتی

ارسال داده از خط ارتباط سریال i2c

این دستور به پورت ارتباط سریال i2c داده درون متغیر var را ارسال می کند.

Address : در زمانی که سیستم slave یک حافظه سریال متصل به پورت i2c باشد می توانید آدرس حافظه را تعیین و به آن آدرس داده ارسال کنید.

Nt : مشخص کننده تعداد بایت ارسالی

شروع پروتکل ارتباط سریال i2c

این دستور پورت i2c را آماده ارسال داده می کند.

پایان پروتکل ارتباط سریال i2c

این دستور پورت i2c را قطع می کند.

دریافت داده از پروتکل ارتباط i2c

این دستور از پورت i2c داده دریافت کرده و در متغیر var می ریزد. برای ادامه کار در صورتی که بخواهید بایتی دیگر را بخوانید باید از گزینه ack و اگر آخرین بایت داده دریافتی شما باشد از گزینه nack استفاده می شود.

ارسال داده به پروتکل ارتباط i2c

این دستور به پورت i2c داده درون متغیر var را ارسال می کند.

پروژه :

در پروژه زیر ارتباط بین سنسور دمای DS1624 و میکروکنترلر AVR توسط پروتکل ارتباط سریال i2c می باشد. میکروکنترلر AVR توسط ارتباط سریال UART به کامپیوتر متصل بوده و مقدار دما در محیط Rerminal Emulator مشاهده می شود. این سنسور دما مقادیر دمای خود را توسط ارتباط سریال ارسال می کند.

 اطلاعات پروژه

 رمز فایل : www.electronics98.com (این مطلب فاقد فایل جهت دانلود است)

 نویسنده : فرهاد اکبری

 تاریخ انتشار : 11 اکتبر 2014

 شرایط و قوانین ثبت دیدگاه

 فارسی بنویسید و از کیبورد فارسی استفاده کنید.

 لطفاً بیش‌از‌حدِ معمول، شکلک یا ایموجی استفاده نکنید و از کشیدن حروف یا کلمات با صفحه‌کلید بپرهیزید.

 به کاربران و سایر اشخاص احترام بگذارید. پیام‌هایی که شامل محتوای توهین‌آمیز و کلمات نامناسب باشند، حذف می‌شوند.

 از ارسال لینک‌های سایت‌های دیگر و ارایه‌ی اطلاعات شخصی خودتان مثل شماره تماس، ایمیل و آی‌دی شبکه‌های اجتماعی پرهیز کنید.