【Telink TL322X 测评】第五章:BLE 广播、扫描与连接测试
# 【Telink TL322X 测评】第五章:BLE 广播、扫描与连接测试* **TL322X 属于低功耗无线连接类点点taptap安卓,BLE 是本次测评的核心内容之一。**
* **本章先验证最基础的 BLE 链路:开发板发出广播,手机或 PC BLE 工具能够扫描到设备,并完成连接、断开和重连。**
## 5.0 当前验证记录
**本章使用 SDK BLE peripheral 示例,已经完成构建、烧录和读回校验:**
| **项目** | **结果** |
| ------------------ | ------------------------------------------------------------------------ |
| **SDK target** | `acl_peripheral_demo` |
| **固件** | `firmware\eval04_acl_peripheral_adv_conn.bin` |
| **大小** | **127556 bytes** |
| **SHA256** | `59318E35917400AF72CEEBE8368A9AFB3C861E3AEAC3E4CC5BEB3EC0408F2D22` |
| **烧录验证** | **2026-07-08 12:48**`verified`,读回 SHA256 与本地固件一致 |
| **BLE 广播名** | `periphr_demo` |
| **BLE 扫描验证** | **2026-07-04 手机蓝牙已扫描到**`periphr_demo` |
| **日志** | `logs\flash_eval04_acl_peripheral_adv_conn.log` |
| **最新验证日志** | `logs\flash_verify_eval04_latest.log` |
**本章已达到的效果:BLE peripheral 固件可以从本章独立源码副本构建、正确写入 Flash、读回校验通过,并已通过 **`rst -f` 从 Flash 复位运行。手机蓝牙已经可以扫描到 `periphr_demo`。
## 5.1 本章任务目标
**本章主要完成以下任务:**
```
1. 确认官方 BLE peripheral 示例可以在 TL322X 上构建和烧录;
2. 复位运行后确认开发板可以发出 BLE 广播;
3. 使用手机或 PC BLE 工具扫描到设备;
4. 建立 BLE 连接并记录连接参数;
5. 验证断开、重连和短时间稳定性。
```
## 5.2 开发板与测试方式
**本章测试链路如下:**
```
构建 acl_peripheral_demo
↓
烧录并读回校验
↓
rst -f 从 Flash 复位运行
↓
手机或 PC BLE 工具扫描广播
↓
记录设备名、地址、RSSI、广播数据
↓
连接、断开、重连并记录参数
```
**先在近距离完成扫描和连接,再逐步增加距离观察 RSSI 和重连表现。BLE 工具可以使用手机端通用 BLE Scanner 或 nRF Connect。当前固件广播名为 **`periphr_demo`,优先在扫描列表中查找这个名称。
## 5.3 独立工程与 SDK 基线
**本章记录目录为:**
```
D:\Project\Evaluation\Telink\eval_projects\04_ble_advertising_connection
```
**本章源码副本位于:**
```
src\sdk
```
**本章使用的主要源码入口为:**
```
src\sdk\vendor\acl_peripheral_demo
```
**工程关键文件:**
```
src\build_config.json
src\source_manifest.md
firmware\eval04_acl_peripheral_adv_conn.bin
logs\flash_eval04_acl_peripheral_adv_conn.log
logs\flash_verify_eval04_latest.log
tools\flash_verify_eval04.ps1
notes\flash_loader_recovery.md
```
## 5.4 关键源码与配置
**与本章相关的主要文件如下:**
| **文件** | **作用** |
| ------------------------------------------------------- | ---------------------------------------- |
| `src\sdk\vendor\acl_peripheral_demo\main.c` | **BLE peripheral 示例入口** |
| `src\sdk\vendor\acl_peripheral_demo\app.c` | **广播、连接和应用初始化主逻辑** |
| `src\sdk\vendor\acl_peripheral_demo\app_att.c` | **GATT attribute 表** |
| `src\sdk\vendor\acl_peripheral_demo\app_ui.c` | **LED、按键或 UI 相关辅助逻辑** |
| `src\sdk\vendor\acl_peripheral_demo\app_config.h` | **广播参数、连接参数和功能宏配置入口** |
**后续如果需要修改广播名称、广播包或连接参数,优先检查 **`app_config.h`、`app.c` 和 `app_att.c`。
**本章当前广播名称定义在 **`app.c` 的 `tbl_advData` 和 `tbl_scanRsp` 中:
```
periphr_demo
```
**广播参数为可连接非定向广播,间隔配置为 **`ADV_INTERVAL_200MS`。
## 5.5 编译、烧录与读回校验
**重新构建本章工程:**
```
powershell -NoProfile -ExecutionPolicy Bypass -File ..\run_tl322x_eval_matrix.ps1 -OnlyProjects 04_ble_advertising_connection -NoFlash
```
**构建并补烧:**
```
powershell -NoProfile -ExecutionPolicy Bypass -File ..\run_tl322x_eval_matrix.ps1 -OnlyProjects 04_ble_advertising_connection
```
**本章用于截图和复测的精简验证脚本:**
```
cd D:\Project\Evaluation\Telink\eval_projects\04_ble_advertising_connection
powershell -NoProfile -ExecutionPolicy Bypass -File .\tools\flash_verify_eval04.ps1 -ResetAfterFlash
```
**手动烧录命令格式:**
```
TC.exe all
TC.exe fi -d 1 --chip=TL322X
TC.exe ulf 0 0 -d 1 --chip=TL322X
TC.exe wf 0 -i firmware\eval04_acl_peripheral_adv_conn.bin -d 1 --chip=TL322X
TC.exe rf 0 127556 -o firmware\eval04_acl_peripheral_adv_conn_readback.bin -d 1 --chip=TL322X
TC.exe rst -f -d 1 --chip=TL322X
```
**当前读回校验结果:**
```
Device:
vid_248a&pid_3228&evk_id_0001&bus_003&addr_055
Flash information:
flash mid = 0x00166085, flash status = 0x0030, lock area: 0x000000-0x07ffff
flash uid: 41 50 34 5a 39 39 38 03 00 20 76 4c 4c 01 45 78
Write flash:
Flash download finish. 127556 bytes 2324 ms
Firmware SHA256:
59318E35917400AF72CEEBE8368A9AFB3C861E3AEAC3E4CC5BEB3EC0408F2D22
Readback SHA256:
59318E35917400AF72CEEBE8368A9AFB3C861E3AEAC3E4CC5BEB3EC0408F2D22
Result:
PASS, local firmware and flash readback are identical.
Run:
reset mcu ok.
```
## 5.6 实测现象
**当前已经确认:**
```
1. acl_peripheral_demo 可以独立构建;
2. 固件可以写入开发板 Flash;
3. 读回 SHA256 与本地固件一致;
4. 本章源码在 src\sdk\vendor\acl_peripheral_demo 中可直接查看和修改;
5. 固件已通过 rst -f 从 Flash 复位运行;
6. 手机蓝牙已经可以扫描到 periphr_demo;
7. BLE 连接、服务列表和断开重连过程等待手机截图或录屏确认。
```
**手机端验证步骤:**
```
1. 打开手机 BLE Scanner 或 nRF Connect;
2. 开始扫描,查找 periphr_demo;
3. 截图保留设备名、地址和 RSSI;
4. 点击 Connect;
5. 截图保留 Connected 状态、服务列表或连接参数;
6. 主动断开后重新连接一次,录制断开和重连过程。
```
## 5.7 图片和视频展示
* **手机 BLE 工具扫描到 **`periphr_demo`,需要显示设备名、地址或 RSSI
!(//m.qjumbo.com/forum/data/attachment/forum/202607/09/101701zzabshc5z5gvbz9s.jpg)
* **BLE 工具连接成功后的截图,需要显示 Connected 状态**
!(//m.qjumbo.com/forum/data/attachment/forum/202607/09/101742qkigqxkaa2hkkgdk.jpg)
* **连接参数、服务列表或 RSSI 详情页截图**
!(//m.qjumbo.com/forum/data/attachment/forum/202607/09/101809hiyi0e00egex232v.jpg)
* **源码中广播名称、广播数据或连接参数配置位置截图**
!(//m.qjumbo.com/forum/data/attachment/forum/202607/09/101844efki2n2zv6fysq6c.png)
!(//m.qjumbo.com/forum/data/attachment/forum/202607/09/101902t4g2064n40ub6ung.png)
!(//m.qjumbo.com/forum/data/attachment/forum/202607/09/101920j33585828h5hz6q4.png)
* `TC.exe` 写入、读回和 SHA256 一致的命令行截图
!(//m.qjumbo.com/forum/data/attachment/forum/202607/09/101958on9jgneerkjndjeq.png)
## 5.8 问题记录
**本章固件运行后,后续自动化补烧曾出现:**
```
TC.exe all
Device 1: vid_248a&pid_3228&evk_id_0001&bus_003&addr_xxx
TC.exe fi -d 1 --chip=TL322X
Executing sws_sync error
```
**这说明 USB EVK 枚举正常,但 flash loader / SWS 握手失败。当前处理方式是先尝试:**
```
TC.exe rst -f -d 1 --chip=TL322X
TC.exe fi -d 1 --chip=TL322X
```
**如果仍失败,则断开 USB,按住开发板上的 Flash 点点taptap安卓 RESET / **`FLASH_RESET` 重新插入 USB,等待 2 秒后松开,再重新执行 `TC.exe all` 和 `TC.exe fi`。本次实测中,按主控点点taptap安卓 RESET 不能恢复该问题,按 Flash 点点taptap安卓 RESET 后可以正常烧录。详细步骤见:
```
notes\flash_loader_recovery.md
```
## 5.9 本章测试结论
**阶段性结论:**
```
1. acl_peripheral_demo 已构建、烧录并读回校验通过;
2. 本章具备可独立修改的 BLE peripheral 源码副本;
3. BLE 广播名为 periphr_demo,手机蓝牙已经可以扫描到该设备;
4. 本章是下一章 GATT 数据收发测试的基础。
```
## 5.10 本章小结
**第五章已经把 BLE peripheral 固件放到可复现状态。当前命令行烧录、读回、复位运行和手机扫描广播已经完成。**
挺有意思的
页:
[1]