در آموزش بخش دهم از سری آموزش های برد micro:bit میکروبیت، به معرفی پروتکل ارتباطی در میکروبیت UART, SPI, I2C میپردازیم. اینکه این پروتکلها چه هستند و برای چه کاربردی مناسب هستند، موضوعی است که پیش از این در دیجی اسپارک به آن رسیدگی شده است. در این پست روش راه اندازی این پروتکلها را آموزش خواهیم داد. میکروبیت از هر سه پروتکل پشتیبانی کرده و قابلیت استفاده دارد. در ادامه با مرجع تخصصی برد میکروبیت micro:bit به زبان فارسی، دیجی اسپارک همراه باشید.
استفاده از UART در میکروبیت
UART مخفف عبارت Universal Asynchronies Receiver Transmitter است . از پروتکل ارتباطی UART برای برقراری ارتباط سریال بین میکروکنترلرها و دیوایس ها استفاده میشود. ارتباط UART، یک ارتباط دو طرفه است. در پروتکل ارتباطی UART فرستنده و گیرنده می توانند همزمان داده را ارسال و دریافت کنند. ارتباط UART دارای دو پایه RX و TX است. پایه RX جهت دریافت و پایه TX جهت ارسال داده ها به کار می رود. بادریت مشخص میکند که اطلاعات با چه سرعتی بر روی خط سریال ارسال میشوند و واحد بیت در ثانیه (bps) بیان میشود.یکی از پرکاربردترین بادریت ها ۹۶۰۰ بیت در ثانیه است. دیگر بادریت های استاندارد ۱۲۰۰، ۲۴۰۰، ۴۸۰۰، ۱۹۲۰۰، ۳۸۴۰۰، ۵۷۶۰۰ و ۱۱۵۲۰۰ است.
دستورات UART در میکروبیت
در این دستور بادریت،بیت، TX, RX و پارامترهای مورد نیاز برای معرفی ارتباط UART معرفی و مشخص شده است. در صورت راه اندازی ارتباط UART بر روی پین های خارجی در صورت استفاده از کنسول پایتون پورت USB شناسایی نمیشود. برای بازگرداندن کنسول پایتون در صورت قطع ارتباط بایستی ارتباط پایه های TX , RX را قطع کنید و یا هیچ دیتایی ارسال نکنید. به همین دلیل از بادریت uart.init(115200) برای ارتباط کنسول میتوانید استفاده کنید.
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
استفاده از I2C در میکروبیت
پروتکل ارتباطی در میکروبیت و اما پروتکل محبوب I2C که به ارتباط دو سیمه معرفی میشود. برای ارتباط چندین دستگاه به یکدیگر فقط توسط دو سیم میتوانیم از پروتکل ارتباطی I2C استفاده کنیم. سرعت تبادل داده در پروتکل ۱۰۰Kbits/s , 400Kbits/s ,1Mbits/s است. پروتکل I2C از دو پایه SDA , SCL تشکیل شده است. در محبث I2C یک میکرو برای تامین کلاک در نظر گرفته میشود که نقش MASTER را ایفا میکند که در حالت عادی فقط یک MASTER و ۱۲۷ SLAVE داریم. SLAVE , ,MASTER هر دو دیتا را ارسال و دریافت میکنند و برای اینکار MASTER شروع کننده ارتباط است.
- SDA = SERIAL DATA
- SCL = SERIAL CLOCK
ماژول I2C در میکروبیت به شما امکان اتصال و ارتباط با دیوایس های دیگر را برقرار میکند. به همین ترتیب چندین دستگاه SLAVE در یک زمان میتوانند متصل شوند که هر کدام دارای آدرس منحصفر به فرد است و از آدرس های ۷ بیتی برای دیوایس ها طبق پروتکل I2C میتوانیم استفاده کنیم. با این وجود برد میکروبیت نقش MASTER را برای ما ایفا میکند.
توابع I2C در میکروبیت
تابع اصلی برای برقراری ارتباط I2C در میکروبیت به صورت زیر است. فرکانس کاری، مشخص کردن پایه SDA, SCL در این تابع مشخص میشود.
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
پایه I2C در میکروبیت
برای برقراری ارتباط I2C در میکروبیت اتصالات به صورت زیر است.
- پایه SCL پایه شماره ۱۹ است.
- پایه SDA پایه شماره ۲۰ است.
برای تغذیه حتما از یک تعذیه خارجی برای میکروبیت استفاده کنید. در صورت استفاده از چندین دیوایس I2C به میکروبیت از مقاومت پول آپ بین پایه های I2C یعنی SDA, SCL استفاده میکنیم.
استفاده از SPI در میکروبیت
پروتکل ارتباطی در میکروبیت SPI مخفف Serial Peripheral Interface در دهه ۱۹۸۰ میلادی معرفی شد! پروتکل ارتباطی SPI یک درگاه سریال ورودی و خروجی سنکرون (همزمان) با سرعت بالا است که اجازه میدهد داده ها به صورت سریال با طول قابل تنظیم (بین ۲ تا ۱۶ بیت) و همچنین سرعت انتقال قابل تنظیم به دستگاه وارد و خارج شود. در پروتکل SPI همانند پروتکل I2C، ارتباط بین دستگاه ها به صورت MASTER و SLAVE است. تفاوت عملکرد پروتکل ارتباطی در SPI این است که فقط یکی از دیوایس ها میتواند به عنوان MASTER با SLAVE ها ارتباط برقرار کند.
پایه های مورد نیاز برای ارتباط SPI به صورت زیر است:
- SCLK: سیگنالی تحت عنوان کلاک باعث همزمانی انتقال داده بین Master و Slave میشود. به ازای هر کلاک یک بیت داده منتقل میشود. این سیگنال بر روی خط SCLK تولید میشود. پس سرعت انتقال داده در SPI به فرکانس سیگنال کلاک تولید شده بر روی این پایه بستگی دارد. سیگنال کلاک از سمت Master تولید میشود.
- MOSI: در پروتکل SPI برای نوشتن داده روی Slave و خواندن داده از آن دو خط مجزا تعریف شده است. کلمه MOSI مخفف Master Output Slave Input است. Master با استفاده از این خط داده مورد نظر را به Slave انتقال میدهد.
- MISO: کلمه MISO مخفف Master Input Slave Output است. این خط برای برای انتقال داده از سمت Slave یه سمت Master از خط MOSI استفاده میشود.
- SS/CS: در حالت عادی زمانی که تنها یک Slave موجود است این خط بایستی داراری سطح ولتاژ پایین باشد. اما زمانی که تعداد Slave ها از یک عدد بیشتر شود. این خط برای انتخاب Slave مورد نظر مورد استفاده قرار میگیرد. به تعداد Slave ها های موجود بایستی از هر کدام از Slave ها یک خط SS به Master متصل شود. برای انتخاب Slave مورد نظر بایستی سطح ولتاژ خط مربوط به Slave مورد نظر را پایین و سطح ولتاژ باقی خطوط SS بالا باشد.
ماژول SPI در میکروبیت به شما امکان ارتباط با دیوایس های SPI را فراهم میکند. پروتکل ارتباطی SPI از معماری MASTER و SLAVE بهره برده و برای ارتباط به سه سیگنال و همان ارتباط سه سیمه نیاز داریم.
- SCLK : Serial Clock (output from master)
- MOSI : Master Output, Slave Input (output from master)
- MISO : Master Input, Slave Output (output from slave)
توابع SPI در میکروبیت
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
پایه SPI در میکروبیت
برای برقراری ارتباط SPI در میکروبیت پس از یادگیری و فراخوانی دستورات پایه های ارتباطی SPI را مشخص میکنیم.
- پایه MOSI پایه P15 است.
- پایه MISO پایه P14 است.
- پایه SCK پایه P13 است.
جمع بندی لیدی پای
برد میکروبیت از سری بردهای میکروکنترلر است که از پروتکل های ارتباطی UART,I2C,SPI پشتیبانی میکند. برای استفاده از این پایه ها بایستی از شیلد GPIO برای استفاده از پایه های کوچکتر در برد میکروبیت استفاده کنید. در هر بخش از آموزش پایه های هر پروتکل مشخص شده است. برای اتصال دیوایس ها و سنسورهایی که با پروتکل های ارتباطی کار میکنند، نیاز به استفاده از پایه ها و توابع آن ها داریم. بسیاری از قطعات مانند ماژول های مخابراتی مثل SIM800L, HC05 از طریق ارتباط UART با میکروکنترلر کار میکنند. سنسورهایی مانند فشارسنج دماسنج BMP280, MLX90614 و یا نمایشگرهای LCD I2C, OLED I2C از پروتکل ارتباطی I2C برای برقراری ارتباط با میکروبیت استفاده میکنند. همچنین برای ارتباط SPI ماژول هایی مانند RFID READER, SD CARD برای راه اندازی و ارتباط با میکروکنترلر میکروبیت به رابط SPI نیاز دارند. مطابق با آموزش ارائه شده و مشخص شدن پایه ها از ارتباط SPI,I2C,UART میتوانید بسته به نیاز پروژه استفاده کنید.
وسایل مورد نیاز
چنانچه در مراحل راه اندازی برد میکروبیت و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.