eefocus_4231172 发表于 2026-7-6 20:51:41

【Telink - 泰凌 TL322X 开发板】channle sounding测试篇

本帖最后由 eefocus_4231172 于 2026-7-6 20:52 编辑

一、前言
本篇使用BLE6.0的CS特性进行测距实验,使用TL322X作为主机,nRF54L15作为从机进行测试。



二、SDK和DEMO的使用介绍
1、主机TL322X使用DEMO


2、从机nRF54L15使用DEMO


三、开发板展示以及接线
1、泰凌微TL322X开发板



2、Nordic nRF54L15开发板


四、正文
4.1、泰凌微TL322X的程序修改
1、扫描连接逻辑更改

如上图所示,找到app.c中的app_le_adv_report_event_handle(u8 *p)函数,更改成上图所示的语句,该语句的意思是只要扫描到“cs-telink”的广播名就开始进行连接。


2、增加安全配对

如上图所示,增加安全配对,在user_init_normal(void)函数中。


3、增加上电开始扫描逻辑

如上图所示,打开扫描,在user_init_normal(void)函数中。


4、选择单天线

在“tl_ble_sdk\vendor\common\boards\TL322X_C1T382A102.h”中将ANTENNA_SWITCHING_AUTO_EN设置为0


4.2、Nordic nrf54L15的程序修改
1、广播名修改

如上图所示,将广播名更改为“cs_telink”


2、广播数据修改

static const struct bt_data ad[] = {
    BT_DATA(BT_DATA_NAME_COMPLETE, CONFIG_BT_DEVICE_NAME, sizeof(CONFIG_BT_DEVICE_NAME) - 1),
      BT_DATA_BYTES(BT_DATA_FLAGS, (BT_LE_AD_GENERAL | BT_LE_AD_NO_BREDR)),
      // BT_DATA_BYTES(BT_DATA_UUID16_ALL, BT_UUID_16_ENCODE(BT_UUID_RANGING_SERVICE_VAL)),
    BT_DATA_BYTES(BT_DATA_UUID16_SOME, BT_UUID_16_ENCODE(BT_UUID_RANGING_SERVICE_VAL)),
};
如上图所示,修改广播数据


3、安全配对修改



如上图所示,增加安全配对相关的内容


4、增加打印,和配对相关的内容

#
# Copyright (c) 2024 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
#

CONFIG_NCS_SAMPLES_DEFAULTS=y
CONFIG_DK_LIBRARY=y

CONFIG_BT=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_SMP=y
# CONFIG_BT_DEVICE_NAME="Nordic CS Reflector"
CONFIG_BT_DEVICE_NAME="cs_telink"
CONFIG_BT_MAX_CONN=1
CONFIG_BT_GAP_AUTO_UPDATE_CONN_PARAMS=n
CONFIG_BT_BONDABLE=y


# Use Settings API for BLE bonding
CONFIG_BT_SETTINGS=y
CONFIG_SETTINGS=y
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048
CONFIG_FLASH=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_FLASH_MAP=y
CONFIG_FCB=y

CONFIG_BT_SMP_SC_ONLY=n

# The Ranging Profile recommends a MTU of at least 247 octets.
CONFIG_BT_L2CAP_TX_MTU=498
CONFIG_BT_BUF_ACL_TX_SIZE=502
CONFIG_BT_BUF_ACL_RX_SIZE=502
CONFIG_BT_CTLR_DATA_LENGTH_MAX=251
CONFIG_BT_CTLR_PHY_2M=y

# This reduces RAM usage. Additional RAM is needed to support optional
# features such as mode 3 or multiantenna. Change or remove these if
# using those features
CONFIG_BT_RAS_MODE_3_SUPPORTED=n
CONFIG_BT_RAS_MAX_ANTENNA_PATHS=1
CONFIG_BT_CS_DE_MAX_NUM_ANTENNA_PATHS=1
CONFIG_BT_CTLR_SDC_CS_MAX_ANTENNA_PATHS=1
CONFIG_BT_CTLR_SDC_CS_NUM_ANTENNAS=1
CONFIG_BT_CTLR_SDC_CS_STEP_MODE3=n
CONFIG_BT_CTLR_SDC_CS_ROLE_REFLECTOR_ONLY=y

