2024年10月23日 星期三

深入探討 LE Audio 的 BIS 與 CIS 模式

 















LE Audio 是藍牙技術在 5.2 版本中引入的重大革新,主要基於低能耗藍牙(BLE)技術,並採用了全新的音訊編解碼器 LC3Low Complexity Communication Codec)。相較於傳統的 SBC 編解碼器,LC3 在節省電量的同時也能提供更高質量的音訊。

本文將深入探討 LE Audio 所引入的兩大主要模式:廣播同步串流(Broadcast Isocronous Stream, BIS 連接同步串流(Connected Isocronous Stream, CIS,並解析這些模式如何針對不同的使用場景提供多樣化的音頻體驗。

 

廣播同步串流(BIS):多設備同步音頻的解決方案

BIS 是為了單向音頻廣播而設計的,它允許單一音頻源向多個設備同步串流,無需設備配對即可進行廣播。多個 BIS 還可組成一個 BIGBroadcast Isochronous Group),實現多條音訊流的同步傳輸,這對於需要多用戶同時接入相同音頻的場景特別有用。

以下是BISBIG的比較表:







BIS 的應用場景:

1.      音樂會和大型活動
在大型戶外音樂會中,BIS 可以將現場音樂從舞台廣播到觀眾的智能手機或無線耳機,讓所有人都能即時同步地聽到演出,不受距離限制。這種技術確保高品質的音頻體驗,即使在遠離舞台的角落,也能讓每個觀眾沉浸在表演中。

2.      博物館導覽
使用 BIS 技術,博物館可以為遊客提供音頻導覽,讓他們在參觀不同展品時,透過智能手機或租用設備接收相同的解說內容。此外,還可以根據遊客的需求靈活提供多語言服務,提升參觀體驗。

 

連接同步串流(CIS):專屬連接與高品質音頻

相對於 BISCIS 注重一對一的設備連接,提供雙向的高品質音頻傳輸。CIS 適用於需要個性化音頻體驗的場景,並能組成 CIGConnected Isochronous Group,使多個設備間的音訊串流保持同步。


以下是CISCIG的比較表:







CIS 的應用場景:

1.      無線耳機
使用者可透過 CIS 將無線耳機與智能手機連接,並同時連接兩個耳機以實現同步音訊播放。CIS 提供高保真音頻串流,無論是音樂、播客還是通話,都能確保清晰且低延遲的音質。同時,個別耳機的音量和均衡設定不會互相影響,提供個性化的聆聽體驗。

2.      助聽器應用
CIS 對助聽器使用者尤為有利,能夠直接將助聽器連接到智能手機或電視,並針對個別需求調整音頻設定。此技術可提升語音清晰度並減少背景噪音,使日常互動更加自然流暢。










總結

LE Audio BIS CIS 提供了針對不同使用場景的音頻傳輸解決方案。BIS 特別適合於需要多用戶共享的公開場合,如活動或公共場所的廣播服務;而 CIS 則適合提供私密、高品質的音頻體驗,尤其在多設備間的同步傳輸中表現出色。

隨著 LE Audio 技術的不斷發展,我們的日常音頻體驗將會迎來顯著的改變,這些創新技術不僅提高了音質,也增強了用戶的互動感。




Edited by Sales Manager: Ms. Mandy Chao


Raytac Corporation 勁達國際電子股份有限公司 
A Bluetooth, Wi-Fi, and LoRa Module Maker based on
Nordic nRF54; nRF53: nRF52; nRF51; nRF7002
Semtech Specification: SX1262

Bluetooth Specification: BT5.4 ; BT5.3 ; BT5.2.
Wi-Fi Specification: Wi-Fi 6
LoRa Specification: LoRaWAN

All products are FCC/IC/CE/Telec/KC/RCM/SRRC/NCC/WPC Pre-Certified.
http://www.raytac.com
email: sales@raytac.com
Tel: +886-2-3234-0208

2024年9月24日 星期二

從IEEE獲取MAC地址的完整指南

 

目前勁達 AN7002Q-nRF5340開發板(AN7002Q-DB-5340)上的AN7002Q模組在出廠時並沒有燒錄Wi-Fi MAC address您可以選擇使用自己的MAC地址,或向勁達索取。以下是為有需求自行購買MAC地址的使用者提供的簡單教學,幫助您快速完成購買。

 

勁達每片 AN7002Q模組會免費提供兩組 Wi-Fi MAC地址(2.4GHz & 5GHz頻段),若您目前擁有Raytac AN7002Q-DB-5340開發板,尚未獲得 Wi-Fi MAC addresses,

請聯繫我們: sales@raytac.com

 

2024年9月6日 星期五

如何產生執行DFU(OTA)所需的 hex/zip 檔 – 步驟說明#2 - 合併檔案並執行DFU OTA

 IC: nRF52832

DK: PCA10040(對應到nRF52832)
SDK: 16.0.0
SD: s132_nrf52_7.0.1_softdevice.hex
IDE: Keil C
PC: Win 10

接續上一篇 - Part 1: Bootloader和Application(文章連結請按此), 本篇會針對

Part 2: 合併檔案並執行DFU OTA

的主題做介紹。


Part 2: 合併檔案並執行DFU OTA


步驟1:執行bootloader的combin批次檔
nrf52832_bootloader_setting_merge.bat批次檔如下,

執行後會得到nrf52832_bootloader_secure_combin_settings.hex檔案。


@echo off
title = [ J-Link Tool ] %CD%
set nrfDir=C:Program Files (x86)Nordic Semiconductornrf5xbin
set BS= nrf52832_bootloader_secure_settings.hex
set BL= nrf52832_xxaa_s132.hex
set BSBLCombind=nrf52832_bootloader_secure_combin_settings.hex
set path=%nrfDir%;%path%
pause
echo -----------merge image file-------------------
mergehex.exe -m %BS% %BL% -o %BSBLCombind%
pause



步驟2:從三併一批次檔(nrf52832_3in1_merge.bat批次檔)產生Final.hex
※註:Final.hex檔的主要用途為:客製化燒錄 使用。


nrf52832_3in1_merge.bat批次檔如下,執行後會得到Final.hex檔案。


@echo off
title = [ J-Link Tool ] %CD%
set nrfDir=C:UsersuserDesktopNordic BLEnRF5_merge toolsnRF52 bin
set SD= s140_nrf52_7.2.0_softdevice.hex
set BLT=nrf52832_bootloader_secure_combin_settings.hex
set APP=nrf52832_xxaa.hex
set SD_BLT=SD_BLT.hex
set Finalfile=Final.hex
set path=%nrfDir%;%path%
pause
echo -----------merge image file-------------------
mergehex.exe -m %SD% %BLT% -o %SD_BLT%
pause
mergehex.exe -m %SD_BLT% %APP% -o %Finalfile%
pause


步驟3:產生DFU(OTA) .zip的壓縮檔:nrf52832_xxaa.zip,供終端設備跑DFU(OTA)。
A. 到DOS的下列路徑:..Python27Scripts
B. 執行以下指令:

nrfutil pkg generate --hw-version 52 --sd-req 0xCB --application-version 0xFF --application nrf52832_xxaa.hex --key-file private.pem nrf52832_xxaa.zip

產生的 nrf52832_xxaa.zip就是用於DFU OTA 的壓縮檔。


註: FWID 0xCB for s132_nrf52_7.0.1_softdevice.hex 使用;可以從Nordic網站上的SoftDevice文件中得到。


步驟4:透過nRF Connect手機APP執行 DFU(OTA)

4-1 先在手機上安裝 nRF Connect for mobile APP (下載連結請按此)


4-2 DFU(OTA) .zip 檔案名稱為:nrf52832_xxaa.zip
      可以先從電腦上透過電子郵件傳送nrf52832_xxaa.zip的zip檔,再使用手機收信並下載。


4-3 開啟 nRF Connect for mobile APP並連接裝置 (connect device)。


4-4 點擊 ”DFU” 並選擇剛剛下載的nrf52832_xxaa.zip壓縮檔。


4-5 開始跑DFU(OTA) 等待DFU(OTA) 更新完成 關閉應用程式 重啟裝置 完成DFU(OTA)。


本系列: 如何產生執行DFU(OTA)所需的 hex/zip 檔 – 步驟說明#2 - 合併檔案並執行DFU OTA

Part 1: Bootloader和Application (文章連結)

Part 2: 合併檔案並執行DFU OTA


Technical guidelines provided by R&D Manager: Mr. MW Lee
Edited by Sales Manager: Ms. Mandy Chao


Raytac Corporation 勁達國際電子股份有限公司
Raytac Corporation: A Bluetooth, Wi-Fi, and LoRa Module Maker based on
Nordic nRF54; nRF53: nRF52; nRF51; nRF7002
Semtech Specification: SX1262

Bluetooth Specification: BT5.4 ; BT5.3 ; BT5.2.
Wi-Fi Specification: Wi-Fi 6
LoRa Specification: LoRaWAN

All products are FCC/IC/CE/Telec/KC/RCM/SRRC/NCC Pre-Certified.
http://www.raytac.com
email: service@raytac.com
Tel: +886-2-3234-0208

2024年8月28日 星期三

如何產生執行nRF52832 DFU(OTA)所需的 hex/zip 檔 – 步驟說明#1 – Bootloader和Application

本系列的文章將會引導使用者如何在使用勁達的nRF52832系列模組編寫程式時,設置並啟用 Secure DFU OTA(空中升級) 的功能。

主題:使用nRF52832架設DFU OTA功能 (以SDK版本16.0.0為例)
DFU:Device Firmware Update;裝置韌體升級
OTA:Over the air;空中升級

IC: nRF52832
DK: PCA10040(對應到nRF52832)
SDK: 16.0.0
SD: s132_nrf52_7.0.1_softdevice.hex
IDE: Keil C
PC: Win 10


Secure DFU OTA 的系列文章會有兩篇,分別涉及:

Part 1: Bootloader和Application

Part 2: 合併檔案並執行DFU OTA (文章連結)

本篇文章主題為 Part 1: Bootloader和Application


nRF52832SDK16.0.0做Secure DFU(OTA)的方法如下:

Bootloader


路徑: ..\nRF5_SDK_16.0.0_98a08e2\examples\dfu\secure_bootloader\pca10040_s132_ble\arm5_no_packs

在nRF52832,開發者需先崁入ECC(Elliptic Curve Cryptography)至bootloader。

步驟1:Bootloader的’micro_ecc_lib_nrf52.lib’檔案,能在以下路徑找到:


步驟2. 解壓’micro-ecc-master.zip’到下列(建議新增一個micro-ecc資料夾)路徑。


步驟3. 執行’ gcc-arm-none-eabi-7-2018-q2-update-win32.exe’。


步驟4. Win10設環境變數依序設置如下圖:


步驟5. 開啟DOS,在下列armgcc路徑執行”make” 指令,就會產生’micro_ecc_lib_nrf52.lib’。


步驟6. 在資料夾: nRF_micro-ecc ,加入產生的’micro_ecc_lib_nrf52.lib’檔案。


步驟7. 在建構bootloader時, 會因缺少public key產生錯誤。


步驟8:在Bootloader裡面產生public key檔案的做法
A. 到DOS的下列路徑:..Python27 Scripts
B. 執行以下指令:

nrfutil keys generate private.pem
nrfutil keys display --key pk --format code private.pem --out_file public_key.c


步驟9:將public_key.c的pk[64]內容(下圖上半部分紅框)覆蓋到dfu_public_key.c(下圖下半部分)內

※註:記得存取以下3個自動產生的檔案
private.pem
public_key.c
dfu_public_key.c


步驟10:重新構建Bootloader的程式碼,並得到 nrf52832_xxaa_s132.hex 檔案。


Application


在構建Application前, 在Application內與DFU相關的程式碼 & 設定皆需增加或修改:

步驟1:打開C/C++並加入3個定義,分別為:
BL_SETTINGS_ACCESS_ONLY
NRF_DFU_SVCI_ENABLED
NRF_DFU_TRANSPORT_BLE=1;


步驟2. 在C/C++欄位內加入Include path(如紅框內所示)


步驟3. 在Project內增加檔案(請參考下方圖1 & 圖2)
            並新增2個Group(nRF_DFU與nRF_SVC,請參照下方圖3 & 圖4,按右鍵add group)。


步驟4. Application的main.c檔(..\examples\ble_peripheral\ble_app_uart\main.c)內
須增加下列幾張圖內的程式碼。

(程式碼請參考..\examples\ble_peripheral\ ble_app_buttonless_dfu內的main.c)


步驟5. Application的sdk_config.h檔
(路徑:..\examples\ble_peripheral\ble_app_uart\pca10056\s140\config\ sdk_config.h)內容需修改。


步驟6. 為能順利執行後續的DFU功能,Target內的IRAM1值要做修正:

如上圖,在檢查*p_app_ram_start值後,
需在Target欄位內將IRAM1原始值 0x20002AD8 0xD528 修改成正確值 0x20002AE8 0xD508,後續程式才能正確執行。(如下圖)


步驟7. 重新構建Application的程式碼,並得到 nrf52832_xxaa.hex檔案。


步驟8. 產生bootloader的setting檔案的做法, 得到nrf52832_bootloader_secure_settings.hex案。
nrfutil settings generate --family NRF52 --application nrf52832_xxaa.hex--application-version 3 --bootloader-version 2 --bl-settings-version 1 nrf52832_bootloader_secure_settings.hex --no-backup


※本系列第二篇 - Part 2: 合併建構完成的檔案 的說明文章預計於下周(2024年9月4日)刊登,敬請期待。



Technical guidelines provided by R&D Manager: Mr. MW Lee
Edited by Sales Manager: Ms. Mandy Chao


2024年8月20日 星期二

在使用開發板AN7002Q-DB-5340開發時,要如何將Wi-Fi MAC 位址燒錄進AN7002Q模組(模塊)?

想快速上手勁達AN7002模組與nRF5340模組嗎? 我們提供簡單的教學,帶你一步步在AN7002Q-nRF5340開發板(AN7002Q-DB-5340)上燒錄MAC位址。

目前Raytac AN7002Q-DB-5340 開發版上的AN7002Q模組(模塊)在出廠時並沒有燒Wi-Fi MAC address
但當跑NCS v2.60(含)以後版本的 Wi-Fi Scan code/Station code/Shell code… 時,
AN7002Q 模組內必需含有
Wi-Fi MAC address才能讓以上三個功能正常進行。

所以建議依照以下步驟進行:
1.將原始 Wi-Fi radio test code(..\nrf\samples\wifi\radio_test) 燒入 MDBT53
2.再透過下指令, 將
Wi-Fi MAC address寫入AN7002Q模組(模塊)

接著,將原始 Wi-Fi scan code/Station code /Shell code …燒入MDBT53藍芽模組, 功能就會正常。
*每一片 AN7002Q模組(模塊), Raytac都會提供兩組 Wi-Fi MAC addresses(2.4GHz & 5GHz頻段)。
*若您目前有Raytac AN7002Q-DB-5340開發版,但尚未拿到 Wi-Fi MAC addresses

*請與我們聯繫 service@raytac.com


範例解說1. SCAN code:

案例:

當在構建掃描代碼(SCAN code)、並閃存到 AN7002Q-DB-5340開發板上進行測試時,發生了錯誤。


解決方法:

當程式在跑NCS v2.60(含)或以後版本的 Wi-Fi scan code時,AN7002Q 模組(模塊)內的OTP,必需燒
Wi-Fi MAC address,Wi-Fi scan的功能才能正常運作。

(**注意因為是 OTP,值只能寫入 1 次。)

AN7002Q 模組內的OTP要燒錄
Wi-Fi MAC address方法如下:

1.首先必需先將原始的 Wi-Fi radio test code 燒入MDBT53後,再送下列 OTP read command。


wifi_radio_ficr_prog otp_read_params


看到 MAC0與MAC1都是0xFF值,

代表AN7002Q 模組內的OTP在出廠時是沒有燒Wi-Fi MAC address的。



2.自行下載OTP write command, 並將
Wi-Fi MAC address寫入到AN7002Q module內的OTP.

https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/samples/wifi/radio_test/ficr.html

wifi_radio_ficr_prog otp_write_params 0x120 0xDDCCBBAA 0xFFEE

wifi_radio_ficr_prog otp_write_params 0x128 0xDDCCBBAA 0xFFEE


寫入完成後,可用以下的OTP read command 去檢查所寫入的Wi-Fi MAC address值。


wifi_radio_ficr_prog otp_read_params


3.  最後再將原始 Wi-Fi scan code燒回至MDBT53,如此一來,Wi-Fi scan的功能就會正常運作了。


範例解說2. Shell code:

案例:
AN7002Q-DB-5340在跑Shell Code時發生了錯誤


解決方法:
當我們在使用Raytac AN7002Q-DB-5340和nRF5340 DK進行開發時,
由於以上兩者並無外部元件MX25R64 (Serial NOR Flash)。
只有nRF7002DK有此外部 MX25R64元件.

所以當跑原始 Wi-Fi shell code時,程式原設定會啟用SPI NOR

在使用Raytac AN7002Q-DB-5340 開發版時,必需在prj.conf檔案內
自行加上 CONFIG_SPI_NOR=n 來禁用SPI NOR,以確保SPI_NOR或任何依賴於它的配置都被關閉。

修改以上的指令後,
重新編譯及燒錄後shell code的功能(例: Wi-Fi scan/Wi-Fi connect/net ping ..)就會都正常運作了。


Edited by Sales Manager: Ms. Mandy Chao
Technical guidance provided by R&D Manager: Mr. MW Lee
Hardware environment provided by Hardware Engineer: Mr. Kyle Wang


Raytac Corporation 勁達國際電子股份有限公司 
Bluetooth & WiFi module maker based on Nordic nRF54, nRF53, nRF52, nRF7002 solution
BT5.4 &BT5.3 & BT5.2 & BT5.1 Qualified, FCC/IC/CE/Telec/KC/RCM/SRRC/NCC Pre-Certified.
Bluetooth Solution: nRF54, nRF5340, nRF52840, nRF52833, nRF52832, nRF52820, nRF52811, nRF52810, nRF52805, nRF51822
WiFi Solution: nRF7002
http://www.raytac.com
email: service@raytac.com
Tel: +886-2-3234-0208

2024年7月17日 星期三

nRF52840專案從MDBT50Q-RX (USB-A) 轉換到MDBT50Q-CX (USB-C) 的開發設定說明書

 前言:

這篇是為那些要將開發專案從 Raytac MDBT50Q-RX (USB-A) 轉換(或複製)到 MDBT50Q-CX(USB-C) 提供的指南。 開發MDBT50Q-CX專案, 除了硬體規格變更之外(相較MDBT50Q-RX尺寸縮小、LED、按鈕、引腳定義變更),還需要針對韌體參數設定調整。

RX-1                        CX-1

  MDBT50Q-RX                              MDBT50Q-CX


說明書目錄

1.  MDBT50Q-RX(USB-A) & MDBT50Q-CX(USB-C) 硬體比較表

2. 韌體參數設定

3. 產出一組21 (41) hex 檔案

4. 執行韌體燒錄


1. MDBT50Q-RX(USB-A) & MDBT50Q-CX(USB-C) 硬體比較表

Comparison chart


2. 從 MDBT50Q-RX 轉換為 MDBT50Q-CX 所需的韌體參數調整 

若你使用現有的MDBT50Q-RX(USB-A)專案韌體 要轉換到MDBT50Q-CX(USB-C)環境,

請針對以下參數調整以配合不同的PIN定義。

Option 1.  若您使用 nRF5 SDK開發環境

針對LED, Button PIN定義  設定如下: 4處 紅框線處

Firmware configuration-nRF5


Option2.
若您使用NCS V2.6.X 開發環境:

使用nrf52840dongle_nrf52840的定義,在專案中新增檔案nrf52840dongle_nrf52840.overlay

並在組態定義中加入,內容如下:

/ {
   leds {
             compatible = "gpio-leds";
             led0_green: led_0 {
                      gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
                      label = "Green LED 0";
             };
             led1_red: led_1 {
                     gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
                     label = "Red LED 1";
             };
};

  buttons {
  compatible = "gpio-keys";
  button0: button_0 {
                  gpios = <&gpio1 6(GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
                  label = "Push button switch 0";
                                   };
};
};

Firmware configuration-NCS


3. 產出一組21 (41) hex 檔案

3A. Bootloader public key:

nrfutil keys generate public_key.pem → 產生.pem檔

nrfutil keys display --key pk --format code public_key.pem --out_file public_key.c

→ 把.pem檔轉成.c檔

3A-1

3A-2

3B. 範例code路徑:

nRF5 SDK: nRF5_SDK_17.1.0_ddde560\examples\ble_peripheral\ble_app_uart\pca10056\s140

NCS V2.6.0: ncs\v2.6.0\nrf\samples\bluetooth\peripheral_uart

3C. 如何產生Bootloader 設定檔案 (如果您需要Bootloader):

nrfutil.exe settings generate --family NRF52840 --application nrf52840_xxaa.hex --application-version 255 --bootloader-version 2 --bl-settings-version 1 bootloader_settings.hex

3D. 合併2合1 或4合1的hex檔案:

a). 合併21hex檔案 (若專案不需要Bootloader) :

mergehex.exe -m s140_nrf52_7.2.0_softdevice.hex nrf52840_xxaa.hex -o merge.hex

3D-a

b). 合併41hex檔案 (若專案需要Bootloader) :

