مؤخرًا مع بداية شهر 3 أطلقت شركة Arduino لوحة Arduino Giga R1 حيث أنها تأتي بإمكانيات عالية وتتضمن معها وحدة WiFi مما يجعلها مناسبة لتطبيقات إنترنت الأشياء، ولكن واجهتني إشكالية تحول بيني وبين تفعيل ميزة الWiFi، سنتحدث عنها لاحقًا.
بشكل مختصر لوحة Arduino Giga R1 WiFi، عبارة عن لوحة تطوير مبنية على متحكم دقيق يدعى STM32H747XIH6 ويمتاز هذا المتحكم بسرعة عالية بالإضافة لكونه مبني على معمارية Arm Cortex M7 فيجعله مناسبٌا لمختلف تطبيقات الهندسية المعقدة.
مميزات لوحة Arduino Giga R1 WiFi
- مبني على المتحكم STM32H747XIH6
- يحتوى على تعليمات معالجة الإشارات الرقمية
- يتوفر على وحدة MPU
- وحدة اتصال الخاصة بالوايفاي والبلوتوث Murata 1DX
- الذاكرة
- STM32H747XI
- 2 ميجا بايت من ذاكرة الفلاش.
- 1 ميجا بايت من ذاكرة الوصول العشوائي (RAM).
- AT25SF128A-MHB-T ذاكرة فلاش خارجية
- 16 ميجا بايت ذاكرة فلاش من نوع NOR.
- بواجهة تخاطب QUAD SPI.
- AS4C4M16SA
- 8 ميجابايت من ذاكرة وصول عشوائي من نوع ديناميكي.
- STM32H747XI
- وحدات الإدخال و الإخراج
- 76 مدخل ومخرج رقمي.
- 12 مدخل تماثلي.
- 12 منفذ بعرض نبضي متغير.
- 2 مخارج تماثلية.
- دعم لبروتوكول USB.
- جهد التخاطب المنطقي 3.3 فولت.
- واجهات التخاطب (Communication Protocols)
- 4x UART
- 3x I2C
- 2x SPI
- Can bus يتطلب وجود مستقبل ومرسل خارجي.
- USB
- USB HOST
- USB Peripheral Type-C
- منافذ جاهزة للاستخدام بشكل مباشر
- منفذ الكاميرا.
- منفذ الشاشة.
- منفذ صوتيات.
- التغذية
- جهد عمل الدائرة 3.3 فولت
- الجهد المسموح لتغذية اللوحة من 6 إلى 24 فولت.
هذه مميزات اللوحة بشكل مختصر، والآن سنتجه للإشكالية التي واجهتني خلال عملي واختبارها.
تتمثل الإشكالية بشكل محدد حول عدم إمكانية قراءة من ذاكرة الفلاش الخارجية بشكل صحيح باستخدام حزمة البرمجية التي تأتي بشكل رسمي من شركة الArduino، وقد بدأت المشكلة مع عدم إمكانية تفعيل وحدة الWiFi، حيث كان يظهر خطأ بعدم وجود الملف التشغيلي للWiFi (في عالم العتاد أو الهاردوير يطلق عليه بالفيرموير Firmware) فقررت استخدام الكود المرفق مع الحزمة وللأسف حال دون ذلك.
فكان البرنامج يقف عند هذه النقطة دون تقدم مع وجود إضاءة تحذيرية من اللوحة تبلغ عن وجود خطأ.
No filesystem containing the WiFi firmware was found. Usually that means that the WiFi firmware has not been installed yet or was overwritten with another firmware. Formatting the filsystem to install the firmware and certificates... Error Format Flash: -3101 Flashing /wlan/4343WA1.BIN file Flashed 0%
فظننت أنه هناك خطوة احتاج إلى القيام بها مسبقًا، فقمت بعمل تهيئة لذاكرة الفلاش حتى اتضح أنه لا يمكن عمل تهيئة وتظهر رسالة بحدوث خطأ.
Available partition schemes: Partition scheme 1 Partition 1: WiFi firmware and certificates 1MB Partition 2: OTA and user data 13MB Partition scheme 2 Partition 1: WiFi firmware and certificates 1MB Partition 2: OTA 5MB Partition 3: User data 8MB Do you want to use partition scheme 1? Y/[n] If No, partition scheme 2 will be used. WARNING! Running the sketch all the content of the QSPI flash will be erased. Do you want to proceed? Y/[n] Error formatting WiFi partition
فهنا تيقنت جيدًا ربما يكون هناك خلل على صعيد البرمجي أو العتاد، فقررت أن اعمل على بحث عن أصل الإشكالية و وصلت لنتيجة أنه هناك خلل مع ذاكرة الفلاش الخارجية حيث أنه لا تستطيع قراءة البيانات على وضع (Fast Quad Mode I/O) (مستقبلًا سأكتب مقالة مفصلة عن ماهية الQSPI) بشكلها الصحيح، مما دفعني لتطوير مكتبة تحل الإشكالية لحين اصلاحها من طرف شركة الArduino.
حيث أنه تعمل المكتبة على تحميل الملف التشغيلي لأول مرة ومن ثم استخدامها كبديل عن المكتبة الافتراضية.
رابط المكتبة: https://github.com/ahmedalkabir/GigaWiFiSolver
نقوم بتحميل المكتبة من الرابط المرفق مسبقًا، واتباع الخطوات الآتية:
ننقل مجلد المكتبة إلى مسار التالي Document/
نقوم برفع البرنامج كما موضح في الصور.
ومن ثم سيقوم البرنامج بتحميل البرنامج التشغيلي لوحدة الWiFi على ذاكرة الفلاش الخارجية.
بعد الانتهاء من البرنامج لنقوم باختبارالبرنامج WiFi المرفق مع المكتبة.
وكما يبدو واضحًا، وحدة الWiFi تعمل بشكل جيد بدون أي مشكلة، يجدر الملاحظة أنه لكي تعمل وحدة الWiFi بشكل ممتاز يجدر إضافة مكتبة GigaWiFiSolver في بداية السطر حيث ستعمل كبديل عن المكتبة الإفتراضية التي تأتي مع الحزمة.
وهكذا قمت بحل الإشكالية التي واجهتني و قريبًا ستكون هناك سلسلة مقالات حول لوحة الArduino Giga R1 والمشاريع التي سأقوم بها باستخدام هذه اللوحة.
بالتوفيق في انتظار باقي المقالات