# Disabling the CS Test command reduces flash usage
CONFIG_BT_CTLR_CHANNEL_SOUNDING_TEST=n

# This allows CS and ACL to use different PHYs
CONFIG_BT_TRANSMIT_POWER_CONTROL=y

# Let the initiating device control the PHY updates
CONFIG_BT_AUTO_PHY_UPDATE=n

CONFIG_BT_CHANNEL_SOUNDING=y
CONFIG_BT_RAS=y
CONFIG_BT_RAS_RRSP=y

CONFIG_BT_CTLR_CHANNEL_SOUNDING_TEST=y
# RTT LOGGING
CONFIG_LOG=y
CONFIG_UART_CONSOLE=n
CONFIG_USE_SEGGER_RTT=y
CONFIG_RTT_CONSOLE=y
CONFIG_LOG_BACKEND_RTT=y

五、LOG打印展示
5.1、nrf54L15打印log展示

00> *** Booting nRF Connect SDK v3.4.0-99553055607b ***
00> *** Using Zephyr OS v4.4.0-bf801e4e3d19 ***
00> I: Starting Channel Sounding Reflector Sample
00> I: SoftDevice Controller build revision:
00> I: c8 da 30 98 f9 f0 34 a4 |..0...4.
00> I: 4b 6e ba d3 08 19 cc 0c |Kn......
00> I: ea 51 da 47             |.Q.G   
00> I: HW Platform: Nordic Semiconductor (0x0002)
00> I: HW Variant: nRF54Lx (0x0005)
00> I: Firmware: Standard Bluetooth controller (0x00) Version 200.12506 Build 888207768
00> I: No ID address. App must call settings_load()
00> I: HCI transport: SDC
00> I: Identity: DB:EF:FC:3C:9C:A2 (random)
00> I: HCI: version 6.3 (0x11) revision 0x3039, manufacturer 0x0059
00> I: LMP: version 6.3 (0x11) subver 0x3039
00> I: Connected to 3C:CF:B4:5A:8D:F6 (public) (err 0x00)
00> I: Security changed: level 2
00> I: CS capability exchange completed.
00> I: CS config creation complete.
00>- id: 0
00>- mode: 2 (PBR)
00>- min_main_mode_steps: 255
00>- max_main_mode_steps: 255
00>- main_mode_repetition: 0
00>- mode_0_steps: 3
00>- role: Reflector
00>- rtt_type: AA only
00>- cs_sync_phy: LE 1M PHY
00>- channel_map_repetition: 1
00>- channel_selection_type: Algorithm #3b
00>- ch3c_shape: Hat shape
00>- ch3c_jump: 2
00>- t_ip1_time_us: 50
00>- t_ip2_time_us: 40
00>- t_fcs_time_us: 100
00>- t_pm_time_us: 10
00>- channel_map: 0x1FFFFFFFFFFFFC7FFFFC
00>
00> I: CS security enabled.



5.2、TL322X log打印

