راه اندازی ماژول NRF24L01+ با استفاده از میکروکنترلر AVR
-ماژول nrf24l01+ چیست ؟
ماژول nrf24l01+ یک ماژول مخابراتی برای انتقال اطلاعات به صورت بیسیم می باشد . این ماژول در باند 2.4GHZ کار می کند . ماژول nrf24l01+ ساخت شرکت NORDIC SEMICONDUCTOR اسا و در سال 2008 به بازار عرضه شد . ماژول nrf24l01+ قابلیت تنظیم نرخ ارسال اطلاعات از KBS تا MBS 2 مگابیت را دارد. ماژول nrf24l01+ در دو حالت فرستنده و گیرنده قابل تنظیم می باشد .این ماژول دارای کریستال برای تولید PLL و همچنین مدولاسیون GFSK در حالت فرستنده و دمدولاسیون در حالت گیرنده می باشد.
-ویژگی های ماژول nrf24l01+ :
1-مصرف جریان بسیار پایین بین 11.3 تا 12.3 میلی آمپر است .ماژول قابلیت ورود به حالت STANDBY با مصرف 22 میکرو آمپر را دارد.
2- دارای رگولاتور ولتاژ داخلی. ماژول NRF24L01 قابلیت کار کردن با ولتاژ خارجی بین 1.9V تا 3.6V را دارا می باشد.
3- قابلیت کنترل اتوماتیک بسته های داده را دارد.
4- 6 مسیر ورودی داده با قابلیت آدرس دهی متفاوت .
5-ارزان قیمت
6-وجود کریستال 16 مگاهرتز
7-تحمل ولتاژ 5ولت برای پایه های ارتباطی با کنترلر
-کاربردهای ماژول nrf24l01+ :
این ماژول به دلیل وجود ویژگی های منحصر به فرد که عمده آن در بالا ذکر شد قابلیت استفاده و کاربرد در موارد بسیاری از جمله ساخت وسایل جانبی وایرلس کامپیوتر مثل موس , کیبورد و ریموت . هدست های VOIP , کنترلرهای بازی , ساعت های اسپورت و سنسور ها , انتقال اطلاعات به صورت رادیویی در کاربرد های صنعتی , ساخت ابزار ها و دستگاههای هوشمند جهت اتوماسیون خانه , ایجاد شبکه های وایرلس کوچک , اسباب بازی و … اشاره کرد.
-نحوه راه اندازی ماژول NRF24L01 :
نحوه ارتباط با ماژول NRF24L01 از طریق واسط استاندارد سریال SPI می باشد . پین مورد استفاده برای ارتباط با میکروکنترلر بالا دستی 6 عدد می باشد که عبارتند از: MOSI , MISO SCK , CE, CSN , IRQ
همانطور که می دانید انواع مختلفی از ماژول های NRF24L01 در بازار موجود است . سوالی که اکثر کاربران با آن مواجه هستند این است که آیا نحوه ی اتصال آن ها به میکروکنترلر متفاوت هست ؟ در پاسخ باید گفت که خیر . چون چیپ یا آیسی اصلی همه ماژول ها یکی هست و پین های مورد نیاز برای راه اندازی تفاوتی با یکدیگر ندارد.
اما تفاوت این تنوع از ماژول ها در چیست ؟ معمولا تفاوت اصلی در نوع و کیفیت قطعات مورد استفاده و برد آنها است . دیگری وجود قطعات تقویت سیگنال خروجی برای ارسال برد بالاتر و با کیفیت تر است . به عنوان مثال ماژول های با پسوند(Power Amplifier) PA یا (Low Noise Amplifier) LNA در واقع به افزایش برد ماژول و دریافت اطلاعات با نویز کمتر اشاره دارد که معمولا با یک آنتن همراه است.
-کانال های فرکانسی در ماژول NRF24L01 :
برای ارتباط بین دو ماژول NRF24L01 نیاز است که کانال فرکانسی بین فرستنده و گیرنده یکسان باشد . کانال فرکانسی در ماژول NRF به صورت نرم افزاری قابل تنظیم است که این مقدار می تواند عددی بین 2.400 تا 2.525 GHz باشد. هر کانال فرکانسی پهنای باندی حدود 1 مگاهرتز را اشغال می کند که با این وجود 125 کانال فرکانسی قابل تنظیم است. همین ویژگی باعث می شود که بتوان 125 ماژول مختلف را در یک محیط بدون تاثیر گذاری بر یکدیگر استفاده نمود.
ایجاد شبکه با استفاده از ماژول Nrf24l01+ :
هر ماژول Nrf24l01+ از یک مسیر خروجی (Data Pipe) برای انتقال داده با قابلیت آدرس دهی به صورت 5 بایتی و از 6 مسیر ورودی دریافت داده با قابلیت آدرس دهی 5 بایتی بهره می گیرد . پس هر گیرنده به طور همزمان قابلیت دریافت داده از 5 ماژول فرستنده دیگر را دارد .
قابلیت Enhanced ShockBurst Protocol در ماژول NRF24L01+ :
ماژول NRF24L01 از ویژگی به نام Enhanced ShockBurst Protocol بهره می گیرد که قادر به کنترل و تولید یک بسته داده با توجه به تنظیمات نرم افزاری است .همانطور که در شکل زیر مشاهده می کنید این بسته داده از اجزای مختلف تشکیل شده است:
Preamble : بایت شروع که در ابتدای یک پکت قرار می گیرد .
Address : آدرس تنظیم شده توسط نرم افزار که طول آن 3 تا 5 بایت است.
Packet Control : بایت 9 برای تنطیم Packet Id یا مشخصه بسته , تنظیم Auto Ack بودن و طول بسته اطلاعات اصلی (Payload Length)
Payload : در این فیلد اطلاعات اصلی قرار می گیرد.
CRC: قفل نرم افزاری یا همان CRC بر روی پکت است که صحت و درستی پکت ارسالی را تضمین می نماید .
اما نکته مهم این است که کاربر در تولید این پکت هیچ گونه نقشی ندارد و فقط با تنظیمات اولیه ماژول تولید این بسته را به عهده خود ماژول می گذارد.
-ویژگی کنترل اتوماتیک بسته داده در ماژول NRF24L01 :
برای درک این موضوع 3 سناریو را مورد بحث قرار می دهیم .
1- ارسال با acknowledgement و interrupt:در این حالت فرستنده پکت مورد نظر را به سمت گیرنده ارسال می کند .وقتی که پکت داده به طور کامل ارسال شد ؛ فرستنده 130 میکروثانیه صبر می کند تا گیرنده پبام موفقیت آمیز بودن دریافت یا پکت acknowledgement را برگرداند.پس از دریافت این پکت توسط فرستنده , ماژول فرستنده پایه IRQ را به نشانه دریافت داده تغییر وضعیت می دهد .
2-ارسال داده در صورتی که اطلاعات در مسیر خراب یا از بین برود: فرض کنید پکت به سمت گیرنده ارسال شود و پکت به هر دلیلی به مقصد نرسد . پس فرستنده در تایم مشخص شده پیام موفقیت آمیز بودن را از گیرنده دریافت نمی کند و فرستنده مجددا پکت را ارسال می کند تا گیرنده آن را دریافت و پاسخ دهد . (تعداد ارسال و تلاش برای ارسال پکت در ماژول قابل تنظیم است)
3-از بین رفتن پکت موفقیت ( پکت ACK ) :فرض کنید فرستنده پیام را ارسال می کند و گیرنده هم آن را به درستی دریافت و پیام موفقیت آمیز را برای فرستنده ارسال می کند اما پیام ACK در میانه راه از بین می رود . در حالت فرستنده گمان می کند که گیرنده بسته را دریافت نکرده و پس از مدت زمان 130 میکروثانیه دوباره آن را ارسال می کند . گیرنده نیز پس از دریافت بسته با مقایسه ID بسته آن را یک بسته تکراری فرض می کند و آن را دور می ریزد.
-راه اندازی نرم افزاری ماژول NRF24L01+ توسط میکروکر AVR :
اگر بر روی اینترنت جستجو کرده باشید کدها و کتابخانه ای زیادی برای راه اندازی ماژول NRF24L01+ پیدا خواهید کرد که معمولا برای آردوینو نوشته شده اند . اما از آنجا که کاربران ایرانی معمولا از کدویژن CODEVISION استفاده می کنند شاید این محصول بتواند مشکل شما را حل کند . تیم فارس الکترونیک مانند همیشه با در نظر گرفتن نیاز کاربران خود اقدام به نوشتن یک کتابخانه کامل برای کامپایلر کدویژن نموده است که در نسخه اول قابل استفاده برای میکروکنترلرهای ATMEGA8 , ATMEGA16 , ATMEGA32 می باشد .
محتویات این محصول شامل :
1- کتابخانه کامل و OPEN SOURCE راه اندازی ماژول NRF24L01+ برای کدویژن.
2- آموزش ویدئویی نحوه استفاده از کتابخانه و آموزش توابع و نکات راه اندازی ماژول
3-ارایه نقشه سخت افزاری جهت راه اندازی بهتر
4- مثال های متنوع برای راه اندازی , شبکه سازی و …
درصورت خرید این محصول از پشتیبانی و مشاوره جهت راه اندازی و استفاده از کتابخانه بهره مند شوید .
درصورت داشتن هرگونه سوال و یا مشکل در استفاده و یا نحوه خرید از پشتیبانی و راهنمایی آنلاین کمک بگبرید
alireza
در تاریخ
سلام
کتابخانه کاملی بود و استفاده از اون هم به سادگی توضیح داده شده بود ممنون از آموزش خوبتون.