Release V4.0.2.2
V4.0.2.2(PR)
Version
- SDK version: tc_ble_sdk V4.0.2.2
- Chip Version
- B85: TLSR825X
- B87: TLSR827X
- TC321X (A0/A1)
- Hardware Version
- B85: C1T139A30_V1_2, C1T139A3_V2_0
- B87: C1T197A30_V1_1, C1T201A3_V1_0
- TC321X: C1T357A20_V1_1, C1T362A5_V1_0, C1T357A78_V1_0
- Platform Version
- tc_platform_sdk V3.3.1
- Toolchain Version
- TC32 ELF GCC4.3 ( IDE: Telink IoT Studio )
Note
- (TC321X) Since the analog registers of TC321X are cleared after a software reboot, watchdog reboot or deep sleep, the judgment logic for low battery check has been modified. The flag bit
LOW_BATT_FLGis set when the voltage is normal and cleared when it is abnormal. As a result, during the first power-up, the voltage must be above 2.2V(user configurable) for the program to run; otherwise, it will enter deep sleep mode.
Known issue
- For TC321X, in the ble_remote reference design, after switching the key mode to IR mode, if the chip enters deep sleep and then wakes up, the key mode state will be lost. It is necessary to reconfigure it to IR mode.
Features
-
Chip
- Support TC321X chip A1 version.
-
Application
- Add ADC calibration in TC321X.
- TC321X ble_remote reference design supports IR Learning.
- For TC321X, add the eslp_esl_demo project, which supports the ESL(Electronic Shelf Label) Server function.
- For TC321X, add the ESL image display board
C1T357A78.hin the "vendor/common/boards" folder.
-
Controller
- Add PAwR(Periodic Advertising with Responses):
- Add
PAwR_sync.hin the folder "stack/ble/controller/ll/prdadv".
- Add
- Add PAST(Periodic Advertising Sync Transfer):
- Add the new folder "stack/ble/controller/ll/past".
- Add PAwR(Periodic Advertising with Responses):
-
Host
- Add an API
blc_smp_searchBondingCentralDevice_by_PeerMacAddress()to obtain bonding information according to the central's address and address type. - Add an API
blc_smp_deleteBondingCentralInfo_by_PeerMacAddress()to delete bonding central information according to the peer device address and device address type. - Add the API
blc_l2cap_pktHandler_V1()for ESL to handle L2CAP data. - For TC321X, add
stack/ble/profile,stack/ble/host/attandstack/ble/host/gattfolders to support the ESL Server function.
- Add an API
Bug Fixes
-
Application
- Fixed (TC321X): Enabling
APP_BATT_CHECK_ENABLEleads to increased current consumption in deep sleep mode.
- Fixed (TC321X): Enabling
-
Controller
- Fixed (B85/B87/TC321X): For the
TEST_BLE_PHYreference design in feature_test, when switching from 1M PHY to 2M PHY, the 2M PHY can not work properly. - Fixed (B85/B87/TC321X): Frequent GPIO wake-up will cause the disconnection issue when
BLE_APP_PM_ENABLEis enabled.
- Fixed (B85/B87/TC321X): For the
-
CoC
- Fixed (B85/B87/TC321X): The parameter check is incorrect when establishing new CoC (Connection-oriented channels) channels.
-
Driver
- Fixed (TC321X A0): MCU reboot failure after OTA when calling start_reboot.
Refactoring
-
Application
- (TC321X) Delete Audio DMIC setting.
- (TC321X) Optimize the pop noise issue when audio is turned on, and disable the audio module after audio ends to reduce power consumption.
- (B85/B87/TC321X) When the
flash_midacquisition fails or no matching MID value is found, setblc_flashProt.init_err = 1to indicate a flash protection initialization failure. - (B85/B87/TC321X) Place the variable
tick_adv_rptin the "retention_data" sector to prevent it from being reset after deep retention sleep. - (TC321X) Remove
wd_32k_stop()in acl_c1p1_demo initialization, which has already been handled in the library. - (TC321X) Modify the default setting of DEBUG_GPIO in
C1T357A20.h. - (TC321X) Modify the low battery check GPIO pin in both
C1T357A20.hand C1T362A5.h toGPIO_PB5.
-
Host
- (B85/B87/TC321X) Move the contents of the "stack/ble/host/attr" folder to "stack/ble/host/att/att_v0" folder.
- (TC321X) Add ESL function related header file references in
ble_host.h.
-
Controller
- (B85/B87/TC321X) Optimize the SRAM size for c1p1.
- (B85/B87/TC321X) Clean the master and slave name in the controller:
- Rename API
blc_ll_getCurrentMasterRoleNumber()toblc_ll_getCurrentCentralRoleNumber(). - Rename API
blc_ll_getCurrentSlaveRoleNumber()toblc_ll_getCurrentPeripheralRoleNumber(). - Add macro definitions
blc_ll_getCurrentSlaveRoleNumber()andblc_ll_getCurrentMasterRoleNumber()incontr_comp.hfor compatibility.
- Rename API
- Remove the duplicate definition of the API
blc_ll_initLegacyAdvertising_module()inleg_adv.h. - (B85/B87/TC321X) Modify the definition of
PERD_ADV_PARAM_LENGTHto 456. - (TC321X) Add PAwR and PAST header file references to
ble_controller.h.
-
HCI
- (TC321X) Add command and event definitions for the PAwR and PAST HCI interfaces to
hci_const.h,hci_cmd.h, andhci_event.h.
- (TC321X) Add command and event definitions for the PAwR and PAST HCI interfaces to
-
Link & Startup
- (TC321X) Add a new sector "platform_func" to store the platform data.
- (B85/B87) Add a new sector "cstartup_ram_funcs".
- (B85/B87/TC321X) Move the functions in
div_mod.Sfrom the "ram_code" sector to "cstartup_ram_funcs" sector. - (TC321X) Add RF software configuration invocation interface
rf_sw_config()in thecstartup_TC321X.S.
BREAKING CHANGES
- N/A.
CodeSize
-
B85
- acl_peripheral_demo
- Firmware size: 83.5 kBytes
- SRAM size: 32.5 kBytes
- deepsleep retention SRAM size: 28.9 kBytes
- acl_central_demo
- Firmware size: 73.9 kBytes
- SRAM size: 37.1 kBytes
- acl_connection_demo
- Firmware size: 89.2 kBytes
- SRAM size: 43.6 kBytes
- acl_c1p1_demo
- Firmware size: 95.4 kBytes
- SRAM size: 34.3 kBytes
- deepsleep retention SRAM size: 30.3 kBytes
- acl_peripheral_demo
-
B87
- acl_peripheral_demo
- Firmware size: 83.0 kBytes
- SRAM size: 32.5 kBytes
- deepsleep retention SRAM size: 29.0 kBytes
- acl_central_demo
- Firmware size: 74.7 kBytes
- SRAM size: 37.5 kBytes
- acl_connection_demo
- Firmware size: 90.3 kBytes
- SRAM size: 43.8 kBytes
- acl_c1p1_demo
- Firmware size: 95.1 kBytes
- SRAM size: 34.6 kBytes
- deepsleep retention SRAM size: 30.3 kBytes
- acl_peripheral_demo
-
TC321X
- acl_peripheral_demo
- Firmware size: 88.2 kBytes
- SRAM size: 33.4 kBytes
- deepsleep retention SRAM size: 30.0 kBytes
- acl_central_demo
- Firmware size: 79.6 kBytes
- SRAM size: 38.5 kBytes
- acl_connection_demo
- Firmware size: 95.1 kBytes
- SRAM size: 44.8 kBytes
- acl_c1p1_demo
- Firmware size: 100.0 kBytes
- SRAM size: 35.2 kBytes
- deepsleep retention SRAM size: 31.3 kBytes
- ble_remote
- Firmware size: 102.2 kBytes
- SRAM size: 39.9 kBytes
- deepsleep retention SRAM size: 34.9 kBytes
- eslp_esl_demo
- Firmware size: 158.2 kBytes
- SRAM size: 47.4 kBytes
- deepsleep retention SRAM size: 43.7 kBytes
- acl_peripheral_demo
Version
- SDK 版本: tc_ble_sdk V4.0.2.2
- Chip 版本
- B85: TLSR825X
- B87: TLSR827X
- TC321X (A0/A1)
- Hardware 版本
- B85: C1T139A30_V1_2, C1T139A3_V2_0
- B87: C1T197A30_V1_1, C1T201A3_V1_0
- TC321X: C1T357A20_V1_1, C1T362A5_V1_0, C1T357A78_V1_0
- Platform 版本
- tc_platform_sdk V3.3.1
- Toolchain 版本
- TC32 ELF GCC4.3 ( IDE: Telink IoT Studio )
Note
- (TC321X) 由于TC321X的模拟寄存器在软件复位、看门狗复位或deep sleep后会清掉,因此修改了低压检测的判断逻辑,电压正常时写入标志位
LOW_BATT_FLG,异常时清除该标志位。所造成的影响是,第一次上电电压需要高于2.2V(用户可配置)才能使程序运行,否则会直接进入deep sleep状态。
Known issue
- 对于TC321X,在ble_remote中按键模式切换为IR模式后,如果芯片进入deep sleep,唤醒回来后会丢失按键模式状态,需要重新设置为IR模式。
Features
-
Chip
- 支持 TC321X A1版本芯片。
-
Application
- 在 TC321X 中添加ADC校准。
- TC321X ble_remote 参考设计支持IR学习。
- 对于 TC321X,新增 eslp_esl_demo 工程,支持 ESL(Electronic Shelf Label) Server功能。
- 对于 TC321X,在文件夹 "vendor/common/boards" 中添加
C1T357A78.h文件,支持 ESL 的图片显示功能。
-
Controller
- 添加 PAwR(Periodic Advertising with Responses) 功能:
- 在文件夹 "stack/ble/controller/ll/prdadv" 中添加了
PAwR_sync.h文件。
- 在文件夹 "stack/ble/controller/ll/prdadv" 中添加了
- 添加 PAST(Periodic Advertising Sync Transfer)功能:
- 新增文件夹 "stack/ble/controller/ll/past"。
- 添加 PAwR(Periodic Advertising with Responses) 功能:
-
Host
- 添加
blc_smp_searchBondingCentralDevice_by_PeerMacAddress()接口,用于根据主机端设备地址和地址类型获取绑定信息。 - 添加
blc_smp_deleteBondingCentralInfo_by_PeerMacAddress()接口,用于根据对端设备地址和地址类型删除绑定的主机端信息。 - 添加
blc_l2cap_pktHandler_V1()接口,用于处理ESL L2CAP层的数据。 - 对于TC321X,新增文件夹 "stack/ble/profile"、"stack/ble/host/att"和"stack/ble/host/gatt"文件夹,支持 ESL Server功能。
- 添加
Bug Fixes
-
Application
- 修复(TC321X):开启
APP_BATT_CHECK_ENABLE后,deep sleep模式下电流过大。
- 修复(TC321X):开启
-
Controller
- 修复(B85/B87/TC321X):在feature_test的
TEST_BLE_PHY参考设计中,从1M PHY切换到2M PHY时,2M PHY无法正常工作。 - 修复(B85/B87/TC321X):当使能
BLE_APP_PM_ENABLE时,频繁GPIO唤醒将导致断连。
- 修复(B85/B87/TC321X):在feature_test的
-
CoC
- 修复:建立新CoC通道时参数检查错误。
-
Driver
- 修复 (TC321X A0):OTA结束后调用
start_reboot()函数无法正常重启MCU的问题。
- 修复 (TC321X A0):OTA结束后调用
Refactoring
-
Application
- (TC321X) 删除 Audio DMIC 设置。
- (TC321X) 优化当开启语音时的POP噪声问题,并在语音结束后关闭语音模块以降低功耗。
- (B85/B87/TC321X) 当
flash_mid获取失败或未找到匹配的 MID 值时,设置blc_flashProt.init_err = 1, 表示 flash 保护初始化失败。 - (B85/B87/TC321X) 将变量
tick_adv_rpt放到"retention_data"段,防止其在deep retention sleep后重置。 - (TC321X) 移除acl_c1p1_demo初始化中的
wd_32k_stop(),该功能已在库中处理。 - (TC321X) 修改
C1T357A20.h中默认设置的DEBUG_GPIO。 - (TC321X) 将
C1T357A20.h和C1T362A5.h中的低压检测的GPIO检测口修改为GPIO_PB5。
-
Host
- (B85/B87/TC321X) 将"stack/ble/host/attr"文件夹下的内容移动到"stack/ble/host/att/att_v0"文件夹。
- (TC321X) 在
ble_host.h中增加ESL功能相关头文件引用。
-
Controller
- (B85/B87/TC321X) 优化 c1p1 的 SRAM 大小。
- (B85/B87/TC321X) 清理 controller 中的 master 和 slave 命名:
- 将
blc_ll_getCurrentMasterRoleNumber()重命名为blc_ll_getCurrentCentralRoleNumber()。 - 将
blc_ll_getCurrentSlaveRoleNumber()重命名为blc_ll_getCurrentPeripheralRoleNumber()。 - 在
contr_comp.h中添加宏定义blc_ll_getCurrentSlaveRoleNumber()和blc_ll_getCurrentMasterRoleNumber()进行兼容。
- 将
- (B85/B87/TC321X) 移除
leg_adv.h中重复的APIblc_ll_initLegacyAdvertising_module()的定义。 - (B85/B87/TC321X) 将
PERD_ADV_PARAM_LENGTH的定义修改为456。 - (TC321X) 在
ble_controller.h增加PAwR和PAST头文件引用。
-
HCI
- (TC321X) 在
hci_const.h、hci_cmd.h和hci_event.h中增加PAwR和PAST HCI接口相关的Command和Event定义。
- (TC321X) 在
-
Link & Startup
- (TC321X) 添加"platform_func"段,用于存储平台数据。
- (B85/B87) 添加"cstartup_ram_funcs" 段。
- (B85/B87/TC321X) 将
div_mod.S中的函数从 "ram_code" 段移动到 "cstartup_ram_funcs" 段。 - (TC321X) 在
cstartup_TC321X.S中添加 RF 软件配置调用接口rf_sw_config()。
BREAKING CHANGES
- N/A.
CodeSize
-
B85
- acl_peripheral_demo
- Firmware size: 83.5 kBytes
- SRAM size: 32.5 kBytes
- deepsleep retention SRAM size: 28.9 kBytes
- acl_central_demo
- Firmware size: 73.9 kBytes
- SRAM size: 37.1 kBytes
- acl_connection_demo
- Firmware size: 89.2 kBytes
- SRAM size: 43.6 kBytes
- acl_c1p1_demo
- Firmware size: 95.4 kBytes
- SRAM size: 34.3 kBytes
- deepsleep retention SRAM size: 30.3 kBytes
- acl_peripheral_demo
-
B87
- acl_peripheral_demo
- Firmware size: 83.0 kBytes
- SRAM size: 32.5 kBytes
- deepsleep retention SRAM size: 29.0 kBytes
- acl_central_demo
- Firmware size: 74.7 kBytes
- SRAM size: 37.5 kBytes
- acl_connection_demo
- Firmware size: 90.3 kBytes
- SRAM size: 43.8 kBytes
- acl_c1p1_demo
- Firmware size: 95.1 kBytes
- SRAM size: 34.6 kBytes
- deepsleep retention SRAM size: 30.3 kBytes
- acl_peripheral_demo
-
TC321X
- acl_peripheral_demo
- Firmware size: 88.2 kBytes
- SRAM size: 33.4 kBytes
- deepsleep retention SRAM size: 30.0 kBytes
- acl_central_demo
- Firmware size: 79.6 kBytes
- SRAM size: 38.5 kBytes
- acl_connection_demo
- Firmware size: 95.1 kBytes
- SRAM size: 44.8 kBytes
- acl_c1p1_demo
- Firmware size: 100.0 kBytes
- SRAM size: 35.2 kBytes
- deepsleep retention SRAM size: 31.3 kBytes
- ble_remote
- Firmware size: 102.2 kBytes
- SRAM size: 39.9 kBytes
- deepsleep retention SRAM size: 34.9 kBytes
- eslp_esl_demo
- Firmware size: 158.2 kBytes
- SRAM size: 47.4 kBytes
- deepsleep retention SRAM size: 43.7 kBytes
- acl_peripheral_demo