黐0001] Initiator demo init finished, cs alg version CS_ALG4_V2.9.0.0.0.1
create connection success: a2 9c 3c fc ef db
Connection complete event: 80 00 00 01 a2 9c 3c fc ef db 08 00 00 00 90 01 06
GAP_EVT_SMP_PAIRING_BEGIN
dle change: 07 80 00 fb 00 48 08 fb 00 48 08
: 3a c0 6f b3 91 80 be 51 b5 5f 4e cb 03 33 8d 9f
GAP_EVT_SMP_PAIRING_SUCCESS
RAS service has been found.SDP end: 10 e5 00 00 80 00 00 00 00 00 00 00
read remote cap
------------------------------
Mode3 support:
RTT Cap:AA,Sounding,Random
AA:,Sounding:,Random:
PHY Cap:2M,2M 2BT
Num Ant:,Max Ant Path:
Role:I,R,Subfeatures:
Max cfgs:,Max Procedures:
T_SW:2,T_IP1:50,T_IP2:40,T_FCS:100
T_PM:10,20,TX SNR:
------------------------------
------------------------------
Mode3 support:
RTT Cap:AA,Sounding,Random
AA:,Sounding:,Random:
PHY Cap:2M,2M 2BT
Num Ant:,Max Ant Path:
Role:I,R,Subfeatures:
Max cfgs:,Max Procedures:
T_SW:0,T_IP1:30,T_IP2:20,T_FCS:60
T_PM:10,20,TX SNR:
------------------------------
:2c 00 80 00 01 00 00 01 01 03 00 00 1e 00 1e 00 00 00 00 02 02 00 7c 00 7e 00 e0 01 03 00 00 00
cs capability exchange success
cs compete: 01 00 00 00
cs start: 02 00 00 00
CS Set Default Settings:80 00 01 01 00
success
cs compete: 02 00 00 00
cs start: 00 00 00 00
cs compete: 04 00 00 00
cs start: 04 00 00 00
cs create config:80 00 00 01 02 ff ff ff 00 03 00 00 01 fc ff 7f fc ff ff ff ff ff 1f 01 00 00 02 00
create cfg id:0x0
IP1,IP2,FCS,PM: 4, 3, 7,0
------------------------------
Cfg id:,Action:
chM:fc ff 7f fc ff ff ff ff ff 1f
repeat:,mainMode:,subMode:
mainMode:minStep,maxStep:,repeat:
mode0 steps:
PHY:1M,2M,coded,2M2BT
RTT type:,Role:
ChSel:#3b
T_IP1:50,T_IP2:40,T_FCS:100,T_PM:10
------------------------------
: 07 02 31 00
:2f 00 80 00 00 01 02 ff ff ff 00 03 00 00 01 fc ff 7f fc ff ff ff ff ff 1f 01 00 00 02 00 32 28 64 0a
cs cfg: 80 00 00 00 08 00 00 00 10 e5 00 00
cs cfg exchange success
cs compete: 08 00 00 00
cs start: 05 00 00 00
enable CS security
------------------------------
IV:2e 4a ca fd 6b 18 eb ef
IN:51 90 e4 26
PV:79 3f 2e 1f ff db 85 7d
------------------------------
------------------------------
IV:0b 5e e3 7b 1c a5 50 a4
IN:8b 41 1f 9c
PV:85 ed f9 a2 29 f7 50 23
------------------------------
:2e 00 80 00
cs sec exchange success
cs compete: 10 00 00 00
cs start: 06 00 00 00
set procedure param:80 00 00 ff ff 0f 00 0f 00 00 00 60 ea 00 60 ea 00 01 01 00 01
Set Proc Param Success
cs compete: 20 00 00 00
cs start: 07 00 00 00
set procedure enable:80 00 00 01
------------------------------
Cfg id:,Conn Event count:
Offset:min,max
Procedure len:,Event interval:
Subevent per event
Subevent:interval,len
Procedure:Interval,Count
ACI:,Preferred Peer Ant
PHY:1M,2M,S8,S2
Pwr_Delta:
------------------------------
opcode:0x32,errCode:0x1e
cs start exch fail
CS Terminate Success
:30 1e 80 00 00 00 00 00 50 c3 00 03 59 00 0f 00 0f 00 00 00 ff ff
procedure_enable_complete_evt_handleGet Tag ID success.from connHandle:, ID:cs measurement start
cs compete: 40 00 00 00
cs start: 00 00 00 00


六、测试结论
cs测距未成功

页: [1]
查看完整版本: 【Telink - 泰凌 TL322X 开发板】channle sounding测试篇

Baidu
map