بررسی مدهای کاری بردهای خانواده nRF24 و nRF52
تا به امروز بردهای خانواده nRF در دو مدل nRF24 و nRF52 طراحی و تولید میشوند. هر کدام مدلهای مختلف و نسخههای متنوعی دارند. این تراشهها دارای ارتباط بیسیم هستند و انتخاب مهمی در زیرساخت اینترنت اشیا به حساب میآیند. مدلهای nRF52 به نوعی میکروکنترلر هم حساب میشوند. به چنین تراشههایی SoC گفته میشود. به معنی system on a chip بنابراین تمامی بردهای nRF52 به تنهایی قابلیت برنامه نویسی و اجرای دستورات را دارند. اما مدلهای nRF24 حتما به یک میکروکنترلر نیاز دارند و قابلیت تبادل دیتا بین همدیگر را دارند. راه اندازی بردهای خانواده nRF زیر و بم زیادی دارد. بنابراین قبل از اقدام به شروع کار با آنها بایستی اطلاعات کاملی نسبت به آنها داشته باشید. این اطلاعات لازم نیست به شدت تخصصی باشند. بلکه به نوعی نیازمندی مدیرهای شرکتها و کسب و کارهایی است که میخواهند پروژههایی را روی این میکروکنترلرها پیاده سازی کنند. بنابراین سعی کردهایم اصطلاحات مهم این بردها را در قالب این پست برای شما توضیح دهیم. مدهای کاری بردهای nRF24 و nRF52 بسیار تعیین کننده در روند اجرای صحیح و بدون خطا یا هنگ کردن در پروژهها هستند. اگر این مطلب از بلاگ دانشجو کیت برای شما ارزشمند بود و به اطلاعاتتان اضافه کرد، آنرا با دیگران به اشتراک بگذارید تا دانش فنی مدیرها و کاربران فارسی زبان در این حوزه و IoT رشد پیدا کند.
معرفی انواع ماژولهای خانواده nRF24 و nRF52
کلیه بردهای خانواده nRF برای ارتباطات در اینترنت اشیا (IoT) و پروژههای الکترونیکی بسیار کاربردی و پر اهمیت هستند. تبادل اطلاعات و تنوع تعداد فرستندهها و گیرندهها در سناریوهای مختلف اینترنت اشیا اهمیت دارند. تا اینجا دو نسل از ماژولهای nRF را کامل بررسی کردهایم. پیشنهاد میشود پست «تفاوت تراشه NRF24 با NRF52 و راهنمای انتخاب برای پروژههای مختلف» و پست «بررسی 27 AT COMMAND مهم در بردهای NRF24 و NRF52» را مطالعه کنید. تراشههای nRF24 برای ارتباط بیسیم بین دو دستگاه (Point-to-Point) طراحی شدهاند. ولی قابلیت همزمانی در شنیدن و پاسخ دادن به یکدیگر را دارا هستند. تراشههای nRF52 علاوه برقابلیت تبادل بیسیم به نوعی MCU هم هستند. یعنی به میکروکنترلر مجزایی نیاز ندارند و به تنهایی قابلیت پروگرام شدن را دارند. در کلیه اعضای خانواده nRF52 قابلیت بسیار مهمی به اسم شبکه مش Mesh هم قابل پیاده سازی است. در این پست مدهای کاری مختلف هر کدام از این خانوادهها را بررسی میکنیم.
ماژولهای خانواده nRF24:
nRF24L01: این ماژول به عنوان ماژول RF بیسیم 2.4 گیگاهرتز با قدرت کم و رابط SPI شناخته میشود. معمولاً دارای برد کوتاه و عمر باتری طولانی است.
nRF24L01+: این نسخه بهبود یافته nRF24L01 است که برد و عملکرد بهتری دارد. آنتن درونی یا خارجی دارد و در برخی مدلها قابلیت تغذیه با ولتاژ بالاتر نیز دارد.
ماژولهای خانواده nRF52:
nRF52832: این یکی از محبوبترین تراشههای nRF52 است که دارای پردازنده ARM Cortex-M4 و بلوتوث نسخه 5 است. این تراشه دارای حافظه بزرگی است و میتواند در برنامههای پیچیده استفاده شود.
nRF52840: این تراشه قدرتمند دارای پردازنده ARM Cortex-M4 و بلوتوث نسخه 5 است. آن همچنین از USB، NFC و قابلیت Thread و Zigbee پشتیبانی میکند.
nRF52810: این تراشه ورودی در خانواده nRF52 است و دارای پردازنده ARM Cortex-M4 و بلوتوث نسخه 5 است. با این حال، در مقایسه با دو تراشه قبلی، دارای حافظه کمتری است.
لطفاً توجه داشته باشید که همچنان تراشههای جدیدتری در خانوادههای nRF24 و nRF52 وجود دارند. همیشه میتوانید به منابع معتبر و سایت رسمی Nordic Semiconductor مراجعه کنید تا اطلاعات بهروزتری درباره ماژولها و تراشههای جدید این خانوادهها بدست آورید.
8 مد کاری ماژول nRF24L01
تراشه nRF24L01 در هر مد کاری که قرار بگیرد، رفتار متفاوتی خواهد داشت. بنابراین براساس سناریو مورد استفاده در پروژه با در نظر گرفتن میزان مصرف انرژی، لایههای امنیتی و نیازمندی به فرکانس تبادل دادهها بایست مد کاری مناسبی برای آن در نظر گرفت. در ادامه لیست 8 مد کاری مهم تراشه nRF24L01 را مشاهده میکنید.
- حالت ارسال (Transmit mode): ماژول در این حالت قادر به ارسال دادهها به ماژولهای دیگر است.
- حالت دریافت (Receive mode): ماژول در این حالت قادر به دریافت دادهها از ماژولهای دیگر است.
- حالت ACK دریافت (Receive mode with Auto ACK): ماژول در این حالت قادر به دریافت دادهها از ماژولهای دیگر است و به صورت خودکار ACK (تایید دریافت) برای دادههای دریافتی ارسال میکند.
- حالت ارسال و دریافت (ShockBurst™): در این حالت، ماژول به صورت متناوب دادهها را ارسال و دریافت میکند و از شکل فرستنده/گیرنده خودکار (Auto Transceiver) استفاده میکند.
- حالت ارسال و دریافت (PTX): در این حالت، ماژول به صورت متناوب دادهها را ارسال و دریافت میکند و وظیفه تعیین زمان ارسال و دریافت داده را به کد میکروکنترلر میسپارد.
- حالت ارسال و دریافت (PRX): در این حالت، ماژول به صورت متناوب دادهها را دریافت و ارسال میکند و وظیفه تعیین زمان ارسال و دریافت داده را به کد میکروکنترلر میسپارد.
- حالت ارسال به صورت پیوسته (Contiguous Carrier Transmit mode): در این حالت، ماژول به صورت پیوسته و بدون وقفه دادهها را ارسال میکند.
- حالت دریافت به صورت پیوسته (Contiguous Carrier Receive mode): در این حالت، ماژول به صورت پیوسته و بدون وقفه دادهها را دریافت میکند.
توجه داشته باشید که مدهای 7 و 8 (Contiguous Carrier) قابلیت ارسال و دریافت دادههای پیوسته بدون هماهنگی با ماژولهای دیگر را فراهم میکنند و بیشتر برای بررسی و تست ویژگیهای فیزیکی و سختافزاری ماژول استفاده میشوند.
روش تنظیم مدهای کاری nRF24L01
برای تنظیم مدهای کاری در تراشه nRF24L01 در طول اجرای پروژه، میتوانید از روشهای زیر استفاده کنید.
برنامهریزی مستقیم در کد برنامه: در کد برنامه خود، میتوانید دستورات مورد نیاز برای تنظیم مدهای کاری را بنویسید. این شامل خواندن مقادیر رجیسترها، تغییر بیتهای مربوطه و نوشتن مقدار جدید رجیسترها است. با این روش، میتوانید به طور دقیق و برنامهریزی شده مدهای کاری را در هر لحظه از برنامه تغییر دهید.
استفاده از دستورات AT Command: در صورتی که از مبدل SPI به سریال استفاده میکنید، میتوانید دستورات AT Command را برای تنظیم مدهای کاری استفاده کنید. با ارسال دستورات AT Command از طریق ارتباط سریال، میتوانید مدهای کاری را تنظیم کنید. این روش برای تنظیم سریع و آسان مدهای کاری مناسب است و نیازی به تغییر کد برنامه ندارد.
با توجه به نیاز و محیط پروژه خود، میتوانید از یکی از روشهای فوق برای تنظیم مدهای کاری تراشه nRF24L01 استفاده کنید. توصیه میشود قبل از استفاده از هر روش، مستندات مربوطه و راهنمای تراشه را مطالعه کنید تا با نحوه تنظیم مدهای کاری درست آشنا شوید و عملکرد مورد انتظار را بدست آورید.
34 مد کاری تراشه nRF52832
تراشه nRF52832 یک SoC (System on a Chip) بسیار قدرتمند است که از مجموعه متنوعی از مدهای کاری برای ارتباطات بیسیم و کاربردهای دیگر پشتیبانی میکند. در ادامه به برخی از مدهای کاری مهم این تراشه اشاره میکنیم.
- مد کاری BLE (Bluetooth Low Energy): این حالت کاری برای ارتباطات بلوتوث کم مصرف (Low Energy) استفاده میشود. این مود عموماً در این تراشه برای ارتباطات IoT، سنسورها، دستگاههای پزشکی و برنامههای مصرف کم مورد استفاده قرار میگیرد.
- مد کاری 2.4GHz RF: این حالت کاری برای ارتباطات بیسیم با استفاده از فرکانس 2.4 گیگاهرتز مورد استفاده قرار میگیرد. این حالت کاری شامل ارتباطات مانند پروتکلهای Zigbee و Thread است که برای شبکههای صنعتی و خانگی مورد استفاده قرار میگیرند.
- مد کاری Sleep: در این حالت، میکروکنترلر به حالت خوابیده برود و مصرف انرژی بسیار پایینی داشته باشد. این حالت مناسب برای سیستمهای با مصرف انرژی کم است که نیاز به راهاندازی سریع داشته باشند.
- مد کاری Power Down: در این حالت، تمام بلوکهای سختافزاری غیرضروری غیرفعال شده و تنها بلوکهایی که برای راهاندازی سریع میکروکنترلر لازم هستند، فعال میباشند. مصرف انرژی در این حالت بسیار کمتر از حالت Sleep است.
- مد کاری Idle: در این حالت، میکروکنترلر به طور مداوم در حالت فعالیت است اما به طور خاصیتی فعالیت محدود دارد. برای مثال، ممکن است تنها بلوکهایی که برای دریافت سیگنال از سنسورها لازم هستند فعال باشند.
- مد کاری Active: در این حالت، میکروکنترلر به طور کامل فعال است و قادر به اجرای برنامههای کاربردی است. در این حالت، مصرف انرژی بیشترین مقدار خود را دارد.
- مد کاری NFC (Near Field Communication): این حالت کاری برای ارتباطات نزدیک میدان (Near Field) استفاده میشود. با استفاده از این حالت کاری، تراشه nRF52832 میتواند به عنوان یک تگ NFC عمل کند و ارتباطات نزدیک میدان را با دستگاههای دیگر برقرار کند.
- مد کاری تک دفعه (Single Mode): این حالت کاری به تراشه اجازه میدهد فقط در یکی از حالتهای بلوتوث (BLE) یا 2.4GHz RF عمل کند، به جای ترکیب هر دو حالت کاری.
- مد کاری ANT: این حالت کاری برای ارتباطات بیسیم با استفاده از پروتکل ANT استفاده میشود. ANT یک پروتکل ارتباطی بیسیم برای برنامههایی مانند ترکیبات ورزشی، دستگاههای پزشکی و کنترل فنی استفاده میشود.
- مد کاری تکناوبری (Single Wire): در این حالت کاری، تراشه nRF52832 از طریق یک رابط سیگنال تکی (Single Wire) با دستگاه خارجی ارتباط برقرار میکند. این حالت کاری برای ارتباط با تراشههای سنسور و دیگر دستگاههای مخصوص مورد استفاده قرار میگیرد.
- مد کاری I2S (Inter-IC Sound): این حالت کاری برای انتقال صدا بین تراشه nRF52832 و تراشههای دیگر از طریق رابط I2S استفاده میشود. این حالت کاری برای اپلیکیشنهای صوتی و صداگذاری مناسب است.
- مد کاری SPI (Serial Peripheral Interface): این حالت کاری برای ارتباط با تراشهها و سنسورهای دیگر از طریق رابط SPI استفاده میشود. با استفاده از این حالت کاری، تراشه nRF52832 میتواند به سادگی با دستگاههای دیگری که از رابط SPI پشتیبانی میکنند، ارتباط برقرار کند.
- مد کاری UART (Universal Asynchronous Receiver-Transmitter): این حالت کاری برای ارتباط با دستگاههای خارجی از طریق رابط سریال استفاده میشود. تراشه nRF52832 میتواند از طریق پینهای خاصی به عنوان رابط UART عمل کند و ارتباط سریال با دستگاههای دیگر را برقرار کند.
- مد کاری I2C (Inter-Integrated Circuit): این حالت کاری برای ارتباط با دستگاههای خارجی از طریق رابط I2C استفاده میشود. تراشه nRF52832 از خطوط SDA و SCL برای ارتباط با دستگاههای I2C استفاده میکند و امکان ارتباط با تراشهها و سنسورهای مختلف را فراهم میکند.
- مد کاری PWM (Pulse Width Modulation): این حالت کاری برای تولید سیگنالهای PWM استفاده میشود. تراشه nRF52832 قادر است به صورت سختافزاری سیگنالهای PWM را تولید کرده و برای کنترل موتورها، روشنایی LED و کاربردهای دیگر مورد استفاده قرار دهد.
- مد کاری ADC (Analog-to-Digital Converter): این حالت کاری برای تبدیل سیگنالهای آنالوگ به دیجیتال استفاده میشود. تراشه nRF52832 دارای چندین کانال ADC است که قابلیت تبدیل سیگنالهای آنالوگ را فراهم میکند. این قابلیت برای خواندن و تحلیل سنسورهای آنالوگ مورد استفاده قرار میگیرد.
- مد کاری GPIO (General-Purpose Input/Output): این حالت کاری برای استفاده از پینها به عنوان ورودی یا خروجی عمومی استفاده میشود. تراشه nRF52832 دارای پینهای GPIO قابل برنامهریزی است که میتوان از آنها برای کنترل و ارتباط با دستگاهها و سنسورهای خارجی استفاده کرد.
- SPIM (Serial Peripheral Interface Master): این حالت کاری برای ارتباط با دستگاههای خارجی از طریق رابط SPI به عنوان مستر استفاده میشود. تراشه nRF52832 به عنوان مستر SPI قابلیت ارتباط با دستگاههایی مانند حافظههای فلش، صفحهنمایشها و سنسورهایی که از رابط SPI پشتیبانی میکنند را فراهم میکند.
- مد کاری TWI (Two-Wire Interface): این حالت کاری برای ارتباط با دستگاههای خارجی از طریق رابط TWI (I2C) استفاده میشود. تراشه nRF52832 دارای رابط TWI است که امکان ارتباط با دستگاههای I2C را فراهم میکند.
- مد کاری PWM (Pulse Width Modulation): این حالت کاری برای تولید سیگنالهای PWM استفاده میشود. تراشه nRF52832 قابلیت تولید سیگنالهای PWM را دارد که میتواند برای کنترل موتورها، روشنایی LED و کاربردهای دیگر مورد استفاده قرار گیرد.
- مد کاری RTC (Real-Time Clock): این حالت کاری برای استفاده از ساعت و تقویم داخلی تراشه nRF52832 استفاده میشود. این حالت کاری به برنامهنویس اجازه میدهد زمان و تاریخ را با دقت تعیین و مدیریت کند.
- مد کاری NFC (Near Field Communication): تراشه nRF52832 قابلیت ارتباط نزدیک میدان (NFC) را داراست. این حالت کاری به برنامهنویس امکان ارتباط با دستگاهها و تگهای NFC را میدهد.
- مد کاری GPIOTE (General-Purpose Input/Output Task and Event): این حالت کاری به برنامهنویس اجازه میدهد واقعهها و وظایف مربوط به ورودی و خروجیهای عمومی را برنامهریزی و کنترل کند. این حالت کاری امکان تشخیص تغییرات در ورودیها و اجرای وظایف مربوطه را فراهم میکند.
- مد کاری QDEC (Quadrature Decoder): این حالت کاری برای استفاده از دیکودر چهارچوبی (Quadrature Decoder) استفاده میشود. تراشه nRF52832 قابلیت خواندن و تفسیر سیگنالهای کدگذاری چهارچوبی را داراست.
- مد کاری PWM PDM (Pulse Width Modulation Pulse Density Modulation): این حالت کاری برای تولید سیگنالهای PWM PDM استفاده میشود. این سیگنالها معمولاً برای کنترل صدا در برنامههای صوتی و استفاده از بیتهای توسعه داده میشوند.
- مد کاری USB (Universal Serial Bus): این حالت کاری به تراشه nRF52832 امکان ارتباط با دستگاههای USB را میدهد. برنامهنویس میتواند با استفاده از این حالت کاری ارتباط با دستگاههای USB مانند کامپیوترها، دستگاههای ذخیره سازی و دستگاههای جانبی دیگر را برقرار کند.
- مد کاری QSPI (Quad Serial Peripheral Interface): این حالت کاری برای ارتباط با دستگاههای حافظه فلش با رابط QSPI استفاده میشود. تراشه nRF52832 از رابط QSPI پشتیبانی میکند که امکان ارتباط با حافظههای فلش با سرعت بالا را فراهم میکند.
- مد کاری SPIS (Serial Peripheral Interface Slave): این حالت کاری برای تبدیل تراشه nRF52832 به یک دستگاه Slave در رابط SPI استفاده میشود. با استفاده از این حالت کاری، تراشه قادر است به عنوان Slave در ارتباط با یک دستگاه Master SPI باشد و اطلاعات را دریافت یا ارسال کند.
- مد کاری LDB (Low Power Data Buffer): این حالت کاری برای استفاده از بافر داده کم مصرف استفاده میشود. تراشه nRF52832 قابلیت استفاده از یک بافر داده کم مصرف را داراست که در کنار مصرف انرژی کمتر، امکان ارسال و دریافت دادهها را فراهم میکند.
- مد کاری NFC TAG: این حالت کاری برای تنظیم تراشه nRF52832 به عنوان یک تگ NFC استفاده میشود. در این حالت، تراشه قادر است به عنوان یک تگ NFC عمل کند و برای ارتباط با دستگاههای NFC دیگر استفاده شود.
- مد کاری DPP (Device Provisioning Protocol): این حالت کاری برای استفاده از پروتکل DPP در تراشه nRF52832 استفاده میشود. پروتکل DPP برای راحتی و امنیت در مراحل نصب و پیکربندی دستگاهها در شبکههای IoT استفاده میشود.
- مد کاری DPPI (Device Personalization and Programming Interface): این حالت کاری برای برنامهریزی و تنظیم تراشه nRF52832 در محیط تولید و پیکربندی استفاده میشود. با استفاده از این حالت کاری، تراشه قابلیت برنامهریزی و پیکربندی در محیط تولید را دارد.
- مد کاری LIM (Legacy Interface Mode): این حالت کاری برای فعالسازی و استفاده از واسطهای میراثی در تراشه nRF52832 استفاده میشود. با استفاده از این حالت کاری، تراشه قابلیت استفاده از واسطهای میراثی مانند SPI، UART، I2C و GPIO را داراست.
- مد کاری PPI (Programmable Peripheral Interconnect): این حالت کاری برای برنامهریزی و تنظیم رابطهای مختلف در تراشه nRF52832 استفاده میشود. با استفاده از PPI، میتوان رابطهای مختلف را به هم متصل کرده و عملکرد پردازشی پیچیدهتری را برنامهریزی کرد.
این موارد تنها برخی از حالتهای کاری مهم تراشه nRF52832 هستند. این تراشه دارای امکانات بسیار گستردهتری است که میتوانند در پروژههای مختلف مورد استفاده قرار گیرند. این امکانات شامل UART، I2C، SPI، PWM، GPIO، TIMER، RTC، NFC و بسیاری دیگر هستند. همچنین، تراشه nRF52832 دارای امکانات و قابلیتهای بسیاری است که میتوانند برای پروژههای مختلف استفاده شوند. این امکانات شامل ADC (مبدل آنالوگ به دیجیتال)، PWM (ماژول تنظیم عرض پالس)، GPIO (ورودی/خروجی عمومی)، UART (رابط سریال) و بسیاری دیگر هستند.
جمع بندی
در پایان دقت داشته باشید که توضیحات این پست عمومی بوده و صرفا برای آگاهی مخاطبان نوشته شده است. در روند اجرای پروژهها و پیاده سازی سناریوهای مورد نظر، ممکن است روال کاری متفاوت باشد. خصوصا اینکه روند اجرای پروژه تمامی این موارد را مشخص میکند. تراشههای nRF نسخههای مختلفی دارند که هر کدام براساس استانداردها و قوانین خاصی طراحی و تولید میشوند. بنابراین این توضیحات ممکن است با نسخهی مورد استفاده شما سازگاری کامل نداشته باشد. ما در تلاش هستیم که دانش کاربران فارسی زبان را در راستای سخت افزارهای IoT ارتقا دهیم. بنابراین اگر این پست برای شما مفید بود و به اطلاعاتتان اضافه کرد، حتما لینک آموزش را با دیگران به اشتراک بگذارید.