آموزش جامع BLE

BLE در STM32WB: راه‌اندازی CubeMX، ساخت Service و Low Power

راه‌اندازی BLE در STM32WB55: معماری دو‌هسته‌ای، نسخهٔ Wireless Stack، CubeMX، سرویس GATT و Low Power؛ با تفکیک STM32WB0 تک‌هسته‌ای.

فهرست مطالب
عکس واقعی Flipper Zero؛ نمونهٔ محصول مبتنی بر STM32WB55، نه برد Nucleo یا مدار آزمایش این مقاله.
عکس واقعی Flipper Zero؛ نمونهٔ محصول مبتنی بر STM32WB55، نه برد Nucleo یا مدار آزمایش این مقاله. عکس: Turbospok؛ منبع Wikimedia Commons؛ CC BY-SA 4.0. محتوای عکس تغییر نکرده است؛ نسخهٔ نمایشی ویکی‌مدیا استفاده شده است. این عکس مستند اجرای آزمایش LCENJ نیست.
مرحله 13 از ۲۰ مسیر تسلط بر BLE

در STM32WB55 و مدل‌های دو‌هسته‌ای مرتبط، اجرای برنامه و بخش بی‌سیم میان هسته کاربردی و هسته شبکه تقسیم می‌شود؛ STM32WB0 تک‌هسته‌ای است و این توصیف شامل آن نیست. این معماری زمان‌بندی رادیو را از برنامه اصلی جدا می‌کند، اما نسخه Wireless Stack، FUS و پکیج Cube باید سازگار باشند.

معماری STM32WB

برنامه کاربر معمولاً روی Cortex-M4 اجرا می‌شود و هسته شبکه وظایف رادیویی را انجام می‌دهد. ارتباط بین دو بخش از سازوکارهای بین‌پردازنده‌ای عبور می‌کند. بنابراین خرابی Stack یا ناسازگاری Firmware می‌تواند حتی با کد کاربردی سالم مانع Advertising شود.

پیکربندی CubeMX

برد و پکیج Firmware درست را انتخاب کنید، BLE و سرویس‌های موردنیاز را فعال کنید، Clock و RF را طبق برد مرجع تنظیم کنید و کد تولیدشده را در ناحیه‌های USER CODE توسعه دهید. فایل Release Notes پکیج را برای نسخه Stack و محدودیت‌ها بخوانید.

Service و Notify

در ابزار پیکربندی، UUID، اندازه Value، Property و Permission را تعریف کنید. هنگام تغییر سنسور، Value را در Attribute Database به‌روزرسانی و در صورت فعال‌بودن Notification آن را ارسال کنید. رخداد Write از کلاینت را اعتبارسنجی کنید و طول ورودی را هرگز فرض نگیرید.

مدیریت اتصال و Low Power

رخدادهای اتصال، قطع و Pairing را به State Machine برنامه تبدیل کنید. پیش از ورود به Stop Mode مطمئن شوید Scheduler و Stack بی‌سیم اجازه خواب می‌دهند. مصرف را روی برد نهایی اندازه بگیرید، چون LED دیباگ و Debugger می‌توانند نتیجه را تغییر دهند.

پروژه شروع STM32WB

یک Service محیطی با Characteristic دما بسازید. تایمر برنامه هر ثانیه سنسور را می‌خواند و فقط در صورت تغییر بیش از 0.1 درجه Value را به‌روزرسانی می‌کند. پس از اطمینان از Notify، Tick و Log اضافی را کم و مصرف Stop Mode را اندازه بگیرید.

دامنه این مسیر: STM32WB دو‌هسته‌ای را با WB0 یکی نگیرید

توضیح هسته کاربردی Cortex-M4، هسته شبکه و FUS در این مقاله برای خانواده دو‌هسته‌ای متداول مانند STM32WB55 است. STM32WB0 مسیر متفاوتی با هسته Cortex-M0+ دارد؛ مراحل FUS و فایل‌های Wireless Stack برد WB55 را نباید برای آن کپی کرد.

برای WB55، از یک نمونه رسمی همان برد در STM32CubeWB شروع کنید. نام برد، نسخه پکیج CubeWB، نسخه FUS و نام دقیق تصویر بی‌سیم نصب‌شده را کنار build ثبت کنید. آدرس نصب و مراحل به‌روزرسانی Stack را از Release Notes همان نسخه بخوانید؛ این متن آدرس حافظه عمومی برای همه مدل‌ها تعیین نمی‌کند.

اگر Advertising دیده نمی‌شود، ابتدا نمونه بدون تغییر سازنده را بررسی کنید؛ سپس تغذیه و کلاک، سازگاری تصویر CPU2 و رخدادهای اولیه را جدا کنید. پایین‌بودن مصرف نیز باید با قطع Debugger و با درنظرگرفتن مصرف برد توسعه اندازه‌گیری شود.

مخزن رسمی STM32CubeWB · مسیر جداگانه STM32WB0

پرسش و پاسخ مقاله

سوال فنی خود را مطرح کنید

پرسش‌ها و پاسخ‌ها پس از بررسی مدیر منتشر می‌شوند. نویسنده، پیش‌نویس در انتظار بررسی را می‌بیند.

هنوز پرسش تاییدشده‌ای برای این مقاله ثبت نشده است.