บอร์ด Arduino ที่ใช้โมดูล u-blox NINA-W102 (ESP32) สามารถใช้งาน WiFi และ Bluetooth LE พร้อมกันได้แล้ว

เราเพิ่งทราบว่า WiFi และ Bluetooth LE ไม่สามารถใช้งานพร้อมกันได้บนบอร์ด Arduino ที่ใช้โมดูลไร้สาย ESP32-based u-blox NINA-W102 ซึ่งส่งผลกระทบต่อบอร์ด Arduino Nano RP2040 ConnectArduino MKR WiFi 1010 และ Arduino Nano 33 IoT

ปัญหานี้เกิดขึ้นมาเป็นเวลานานตั้งแต่บอร์ด Arduino รุ่นแรกที่ใช้โมดูล NINA-W10 เปิดตัวในปี 2018 โดยผู้ใช้สามารถเลือกใช้งาน WiFi หรือ Bluetooth LE, แต่ไม่สามารถใช้งานทั้งสองอย่างพร้อมกันได้ ตอนนี้ปัญหานี้ได้รับการแก้ไขเรียบร้อยแล้ว ด้วยเฟิร์มแวร์เวอร์ชันใหม่สำหรับโมดูล รวมถึงไลบรารี WiFi และ BLE เวอร์ชันใหม่ที่ช่วยให้สามารถใช้งาน WiFi และ Bluetooth LE พร้อมกันได้ในที่สุด

Arduino Nano RP2040 Connect WiFi and Bluetooth

คุณจะต้องใช้ไลบรารีและเฟิร์มแวร์เวอร์ชันต่อไปนี้:

  • WiFiNINA library เวอร์ชัน 2.0.0 หรือใหม่กว่า
  • ArduinoBLE library เวอร์ชัน 2.0.0 หรือใหม่กว่า
  • NINA-W102 firmware เวอร์ชัน 3.0.1 หรือใหม่กว่า

ไลบรารีทั้งสองสามารถอัปเดตได้อย่างง่ายดายผ่าน Library Manager ใน Arduino IDE ส่วนเฟิร์มแวร์ของโมดูลสามารถอัปเดตได้ด้วย Firmware Updater Tool ที่เมนู Tools > WiFi101 / WiFiNINA Firmware Updater

บอร์ดทั้งสามรุ่นที่กล่าวถึงในตอนต้นจะได้รับประโยชน์จากการอัปเดตนี้ แต่บอร์ด Arduino UNO WiFi Rev2 ไม่สามารถใช้ความสามารถนี้ได้ เนื่องจากมี หน่วยความจำจำกัด แม้ว่าบอร์ดจะใช้โมดูล u-blox NINA-W102 เช่นเดียวกันก็ตามไม่สามารถใช้ความสามารถนี้ได้ เนื่องจากมีหน่วยความจำจำกัด แม้ว่าบอร์ดจะใช้โมดูล u-blox NINA-W102 เช่นเดียวกันก็ตาม ต่อไปนี้คือตัวอย่างโค้ดที่แสดงการใช้งาน WiFi และ Bluetooth พร้อมกันในเวลาเดียวกัน:


ทั้งหมดนี้ฟังดูดี…แต่คำถามคือทำไมก่อนหน้านี้จึงไม่สามารถใช้งาน WiFi และ Bluetooth LE พร้อมกันได้? สาเหตุคือ WiFi เชื่อมต่อผ่านอินเทอร์เฟซ SPI ในขณะที่ Bluetooth เชื่อมต่อผ่าน UART และอินเทอร์เฟซ SPI กับ UART มีการใช้พินบางส่วนร่วมกัน เพื่อให้เหลือ GPIO สำหรับผู้ใช้มากขึ้น บนบอร์ด Arduino แต่การแชร์พินดังกล่าวทำให้เกิดความขัดแย้งของสัญญาณ (pin conflict) เมื่อพยายามใช้งาน WiFi และ Bluetooth พร้อมกันในเวลาเดียวกัน แนวทางแก้ไขคือเปลี่ยนให้ทั้ง WiFi และ Bluetooth ใช้อินเทอร์เฟซ SPI เหมือนกัน ซึ่งช่วยหลีกเลี่ยงปัญหาการใช้พินร่วมกันได้ แต่ยังไม่มีคำอธิบายชัดเจนว่าทำไมการแก้ไขปัญหานี้จึงใช้เวลานานกว่าจะสำเร็จ

Arduino NINA W102 WiFi SPI BLE UART vs WiFI BLE SPI
วิธีเดิม: ใช้ SPI สำหรับ WiFi + UART สำหรับ BLE vs วิธีใหม่: ใช้ SPI สำหรับทั้ง WiFi และ BLE

แปลจากบทความภาษาอังกฤษ : WiFi and Bluetooth LE can now be used simultaneously on Arduino boards with NINA-W102 (ESP32) module

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
โฆษณา