ห้องสมุดนี้ไม่ได้รับการดูแลรักษาอีกต่อไป และไม่มีแผนในการสืบทอดห้องสมุดนี้ แม้ว่าผู้ใช้ nRF5 SDK ที่มีอยู่จะยังคงสามารถเข้าถึงได้ แต่จะไม่ได้รับการอัปเดตหรือการสนับสนุนเพิ่มเติม เราขอแนะนำให้อย่าเริ่มต้นโปรเจ็กต์ใหม่ด้วยไลบรารีนี้ เนื่องจากเฟิร์มแวร์ (ไฟล์ .hex) ที่พร้อมใช้งานใช้ไบนารี SoftDevice ที่ล้าสมัย
pc-ble-driver
จัดเตรียมไลบรารี C/C++ สำหรับการทำให้เป็นอนุกรมของ Bluetooth Low Energy nRF5 SoftDevice
pc-ble-driver
ประกอบด้วยชุดของไลบรารีแบบคงที่และแบบแบ่งใช้ที่ให้ฟังก์ชันการทำงานของ SoftDevice แก่แอปพลิเคชันผ่านการสื่อสารด้วยพอร์ตอนุกรมด้วยชิปเชื่อมต่อ nRF5 ที่รัน SoftDevice และซอฟต์แวร์การเชื่อมต่อ ซึ่งรวมอยู่ในไฟล์ .hex ไฟล์เดียวที่นี่ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการทำให้เป็นอนุกรมของ SoftDevice โปรดดูที่การทำให้เป็นอนุกรม
ไลบรารี C/C++ สามารถเชื่อมต่อกับไลบรารีได้โดยตรง แต่ยังจัดให้มีการเชื่อมโยงระดับที่สูงกว่าซึ่งช่วยให้การพัฒนาง่ายขึ้นโดยมีค่าใช้จ่ายในการควบคุมลดลง (ยอมรับได้ในกรณีส่วนใหญ่):
โดยที่ 'ชิปแอปพลิเคชัน' เป็นเพียงฮาร์ดแวร์ทั่วไป (เช่น อุปกรณ์ Windows, Linux หรือ macOS) แม้ว่าอาจเป็น Arduino หรือ Raspberry Pi ก็ตาม
หากต้องการใช้ pc-ble-driver ชุดพัฒนาของคุณจำเป็นต้องมีเฟิร์มแวร์ที่ถูกต้อง พบเฟิร์มแวร์ที่จำเป็นในโฟลเดอร์ hex/sd_api_v
และมี SoftDevice และเฟิร์มแวร์การเชื่อมต่อที่จำเป็นสำหรับการสื่อสารกับ pc-ble-driver
ไลบรารีที่สร้างขึ้นสามารถทำงานร่วมกับ SoftDevice API เวอร์ชันและ nRF5x IC ต่อไปนี้:
connectivity__1m_with_s130_2.xx
(IC ซีรีส์ nRF51 และ nRF52)connectivity__<1m|*usb>_with_s132_3.xx
(สำหรับ IC ซีรีส์ nRF52 เท่านั้น)connectivity__<1m|*usb>_with_s132_5.xx
(สำหรับ IC ซีรีส์ nRF52 เท่านั้น)connectivity__<1m|*usb>_with_s132_6.xx
(สำหรับไอซีซีรีส์ nRF52 เท่านั้น)connectivity__<1m|*usb>_with_s140_6.xx
(สำหรับไอซีซีรีส์ nRF52 เท่านั้น)*usb) สำหรับไอซีซีรีส์ nRF52 ที่มีอุปกรณ์ต่อพ่วง USBD เท่านั้น
พีซีเอ | ชื่ออย่างเป็นทางการ | หมายเลขบทความ | หมายเหตุ |
---|---|---|---|
PCA10028 | ชุดพัฒนา nRF51 | nRF6824 | |
PCA10031 | nRF51 ดองเกิล | nRF6825 | |
PCA10040 | ชุดพัฒนา nRF52 | nRF6827 | |
PCA10056 | nRF52840 { ชุดพัฒนา } | nRF6828 | - |
PCA10059 | nRF52840 { ดองเกิล } | nRF6829 | สามารถใช้เฟิร์มแวร์การเชื่อมต่อที่รองรับพอร์ตอนุกรม Nordic USB CDC เท่านั้น |
*) สามารถใช้ทั้งเวอร์ชันพอร์ตอนุกรม Nordic USB CDC และเวอร์ชัน SEGGER J-Link-OB (VCOM) การใช้พอร์ตอนุกรม Nordic USB CDC บน PCA10056 จำเป็นต้องเชื่อมต่อพิน P0.18 และ P0.24 พินไปยังชิป QSPI จะต้องอยู่ในตำแหน่งด้วย (เป็นค่าเริ่มต้น) อัลกอริธึมในการตรวจสอบว่าเป็น PCA10056 หรือ PCA10059 คือการตรวจสอบว่าสามารถสื่อสารกับชิป QSPI ได้หรือไม่ PCA10059 ไม่มีชิป QSPI การตรวจจับถูกใช้โดยทริกเกอร์ nRF Connect DFU เพื่อกำหนดพินที่จะใช้สำหรับการรีเซ็ตอุปกรณ์เมื่อเปลี่ยนระหว่าง DFU และโหมดแอปพลิเคชัน
ไลบรารีการสื่อสารนี้ทำงานบนพอร์ตอนุกรม (UART) ทุกประเภท แต่ส่วนใหญ่มักใช้ผ่าน Segger J-Link USB CDC UART หากต้องการตั้งค่าไดรเวอร์ J-Link ที่จำเป็น เพียงดาวน์โหลดและติดตั้งเวอร์ชันที่ตรงกับระบบปฏิบัติการของคุณ:
หลังจากที่คุณได้ติดตั้งไดรเวอร์ที่จำเป็นและเชื่อมต่อบอร์ดที่เปิดใช้งาน J-Link (เช่น Nordic Development Kit) แล้ว พอร์ตควรจะพร้อมใช้งาน
นอกจากนี้ คุณต้องปิดการใช้งาน Mass Storage Device
เพื่อที่จะใช้ pc-ble-driver
เพื่อสื่อสารกับอุปกรณ์ ดู data corruption or drops issue
พอร์ตอนุกรมจะปรากฏเป็น COMxx
เพียงตรวจสอบส่วน "พอร์ต (COM & LPT)" ในตัวจัดการอุปกรณ์
พอร์ตอนุกรมจะปรากฏเป็น /dev/ttyACMx
ตามค่าเริ่มต้น ผู้ใช้ทุกคนไม่สามารถเข้าถึงพอร์ตได้ พิมพ์คำสั่งด้านล่างเพื่อเพิ่มผู้ใช้ของคุณในกลุ่ม dialout
เพื่อให้สามารถเข้าถึงพอร์ตอนุกรม โปรดทราบว่าจำเป็นต้องเข้าสู่ระบบอีกครั้งจึงจะมีผล
$ sudo usermod -a -G dialout < username >
เพื่อป้องกันไม่ให้บริการตัวจัดการโมเด็มพยายามเชื่อมต่อกับพอร์ตอนุกรม CDC ACM:
$ systemctl stop ModemManager.service
$ systemctl disable ModemManager.service
พอร์ตอนุกรมจะปรากฏเป็น /dev/tty.usbmodemXXXX
มีปัญหาที่ทราบแล้ว โปรดตรวจสอบที่นี่หากคุณพบปัญหาใดๆ
หากต้องการตั้งโปรแกรมเฟิร์มแวร์การเชื่อมต่อ คุณจะต้องมี nrfjprog
ซึ่งมาพร้อมกับ nRF5x Command-Line Tools ซึ่งสามารถดาวน์โหลดได้จาก:
เพิ่ม nrfjprog
และ mergehex
ไปยัง PATH
บน Linux และ macOS
อีกทางหนึ่ง nRF Connect Programmer
สามารถช่วยคุณตั้งโปรแกรมเฟิร์มแวร์การเชื่อมต่อด้วยการรองรับ UI
ดาวน์โหลด nRF Connect Desktop และติดตั้ง nRF Connect Programmer
ที่นั่น
ในการคอมไพล์ pc-ble-driver
คุณจะต้องมีเครื่องมือดังต่อไปนี้:
pc-ble-driver
จากแหล่งที่มา ในการรวบรวมไฟล์ connectivity
HEX คุณจะต้องมีเครื่องมือเพิ่มเติม:
connectivity
HEXทำตามขั้นตอนเพื่อติดตั้งการขึ้นต่อกันบนแพลตฟอร์มเฉพาะ:
ดาวน์โหลด Visual Studio 15
หรือเวอร์ชันที่ใหม่กว่าและติดตั้ง
ติดตั้งช็อคโกแลต. ติดตั้งด้วย cmd.exe
(เรียกใช้ในฐานะผู้ดูแลระบบ)
# Copy everything below
@ " %SystemRoot%System32WindowsPowerShellv1.0powershell.exe " -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command " iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) " && SET " PATH=%PATH%;%ALLUSERSPROFILE%chocolateybin "
หาก Chocolatey
ได้รับการติดตั้งตามที่อธิบายไว้ข้างต้น แต่ยังไม่ได้เพิ่มใน PATH ให้รัน:
$ SET " PATH=%PATH%;%ALLUSERSPROFILE%chocolateybin "
ติดตั้ง Git
.
$ choco install -y git
ติดตั้ง CMake
.
$ choco install -y cmake
ติดตั้ง vcpkg.
$ git clone https://github.com/Microsoft/vcpkg.git
$ cd vcpkg
$ git checkout tags/2020.04
$ . b ootstrap-vcpkg.bat
จากนั้นเพิ่มตำแหน่ง vcpkg ให้กับ PATH
และตั้งค่าเป็นตัวแปรสภาพแวดล้อม VCPKG_ROOT
ขั้นตอนต่อไปนี้จำเป็นเฉพาะในกรณีที่คุณต้องการรวบรวมไฟล์ HEX connectivity
ของคุณเอง
ติดตั้ง ninja
.
$ choco install -y ninja
ดาวน์โหลดและติดตั้ง GNU Embedded Toolchain for Arm
เวอร์ชัน 7-2018q2
ดาวน์โหลดได้จากตำแหน่งนี้
ทำตามคำแนะนำในการติดตั้ง
ตั้งค่าเส้นทางการติดตั้งเป็น GNUARMEMB_TOOLCHAIN_PATH
ในตัวแปรสภาพแวดล้อม ตัวอย่างเช่น:
$ set GNUARMEMB_TOOLCHAIN_PATH=c: g ccarmemb
ติดตั้ง Python
และ pip
จากนั้นติดตั้ง nrfutil
$ pip install nrfutil
# Reboot if installation succeeds but validation fails
ติดตั้ง build-essential
.
$ sudo apt-get -y install build-essential
ติดตั้ง Git
$ sudo apt-get -y install git
หาก Git
เวอร์ชันที่ติดตั้งต่ำกว่าที่กำหนด ให้:
$ sudo add-apt-repository ppa:git-core/ppa
$ sudo apt update
$ sudo apt install git
ติดตั้ง CMake
.
$ sudo apt-get -y install cmake
ติดตั้ง CMake
จากแหล่งที่มาหากเวอร์ชันต่ำกว่าที่จำเป็น
ติดตั้ง vcpkg.
$ git clone https://github.com/Microsoft/vcpkg.git
$ cd vcpkg
$ git checkout tags/2020.04
$ ./bootstrap-vcpkg.sh
จากนั้นเพิ่มตำแหน่ง vcpkg ให้กับตัวแปรสภาพแวดล้อม PATH
และ VCPKG_ROOT
ติดตั้ง Ninja
.
$ sudo apt-get install ninja-build
ขั้นตอนต่อไปนี้จำเป็นเฉพาะในกรณีที่คุณต้องการรวบรวมไฟล์ HEX connectivity
ของคุณเอง
ติดตั้ง GNU Embedded Toolchain for Arm
เวอร์ชัน 7-2018q2
GNUARMEMB_TOOLCHAIN_PATH
ในตัวแปรสภาพแวดล้อม ติดตั้ง Python
และ pip
แล้วติดตั้ง nrfutil
$ pip install nrfutil
# Reboot if installation succeeds but validation fails
# If errors persist, try updating pip itself.
ติดตั้ง Xcode (>=10.1)
ติดตั้ง gcc6
โดยใช้ HomeBrew
$ brew install gcc6
ติดตั้ง CMake
โดยใช้ HomeBrew
$ brew install cmake
$ brew upgrade cmake
ติดตั้ง CMake
จากแหล่งที่มาหากเวอร์ชันต่ำกว่าที่จำเป็น
ติดตั้ง vcpkg.
$ git clone https://github.com/Microsoft/vcpkg/
$ cd vcpkg
$ git checkout tags/2020.04
$ ./bootstrap-vcpkg.sh
จากนั้นเพิ่มตำแหน่ง vcpkg ให้กับตัวแปรสภาพแวดล้อม PATH
และ VCPKG_ROOT
ขั้นตอนต่อไปนี้จำเป็นเฉพาะในกรณีที่คุณต้องการรวบรวมไฟล์ HEX connectivity
ของคุณเอง
ติดตั้ง GNU Embedded Toolchain for Arm
เวอร์ชัน 7-2018q2
GNUARMEMB_TOOLCHAIN_PATH
ในตัวแปรสภาพแวดล้อม ติดตั้ง Python
และ pip
จากนั้นติดตั้ง nrfutil
$ pip install nrfutil
# Reboot if installation succeeds but validation fails
ติดตั้งการพึ่งพา vcpkg
# cd
# Make sure %VCPKG_ROOT% is set and added to %PATH%
$ mkdir build && cd build
$ vcpkg install asio catch2 spdlog
CMake เลือกคอมไพเลอร์ Visual Studio เพื่อใช้ตามบทความนี้: สร้างโค้ด C/C++ บนบรรทัดคำสั่ง
$ cmake -G Ninja ..
รวบรวม
$ cmake --build .
คุณสามารถเลือกการกำหนดค่าบิลด์ด้วยตัวเลือก --config
โดยทั่วไปแล้ว Debug
, Release
, MinSizeRel
และ RelWithDebInfo
จะพร้อมใช้งาน ตัวอย่างเช่น:
$ cmake --build . --config Debug
ติดตั้งการพึ่งพา vcpkg
# cd
# Make sure $VCPKG_ROOT is set and added to $PATH
$ mkdir build && cd build
$ vcpkg install asio catch2 spdlog
ซีเมค
$ cmake
-G Ninja
..
ทางเลือก เลือกการกำหนดค่าบิลด์ด้วยอ็อพชัน -DCMAKE_BUILD_TYPE
โดยทั่วไปแล้ว Debug
, Release
, MinSizeRel
และ RelWithDebInfo
จะพร้อมใช้งาน
คุณสามารถเลือกสถาปัตยกรรมเป้าหมาย (32 หรือ 64 บิต) โดยใช้ตัวเลือก -DARCH
ค่าสามารถเป็น x86_32
, x86_64
, x86_32,x86_64
ตัวอย่างเช่น:
$ cmake
-G Ninja
-DCMAKE_BUILD_TYPE=Debug
-DARCH=x86_32,x86_64
..
รวบรวม
$ cmake --build .
pc-ble-driver
จากแหล่งที่มาหากคุณยังไม่ได้ดำเนินการตรวจสอบให้แน่ใจว่าได้ตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้:
VCPKG_ROOT
GNUARMEMB_TOOLCHAIN_PATH
ตรวจสอบให้แน่ใจว่าได้เพิ่มเส้นทางต่อไปนี้ใน PATH:
VCPKG_ROOT
mergehex
ทำตามขั้นตอนเพื่อติดตั้งการขึ้นต่อกันบนแพลตฟอร์มเฉพาะ:
กำหนดสภาพแวดล้อม
# cd
$ SET " PATH=%PATH%;%ALLUSERSPROFILE%chocolateybin "
# Make sure environment variables have been set
# as described at beginning of this section
ซีเมค
$ mkdir build && cd build
# Modify -DCONNECTIVITY_VERSION=a.b.c
$ cmake -G Ninja -DCOMPILE_CONNECTIVITY=1 -DCONNECTIVITY_VERSION=1.0.0 ..
COMPILE_CONNECTIVITY
ถูกตั้งค่าเป็น 1 เพื่อเปิดใช้งานการคอมไพล์เฟิร์มแวร์การเชื่อมต่อ
CONNECTIVITY_VERSION
กำหนดเวอร์ชันสำหรับเฟิร์มแวร์การเชื่อมต่อที่คอมไพล์แล้ว
ตรวจสอบตัวเลือกเพิ่มเติมในการคอมไพล์ pc-ble-driver บน Windows
รวบรวม
$ cmake --build . --target compile_connectivity
ไฟล์ HEX มีอยู่ในโฟลเดอร์ hex/sd_api_v
หลังจากการคอมไพล์ รวมถึง SoftDevice และแอปพลิเคชันการเชื่อมต่อ
กำหนดสภาพแวดล้อม
# cd
$ export TMP=/tmp
# Make sure environment variables have been set
# as described at beginning of this section
ซีเมค
$ mkdir build && cd build
# Modify -DCONNECTIVITY_VERSION=a.b.c
$ cmake
-G Ninja
-DCOMPILE_CONNECTIVITY=1
-DCONNECTIVITY_VERSION=1.0.0
..
COMPILE_CONNECTIVITY
ถูกตั้งค่าเป็น 1 เพื่อเปิดใช้งานการคอมไพล์เฟิร์มแวร์การเชื่อมต่อ
CONNECTIVITY_VERSION
กำหนดเวอร์ชันสำหรับเฟิร์มแวร์การเชื่อมต่อที่คอมไพล์แล้ว
ตรวจสอบตัวเลือกเพิ่มเติมในการคอมไพล์ pc-ble-driver บน Ubuntu Linux หรือ macOS
รวบรวม
$ cmake --build . --target compile_connectivity
ไฟล์ HEX มีอยู่ในโฟลเดอร์ hex/sd_api_v
หลังจากการคอมไพล์ ประกอบด้วย SoftDevice และแอปพลิเคชันการเชื่อมต่อ
ไปที่การติดตั้งเครื่องมือหากยังไม่ได้ติดตั้งเครื่องมือบรรทัดคำสั่ง nRF5x
หากต้องการใช้ไลบรารีนี้ คุณจะต้องตั้งโปรแกรมเฟิร์มแวร์การเชื่อมต่อบน nRF5x IC
ใช้เครื่องมือบรรทัดคำสั่ง nRF5x เพื่อลบและตั้งโปรแกรม IC:
$ nrfjprog -f NRF5 -e
$ nrfjprog -f NRF5 --program hex/sd_api_v/connectivity___with_s_...hex
หรือใช้โปรแกรมเมอร์ nRF Connect เพื่อลบและตั้งโปรแกรม IC
ชุดคิทบางชุด เช่น ดองเกิล pca10059 nRF52 ไม่มีดีบักเกอร์ในตัว และจะต้องตั้งโปรแกรมผ่าน DFU แบบอนุกรม บน Windows จำเป็นต้องมีไดรเวอร์อุปกรณ์เพื่อให้ระบบปฏิบัติการตรวจพบชุดอุปกรณ์ได้อย่างถูกต้อง หากต้องการติดตั้งไดรเวอร์ที่จำเป็น โปรดตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง nRF Connect for Desktop เวอร์ชันล่าสุดแล้ว
การตั้งโปรแกรมเฟิร์มแวร์การเชื่อมต่อผ่าน DFU แบบอนุกรมสามารถทำได้จากบรรทัดคำสั่งหรือจาก nRF Connect สำหรับเดสก์ท็อป
โดยปกติการอัปเกรดเฟิร์มแวร์อุปกรณ์ด้วย nrfutil จะดำเนินการในสองขั้นตอน: 1: การสร้างแพ็คเกจ zip DFU และ 2: ดำเนินการตามขั้นตอน DFU แพ็คเกจ zip DFU ถูกสร้างขึ้นล่วงหน้าและรวมอยู่ในที่เก็บนี้ หากต้องการรันขั้นตอน DFU ด้วย nrfutil ด้วยแพ็คเกจ DFU ที่สร้างไว้ล่วงหน้า:
nrfutil dfu usb-serial -pkg connectivity_x.x.x_usb_with_s_.._dfu_pkg.zip -p
ตัวอย่างเหล่านี้ทำหน้าที่เป็นจุดเริ่มต้นที่ดีสำหรับการพัฒนาด้วย pc-ble-driver
ตัวอย่าง ได้แก่ เครื่องวัดอัตราการเต้นของหัวใจ (อุปกรณ์ต่อพ่วง BLE) และตัวสะสมอัตราการเต้นของหัวใจ (BLE ต้นแบบ) และแสดงโครงสร้างพื้นฐานของแอปพลิเคชันที่สร้างขึ้นบน pc-ble-driver
หากต้องการสร้างตัวอย่างอย่างรวดเร็ว โปรดดูที่ example/README.md
หากคุณประสบปัญหาระหว่างการติดตั้ง pc-ble-driver โปรดดู Issues.md
อย่าลังเลที่จะเสนอการเปลี่ยนแปลงโดยสร้างคำขอดึง
หากคุณวางแผนที่จะทำการเปลี่ยนแปลงที่ไม่สำคัญ โปรดเริ่มต้นจากเล็กๆ น้อยๆ และขอข้อตกลงก่อนที่จะทำงานหนักเกินไป คำขอดึงสามารถปฏิเสธได้หากไม่สอดคล้องกับแผนงานผลิตภัณฑ์ปัจจุบัน
เพื่อที่จะยอมรับคำขอดึงของคุณ เราต้องการให้คุณลงนามในข้อตกลงใบอนุญาตผู้สนับสนุน (CLA) ของเรา คุณจะเห็นคำแนะนำในการดำเนินการนี้หลังจากส่งคำขอดึงครั้งแรกแล้ว
หากคุณพบข้อบกพร่องใดๆ หรือมีคำถามหรือข้อเสนอแนะอื่นๆ โปรดส่งโพสต์บนพอร์ทัล Nordic DevZone โปรดทราบว่ารายงานข้อบกพร่องควรอธิบายรายละเอียดเพียงพอเกี่ยวกับวิธีการจำลองข้อบกพร่อง
ดูไฟล์ใบอนุญาตสำหรับรายละเอียด