mergehex.exe -m bootloader.hex bootloader_settings.hex  s140_nrf52_7.2.0_softdevice.hex nrf52840_xxaa.hex -o merge.hex

3D-b


4. 執行韌體燒錄

MDBT50Q-RX(USB-A):使用硬體跳線方式燒錄韌體。

參考文章說明:韌體篇~燒錄與更新MDBT50Q-RX USB Dongle(Nordic nRF52840 / nRF52833)

MDBT50Q-CX(USB-C):利用內建的Bootloader 執行USB DFU做韌體更新。

參考文章說明:nRF52840/nRF52833 Type-C Dongle 接收器 MDBT50Q-CX的使用說明書

 




Edited by Sales Manager: Ms. Jocelyn Tsai

Technical guidance provided by Firmware Deputy Manager: Mr. Stanley Huang


Raytac Corporation 勁達國際電子股份有限公司
Bluetooth & WiFi & LoRa module maker based on Nordic nRF54, nRF53, nRF52, nRF7002 solution
BT5.4 &BT5.3 & BT5.2 & BT5.1 Qualified, FCC/IC/CE/Telec/KC/RCM/SRRC/NCC/WPC Pre-Certified.
Bluetooth Solution: nRF54, nRF5340, nRF52840, nRF52833, nRF52832, nRF52820, nRF52811, nRF52810, nRF52805, nRF51822
WiFi Solution: nRF7002
http://www.raytac.com
email: service@raytac.com
Tel: +886-2-3234-0208