️ يتخلف هذا البرنامج الافتراضي الذي ينقله على فرقة 915MHz ISM Legal في الولايات المتحدة. قد لا يكون الانتقال إلى هذه الفرقة قانونية في بلدك.
كيفية التجميع
$ git clone --recurse-submodules https://github.com/jpaximadas/YeeNet.git
$ cd YeeNet
$ git config core.hooksPath git-hooks # Only necessary if you plan on contributing
$ export YEENET_BOARD=BLUEPILL_F103
$ make -C libopencm3
$ make -C src
إذا كان لديك غريت أقدم ، أو تقدمت بنفسك وتخطيت --recurse-submodules يمكنك إصلاح الأشياء عن طريق تشغيل git submodule update --init (هذا مطلوب فقط مرة واحدة)
إذا كنت تستهدف لوحة التطوير بخلاف STM32 "حبوب منع الحمل الزرقاء" ، فإن تغيير yeenet_board وفقًا لذلك. للحصول على قائمة بالوحات المدعومة ، انظر لوحات مدعومة
التغييرات اللاحقة على ملفات المصدر تتطلب فقط make -C src
كيفية التحميل
يستخدم هذا المستودع مجموعة أدوات البرمجة STM32 MCU STLINK STM32: https://github.com/stlink-org/stlink
- تأكد من عدم تعيين BOOT0 بحيث تمحو اللوحة الذاكرة بعد إعادة تعيين
- تأكد من توصيل SWDIO و SWCLK و GND بـ MCU (فقط قم بتوصيل 3.3V إذا كنت تنوي تشغيل اللوحة من المبرمج)
- برنامج الشريحة:
OpenOCD هو بديل لـ STLINK ولكنه غير مدعوم من خلال make upload .
كيفية تصحيح
بمجرد تحميل الثنائي ، قم بتشغيل ما يلي في دليل SRC:
- ابدأ خادم GDB
- في محطة أخرى-لا تزال في SRC-بدء GDB وتكوين
$ gdb yeenet_router_firmware.elf
$ set processor armv7
$ target remote localhost:4242
$ load yeenet_router_firmware.elf
مزيد من GDB في قراءة STM:
https://www.st.com/resource/en/user_manual/dm00613038-stm32cubeide-stlink-gdb-server-stmicroelectronics.pdf
لاحظ أن PDF يستخدم خادم STMCube GDB ، وليس خادم STLINK مفتوح المصدر. ومع ذلك ، من منظور عميل GDB ، لا يوجد فرق. تُظهر صفحة 6/15 من PDF كيفية استخدام نقاط التوقف ونقاط المراقبة.
كيفية استخدام الواجهة التسلسلية
هناك برامج تشغيل متسلسلة هنا: https://github.com/jpaximadas/yeenet-router-driver-python
الدلائل
- يحتوي SRC على البرنامج
- يحتوي المشتركة على ملفات مشتركة من libopencm3
لوحات مدعومة
يهدف Yeenet إلى استهداف لوحات تطوير STM32 منخفضة التكلفة. انظر أدناه للحصول على جدول من الأهداف المدعومة وقيمة yeenet_board المقابلة.
| سبورة | yeenet_board |
|---|
| حبوب منع الحمل الأزرق STM32F103 | Bluepill_F103 |
| حبة سوداء STM32F411 | Blackpill_F411 |
يمكن إضافة دعم المجالس الأخرى عن طريق إنشاء تعريف مناسب للمنصة في platform/ وتحديث yeenet.mk وفقًا لذلك.
إعداد اللوح
يوضح الجدول التالي كيفية توصيل المسامير الموجودة على لوحات التطوير المدعومة بـ SX127X و USB إلى UART. يرجى قراءة التحذيرات في نهاية القسم قبل محاولة هذا اللوحة.
| وظيفة | حبة زرقاء/دبوس حبة أسود |
|---|
| التسلسل تكساس | PA9 |
| مسلسل Rx | PA10 |
| IRQ | PA0 |
| موسي | PA7 |
| ميسو | PA6 |
| SCK | PA5 |
| CS/SS | A1 |
| RST | B9 |
| العنوان بت 0 | B10 |
| العنوان بت 1 | B11 |
- يجب أن تتصل Serial TX/RX بشريحة USB/UART.
- يجب على IRQ الاتصال بـ DiO0 على SX127X. (قد يسمى D0 أو G0 على لوحة الاختراق)
- يجب على Mosi و Miso و SCK و SS الاتصال من لوحة DEV إلى المسامير المناسبة على Breakout SX127X.
- يجب أن تتصل RST من لوحة DEV إلى الدبوس المناسب على SX1276X Breakout.
- يجب أن يعمل العنوان 0 و 1 من لوحة DEV إلى 3.3 فولت أو الأرض.
️ لا تقم بتشغيل اللوحة من أكثر من مصدر جهد واحد. هذا سوف يلحق الضرر بالمنظم على ثنائي الفينيل متعدد الكلور.
️ قم بتشغيل لوحة DEV SX127X أو SX127X مع 3.3 فولت فقط. يشير تخطيط المسامير أعلاه إلى إشارات SX127X إلى دبابيس من المخططات التي لا تتسامح 5 فولت. سوف تنبعث من الانهيار Adafruit SX127X إشارات منطقية 5 فولت وتلفت المخطط إذا تم تشغيلها من 5 فولت.
الموصى به لتشغيل اللوحات
- قم بتشغيل المخطط من 5 فولت من USB إلى UART. سوف تنظم الخطورة هذا إلى 3.3 فولت لاستخدامه الخاص. بدلاً من ذلك ، قد يتم تشغيل المخططات بـ 3.3 فولت من منظم على USB إلى UART.
- الطاقة SX127X من منظم لائق 3.3 فولت. منظم Bluepill's 3.3 Volt ليس جيدًا بما يكفي لهذه المهمة. استخدم واحد على USB الخاص بك إلى UART إذا كان موجودًا.
- اترك 3.3 فولت على مبرمج ST-Link غير متصل.
تودو
- العمل على معالج الحزم
- تحسين وضع الفشل عند وصول ACK في وقت متأخر
- كيف تؤثر ACKs على معالج الحزم عند العمل مع الحزم غير المعروفة
- هل يعمل غفوة TX؟
- منع Packet_handler من مؤشر Dereferencing TX_PKT NULL فور الإعداد عند rx'ing a nack؟
- توفير وظيفة طبقات أعلى لنقل موقع مؤشر RX_PKT في Packet_Handler
- اكتب جهاز توجيه الحزمة
- تنفيذ USB والاحتفاظ بوظائف UART
- اكتب الوثائق
- تحسين backoff_rng في packet_handler حتى لا يستنفد تجمع الانتروبيا بسرعة
- تحسين تنظيم إعداد الأجهزة
- ابدأ repo لواجهة المستخدم (استخدم عزيزي Imgui)
- إضافة وظيفة FSK SX127X إلى modem_xl.c
الحصول على لوحة الانهيار
يمكن أن تشغل لوحة Adafruit Breakout مساحة كبيرة للوصول إلى جميع المسامير ويمكن أن تكون مكلفة. يمكنك الحصول على لوحة breakout العارية هنا:
يمكن الحصول على وحدة راديو RFM95 من Aliexpress أو Banggood بأقل من خمسة دولارات للقطعة.
ملحوظات
ملاحظات SX127X
- يجب أن يتم الاحتفاظ بربط إعادة ضبط على لوحة Adafruit Breakout منخفضًا حتى يعمل الجهاز ، على عكس الإرشادات الموجودة على موقع Adafruit.
- يجب سحب دبوس إعادة تعيين منخفض لحظات من أجل إعادة ضبط الجهاز عند إعادة تشغيل MCU. يتم إعادة تعيين سجلات هذه الضمانات إلى الحالة الأصلية. الفشل في القيام بذلك يمكن أن يسبب سلوك غريب.
- من أجل مسح سجل أعلام IRQ ، يجب كتابة الأصفار مرتين على SPI. هذا خطأ في الأجهزة.
- عند وضع SX127X في وضع Lora ، يجب وضعه في وضع السكون أولاً. ليس الاستعداد أو أي أوضاع أخرى.
- قد لا يكتب SPI Master إلى FIFO خارج وضع الاستعداد
- لم يتم مسح FIFO دائمًا أثناء تغيير الوضع. لا تفترض أبدًا أن FIFO تم مسحه تلقائيًا
- وضع رأس صريح في SF = 6 لا يعمل. لن ترفض وظيفة تكوين التعديل التلقائي في هذا البرنامج هذا التكوين.
- لا يلمس هذا الرمز بايت "Sync Word" الذي يتيح لـ Loras رفض الحزم تلقائيًا.
ملاحظات لوحة Bluepill Dev
- LED PC13 على لوحة "Bluepill" Dev لديها أنود مرتبطة بـ 3.3 فولت ، وهو مرتبط الكاثود بـ PC13 (لسبب ما). هذا يعني أنه يجب سحب PC13 منخفضًا لتشغيل LED.
- لا تحاول تشغيل SX127x من إمدادات السعة 3.3 فولت. لا يمكن للمنظم على متن الطائرة إنجاز المهمة أثناء RX أو TX. سوف SX127x الخاص بك بني خارج وإعادة ضبط.
USB إلى ملاحظات UART
- إن استخدام لوحة Arduino مع CH430 USB إلى UART CHIP كجهاز USB إلى جهاز UART ، ليس مهمة بسيطة. ما تم تصنيفه على أنه TX على ثنائي الفينيل متعدد الكلور (ولكنه في الواقع RX من منظور Arduino) يمكن وضعه في دبوس TX متسامح 5 فولت من لوحة DEV الخاصة بك. هنا يأتي الجزء الصعب. ما يتم laballed كـ RX على ثنائي الفينيل متعدد الكلور (في الواقع TX من منظور Arduino) لن يعمل إذا قمت بتوصيله فقط في دبوس RX من لوحة DEV الخاصة بك. تحتاج إلى اللحام مباشرة إلى شريحة CH430. راجع ورقة البيانات للعثور على مكان دبوس TX CH430. الرسالة في نهاية "CH430" تهم الكثير.
Yee: https://youtu.be/iepv31_e__4
