Skip to content

Releases: telink-semi/tl_platform_sdk

Release V3.4.1

12 Feb 06:13
Compare
Choose a tag to compare

V3.4.1(PR)

Version

  • SDK Version: tl_platform_sdk V3.4.1
  • Chip Version
    • TLSR921x/TLSR951x(B91)(A0/A1/A2),TLSR922x/TLSR952x(B92)(A3/A4),TL721X(A2),TL321X(A1/A2)
  • Hardware EVK Version
    • TLSR951x(B91): C1T213A20
    • TLSR952x(B92): C1T266A20
    • TL721X: C1T315A20
    • TL321X: C1T335A20
  • Toolchain Version

Note

  • N/A

Bug Fixes

  • calibration
    • (B91/B92/TL721X/TL321X) Modified the logic of judging frequency_offset_value in user_calib_freq_offset interface to ensure that it is consistent with the logic of RF frequency calibration value written to flash by the chip fixture frequency calibration value, in order to solve the problem that the chip fixture frequency calibration value does not take effect. This issue affects all SDKs and applications that require RF frequency calibration.

BREAKING CHANGES

  • N/A

Features

  • N/A

Refactoring

  • N/A

Performance Improvements

  • N/A

V3.4.1(PR)

版本

  • SDK 版本: tl_platform_sdk V3.4.1
  • 芯片版本
    • TLSR921x/TLSR951x(B91)(A0/A1/A2),TLSR922x/TLSR952x(B92)(A3/A4),TL721X(A2),TL321X(A1/A2)
  • 硬件评估板版本
    • TLSR951x(B91): C1T213A20
    • TLSR952x(B92): C1T266A20
    • TL721X: C1T315A20
    • TL321X: C1T335A20
  • 工具链版本

Note

  • N/A

Bug Fixes

  • calibration
    • (B91/B92/TL721X/TL321X) 修改了user_calib_freq_offset接口中判断frequency_offset_value的逻辑,使其保证和芯片夹具频偏校准值写入flash中的RF频偏校准值逻辑一致,以解决芯片夹具频偏校准值不生效的问题。此问题影响所有需要进行RF频偏校准的SDK和应用。

BREAKING CHANGES

  • N/A

Features

  • N/A

Refactoring

  • N/A

Performance Improvements

  • N/A

Release V3.3.3

12 Feb 06:09
Compare
Choose a tag to compare

V3.3.3

Version

  • SDK version: tl_platform_sdk V3.3.3
  • This version of the SDK supports TLSR921x/TLSR951x(B91)(A0/A1/A2),TLSR922x/TLSR952x(B92)(A3/A4),TL721X(A2),TL321X(A1) chips.
  • Hardware EVK Version
    • TLSR951x(B91): C1T213A20
    • TLSR952x(B92): C1T266A20
    • TL721X: C1T315A20
    • TL321X: C1T335A20
  • Toolchain version
    • TLSR921x/TLSR951x(B91): gcc7(TL32 ELF MCULIB V5F GCC7.4 (riscv32-elf-gcc))
    • TLSR922x/TLSR952x(B92): gcc12(TL32 ELF MCULIB V5F GCC12.2 (riscv32-elf-gcc))
    • TL721x: gcc12(TL32 ELF MCULIB V5F GCC12.2 (riscv32-elf-gcc))
    • TL321x: gcc12(TL32 ELF MCULIB V5 GCC12.2 (riscv32-elf-gcc))

Bug Fixes

  • calibration
    • (B91/B92/TL721X/TL321X) Modified the logic of judging frequency_offset_value in user_calib_freq_offset interface to ensure that it is consistent with the logic of RF frequency calibration value written to flash by the chip fixture frequency calibration value, in order to solve the problem that the chip fixture frequency calibration value does not take effect. This issue affects all SDKs and applications that require RF frequency calibration.

BREAKING CHANGES

  • N/A

Features

  • N/A

Refactoring

  • N/A

Performance Improvements

  • N/A

版本

  • SDK版本: tl_platform_sdk V3.3.3
  • 此版本SDK支持 TLSR921x/TLSR951x(B91)(A0/A1/A2),TLSR922x/TLSR952x(B92)(A3/A4),TL721X(A2),TL321X(A1) 芯片。
  • 硬件评估板版本
    • TLSR951x(B91): C1T213A20
    • TLSR952x(B92): C1T266A20
    • TL721X: C1T315A20
    • TL321X: C1T335A20
  • 工具链版本
    • TLSR921x/TLSR951x(B91): gcc7(TL32 ELF MCULIB V5F GCC7.4 (riscv32-elf-gcc))
    • TLSR922x/TLSR952x(B92): gcc12(TL32 ELF MCULIB V5F GCC12.2 (riscv32-elf-gcc))
    • TL721x: gcc12(TL32 ELF MCULIB V5F GCC12.2 (riscv32-elf-gcc))
    • TL321x: gcc12(TL32 ELF MCULIB V5 GCC12.2 (riscv32-elf-gcc))

Bug Fixes

  • calibration
    • (B91/B92/TL721X/TL321X) 修改了user_calib_freq_offset接口中判断frequency_offset_value的逻辑,使其保证和芯片夹具频偏校准值写入flash中的RF频偏校准值逻辑一致,以解决芯片夹具频偏校准值不生效的问题。此问题影响所有需要进行RF频偏校准的SDK和应用。

BREAKING CHANGES

  • N/A

Features

  • N/A

Refactoring

  • N/A

Performance Improvements

  • N/A

Release V3.2.1

12 Feb 02:52
Compare
Choose a tag to compare

V3.2.1

Version

  • SDK version: tl_platform_sdk V3.2.1
  • Chip version
    • TLSR921x/TLSR951x(B91) (A0/A1/A2), TLSR922x/TLSR952x(B92) (A3/A4), TL721X (A1), TL321X (A1)
  • Hardware EVK Version
    • TLSR951x(B91): C1T213A20
    • TLSR952x(B92): C1T266A20
    • TL721X: C1T315A20
    • TL321X: C1T335A20
  • Toolchain version
    • TLSR921x/TLSR951x(B91): gcc7(TL32 ELF MCULIB V5F GCC7.4 (riscv32-elf-gcc))
    • TLSR922x/TLSR952x(B92): gcc12(TL32 ELF MCULIB V5F GCC12.2 (riscv32-elf-gcc))
    • TL721x: gcc12(TL32 ELF MCULIB V5F GCC12.2 (riscv32-elf-gcc))
    • TL321x: gcc12(TL32 ELF MCULIB V5 GCC12.2 (riscv32-elf-gcc))

Bug Fixes

  • calibration
    • (B91/B92/TL721X/TL321X) Modified the logic for determining frequency_offset_value in the user_calib_freq_offset interface to resolve the issue where the frequency offset calibration value for the chip fixture was not taking effect.

BREAKING CHANGES

  • calibration
    • (B91/B92/TL721X/TL321X) Modified the internal logic for determining frequency_offset_value in the user_calib_freq_offset interface to align with the write logic of the chip fixture's frequency offset calibration value. This ensures proper utilization of the RF frequency offset calibration value stored in the flash, preventing potential RF frequency offset issues. This fix impacts all SDKs and applications that require RF frequency offset calibration.

Features

  • N/A

Refactoring

  • N/A

Performance Improvements

  • N/A

版本

  • SDK版本: tl_platform_sdk V3.2.1
  • 芯片版本
    • TLSR921x/TLSR951x(B91) (A0/A1/A2), TLSR922x/TLSR952x(B92) (A3/A4), TL721X (A1), TL321X (A1)
  • 硬件评估板版本
    • TLSR951x(B91): C1T213A20
    • TLSR952x(B92): C1T266A20
    • TL721X: C1T315A20
    • TL321X: C1T335A20
  • 工具链版本
    • TLSR921x/TLSR951x(B91): gcc7(TL32 ELF MCULIB V5F GCC7.4 (riscv32-elf-gcc))
    • TLSR922x/TLSR952x(B92): gcc12(TL32 ELF MCULIB V5F GCC12.2 (riscv32-elf-gcc))
    • TL721x: gcc12(TL32 ELF MCULIB V5F GCC12.2 (riscv32-elf-gcc))
    • TL321x: gcc12(TL32 ELF MCULIB V5 GCC12.2 (riscv32-elf-gcc))

Bug Fixes

  • calibration
    • (B91/B92/TL721X/TL321X) 修改了user_calib_freq_offset接口中判断frequency_offset_value的逻辑,以解决芯片夹具频偏校准值不生效的问题。

BREAKING CHANGES

  • calibration
    • (B91/B92/TL721X/TL321X)修改了user_calib_freq_offset接口中判断frequency_offset_value的内部逻辑,使其保证和芯片夹具频偏校准值写入逻辑一致。保证flash中的RF频偏校准值被正确使用,避免产生RF频偏问题。此问题影响所有需要进行RF频偏校准的SDK和应用。

Features

  • N/A

Refactoring

  • N/A

Performance Improvements

  • N/A

Release V3.4.0

21 Jan 12:25
Compare
Choose a tag to compare

V3.4.0(PR)

Version

  • SDK Version: tl_platform_sdk V3.4.0
  • Chip Version
    • TLSR921x/TLSR951x(B91)(A0/A1/A2),TLSR922x/TLSR952x(B92)(A3/A4),TL721X(A2),TL321X(A1/A2)
  • Hardware EVK Version
    • TLSR951x(B91): C1T213A20
    • TLSR952x(B92): C1T266A20
    • TL721X: C1T315A20
    • TL321X: C1T335A20
  • Toolchain Version

Note

  • adc
    • (TL321X)Only the M channel is reserved, the L/R channel is not open for public use.(merge_requests/@1509)
  • ALL
    • (TL321X)Features are compatible on A1/A2, switch to A2 if you need to test performance.(merge_requests/@1517)

Bug Fixes

  • IR_Learn
    • (TL321x/TL721x)Fix the issue where the IR_Learn module's idle level is low during IR_Learn simulation reception, resulting in the first edge not being captured.(merge_requests/@1494)
  • rf
    • (tl321x)Fixed an issue that could cause RF to work abnormally when PA2 is used as an input function.(merge_requests/@1489)
  • UART
    • (TL721x/TL321x)Fixed bug where the uart_receive_dma interface rx done did not take effect.(merge_requests/@1507)
  • ADC
    • (TL321x)Disable dwa, because enabling dwa affects adc performance.(merge_requests/@1516)
    • (TL321x)Add a comment reminding that in vbat mode 192k, the first code needs to be discarded.(merge_requests/@1516)
    • (TL321x)Clear the fifo before starting adc sampling to prevent residual values in the fifo from affecting the sampling results.(merge_requests/@1516)

Features

  • USB audio demo
    • (TL321X/TL721x) Add USB audio microphone and speaker demo.(merge_requests/@1496)
  • USB
    • (TLSR921x/TLSR951x/TLSR922x/TLSR952x/TL721x/TL321x) Add usb_hardware_remote_wakeup() and usb_software_remote_wakeup() interface to wakeup the host in sleep state.(merge_requests/@1502)
  • USB mouse/keyboard demo
    • (TLSR921x/TLSR951x/TLSR922x/TLSR952x/TL721x/TL321x) Add remote wakeup function in mouse and keyboard demo.(merge_requests/@1502)
  • calibration
    • (TL321X) Add interface user_check_ieee_addr() to check the legitimacy of ieee address, interface user_get_efuse_ieee_addr() to get the ieee address in efuse, and interface user_get_ieee_addr() to get the address in flash or efuse, calibration_func() add read ieee address in flash or efuse function.(merge_requests/@1505)
  • efuse
    • (TL321x) Add the interface efuse_get_ieee_addr().(merge_requests/@1505)
  • rf
    • (TL721X) Added rf_set_rx_dcoc_cali_by_sw interface to switch rx DCOC software calibration to optimise rf_mode_init execution time(This interface is only available in scenarios where only tx is used, not rx)(merge_requests/@1506)
  • adc
    • (TL721X)PB0 works fine and is open. PD0 and PD1 are open for public use, but not recommended, with an error of 50-100mv, and are still being debugged internally.(merge_requests/@1509)

Refactoring

  • flash
    • (B92) Change xx_MID1460c8 and xx_MID1560c8 to xx_MID1460C8 and xx_MID1560C8 to maintain consistency and be more standardized.(merge_requests/@1503)

BREAKING CHANGES

  • rf
    • (TL321X)Update rf_power_Level_list to adapt to the latest RF configuration(merge_requests/@1495)
    • (TL721X)The rf_mode_init() function has added an RF Rx DCOC software calibration scheme to solve the problem of poor Rx sensitivity
      performance in some chips with large DC-offset.The execution time of this function will be longer, you can check the function
      comment for the specific time.Due to the use of software DCOC's calibration scheme, it is not necessary and not allowed to use
      rf_get_dcoc_cal_val and rf_set_dcoc_cal_val for processing in the fast settle function,Therefore, the above two interfaces were
      deleted.(merge_requests/@1506)
    • (TL721X/TL321X)In order to fix TX drift and bandedge issues; the preamble len for all modes has been updated, and the
      'rf_tx_fast_settle_time_e' has been modified to update the settling time for each level of TX fastsettle.
      (merge_requests/@1511)

Performance Improvements

  • rf
    • (TL721X)rf_mode_init() function uses dcoc software calibration to minimize the DC-offset of the chip, in order to improve the chip's out-of-band immunity (interference including DC-offset).
      DC-offset will be larger chip sensitivity performance back to the normal range.(merge_requests/@1506)

V3.4.0(PR)

版本

  • SDK 版本: tl_platform_sdk V3.4.0
  • 芯片版本
    • TLSR921x/TLSR951x(B91)(A0/A1/A2),TLSR922x/TLSR952x(B92)(A3/A4),TL721X(A2),TL321X(A1/A2)
  • 硬件评估板版本
    • TLSR951x(B91): C1T213A20
    • TLSR952x(B92): C1T266A20
    • TL721X: C1T315A20
    • TL321X: C1T335A20
  • 工具链版本

Note

  • adc
    • (TL321X)仅保留M通道,L/R通道不对外开放。(merge_requests/@1509)
  • ALL
    • (TL321X)功能可以在 A1/A2 上兼容,如果需要测试性能,请切换到 A2。(merge_requests/@1517)

Bug Fixes

  • IR_Learn
    • (TL321x/TL721x)修复IR_Learn模拟接收的时候,IR_Learn模块的空闲电平是低电平,导致第一个沿无法捕获的问题。(merge_requests/@1494)
  • rf
    • (tl321x)修复了PA2作为输入功能使用时,可能导致RF工作异常的问题。(merge_requests/@1489)
  • UART
    • (TL721x/TL321x)修复了 uart_receive_dma 接口 rx done 不生效的 bug。(merge_requests/@1507)
  • ADC
    • (TL321x)禁用dwa,因为启用dwa会影响adc性能。(merge_requests/@1516)
    • (TL321x)添加注释提醒在vbat模式192k下,需要丢弃第一个code。(merge_requests/@1516)
    • (TL321x)在启动adc采样之前清fifo,防止fifo中残留的值影响采样结果。(merge_requests/@1516)

Features

  • USB audio demo
    • (TL321X/TL721x) 添加USB audio microphone和speaker demo。(merge_requests/@1496)
  • USB
    • (TLSR921x/TLSR951x/TLSR922x/TLSR952x/TL721x/TL321x) 新增 usb_hardware_remote_wakeup() 和 usb_software_remote_wakeup()接口来唤醒睡眠中的主机。(merge_requests/@1502)
  • USB mouse/keyboard demo
    • (TLSR921x/TLSR951x/TLSR922x/TLSR952x/TL721x/TL321x) 在 mouse 和 keyboard demo中增加远程唤醒功能。(merge_requests/@1502)
  • calibration
    • (TL321x) 添加检查ieee地址合法性接口user_check_ieee_addr(),获取efuse中的ieee地址接口user_get_efuse_ieee_addr()和获取flash或efuse地址的接口user_get_ieee_addr(),calibration_func()添加读flash或efuse中ieee地址功能。(merge_requests/@1505)
  • efuse
    • (TL321x) 添加接口efuse_get_ieee_addr()。(merge_requests/@1505)
  • rf
    • (TL721X) 添加了rf_set_rx_dcoc_cali_by_sw接口开关rx DCOC软件校准,以优化rf_mode_init执行时间(该接口在只用tx,不用rx的场景,才可以使用)(merge_requests/@1506)
  • adc
    • (TL721X)PB0可以正常使用,已开放。PD0、PD1已对外开放,但不建议使用,误差在50-100mv,内部还在debug中。(merge_requests/@1509)

Refactoring

  • flash
    • (B92) 为了更规范且和其他芯片保持一致性,将xx_MID1460c8和xx_MID1560c8修改为xx_MID1460C8和xx_MID1560C8。(merge_requests/@1503)

BREAKING CHANGES

  • rf
    • (TL321X)更新rf_power_Level_list以适配最新RF配置(merge_requests/@1495)
    • (TL721X)rf_mode_init()函数中新增了rf rx dcoc软件校准方案来解决部分DC-offset较大的芯片 rx sensitivity性能差的问题,该函数执行时间会变长,具体时间可以查看函数注释。因为使用了软件dcoc的校准方案,
      所以在fast settle功能中,不需要并且也不允许再用rf_get_dcoc_cal_val和rf_set_dcoc_cal_val进行处理,固删除了上述两个接口。(merge_requests/@1506)
    • (TL721X/TL321X) 为了修复TX drift 以及bandedge问题,更新所有模式的preamble len;同时修改'rf_tx_fast_settle_time_e',更新TX fastsettle 各个档位的settle时间(merge_requests/@1511)

Performance Improvements

  • rf
    • (TL721X)rf_mode_init()函数使用dcoc 软件校准来使芯片获得最小的DC-offset,以此来提高芯片的带外抗干扰能力(干扰包括DC-offset)。将DC-offset较大的芯片sensitivity性能恢复到正常范围。(merge_requests/@1506)

Release V3.3.2

31 Dec 09:51
Compare
Choose a tag to compare

V3.3.2

Version

  • SDK version: tl_platform_sdk V3.3.2
  • This version of the SDK supports TLSR921x/TLSR951x(B91)(A0/A1/A2),TLSR922x/TLSR952x(B92)(A3/A4),TL721X(A2),TL321X(A0) chips.
  • Hardware EVK Version
    • TLSR951x(B91): C1T213A20
    • TLSR952x(B92): C1T266A20
    • TL721X: C1T315A20
    • TL321X: C1T335A20
  • Toolchain version
    • TLSR921x/TLSR951x(B91): gcc7(TL32 ELF MCULIB V5F GCC7.4 (riscv32-elf-gcc))
    • TLSR922x/TLSR952x(B92): gcc12(TL32 ELF MCULIB V5F GCC12.2 (riscv32-elf-gcc))
    • TL721x: gcc12(TL32 ELF MCULIB V5F GCC12.2 (riscv32-elf-gcc))
    • TL321x: gcc12(TL32 ELF MCULIB V5 GCC12.2 (riscv32-elf-gcc))

Bug Fixes

  • rf
    • (B92)Fixed the configuration error of the rf_rx_fast_settle_dis interface.(merge_requests/@1493)

Features

  • N/A

Refactoring

  • N/A

BREAKING CHANGES

  • N/A

Performance Improvements

  • N/A

版本

  • SDK版本: tl_platform_sdk V3.3.2
  • 此版本SDK支持 TLSR921x/TLSR951x(B91)(A0/A1/A2),TLSR922x/TLSR952x(B92)(A3/A4),TL721X(A2),TL321X(A0) 芯片。
  • 硬件评估板版本
    • TLSR951x(B91): C1T213A20
    • TLSR952x(B92): C1T266A20
    • TL721X: C1T315A20
    • TL321X: C1T335A20
  • 工具链版本
    • TLSR921x/TLSR951x(B91): gcc7(TL32 ELF MCULIB V5F GCC7.4 (riscv32-elf-gcc))
    • TLSR922x/TLSR952x(B92): gcc12(TL32 ELF MCULIB V5F GCC12.2 (riscv32-elf-gcc))
    • TL721x: gcc12(TL32 ELF MCULIB V5F GCC12.2 (riscv32-elf-gcc))
    • TL321x: gcc12(TL32 ELF MCULIB V5 GCC12.2 (riscv32-elf-gcc))

Bug Fixes

  • rf
    • (B92)修复rf_rx_fast_settle_dis接口配置错误。(merge_requests/@1493)

Features

  • N/A

Refactoring

  • N/A

BREAKING CHANGES

  • N/A

Performance Improvements

  • N/A

Release V3.3.1

31 Dec 07:26
Compare
Choose a tag to compare

V3.3.1

Version

  • SDK version: tl_platform_sdk V3.3.1
  • This version of the SDK supports TLSR921x/TLSR951x(B91)(A0/A1/A2),TLSR922x/TLSR952x(B92)(A3/A4),TL721X(A2),TL321X(A0) chips.
  • Hardware EVK Version
    • TLSR951x(B91): C1T213A20
    • TLSR952x(B92): C1T266A20
    • TL721X: C1T315A20
    • TL321X: C1T335A20
  • Toolchain version
    • TLSR921x/TLSR951x(B91): gcc7(TL32 ELF MCULIB V5F GCC7.4 (riscv32-elf-gcc))
    • TLSR922x/TLSR952x(B92): gcc12(TL32 ELF MCULIB V5F GCC12.2 (riscv32-elf-gcc))
    • TL721x: gcc12(TL32 ELF MCULIB V5F GCC12.2 (riscv32-elf-gcc))
    • TL321x: gcc12(TL32 ELF MCULIB V5 GCC12.2 (riscv32-elf-gcc))

Bug Fixes

  • N/A

Features

  • N/A

Refactoring

  • code format
    • (B91/B92/TL321X/TL721x)For the sake of consistency in the code style of the company's projects, all .c and .h code is formatted uniformly, except for the 3rd-patry directory.(merge_requests/@1487)

BREAKING CHANGES

  • N/A

Performance Improvements

  • N/A

版本

  • SDK版本: tl_platform_sdk V3.3.1
  • 此版本SDK支持 TLSR921x/TLSR951x(B91)(A0/A1/A2),TLSR922x/TLSR952x(B92)(A3/A4),TL721X(A2),TL321X(A0) 芯片。
  • 硬件评估板版本
    • TLSR951x(B91): C1T213A20
    • TLSR952x(B92): C1T266A20
    • TL721X: C1T315A20
    • TL321X: C1T335A20
  • 工具链版本
    • TLSR921x/TLSR951x(B91): gcc7(TL32 ELF MCULIB V5F GCC7.4 (riscv32-elf-gcc))
    • TLSR922x/TLSR952x(B92): gcc12(TL32 ELF MCULIB V5F GCC12.2 (riscv32-elf-gcc))
    • TL721x: gcc12(TL32 ELF MCULIB V5F GCC12.2 (riscv32-elf-gcc))
    • TL321x: gcc12(TL32 ELF MCULIB V5 GCC12.2 (riscv32-elf-gcc))

Bug Fixes

  • N/A

Features

  • N/A

Refactoring

  • code format
    • (B91/B92/TL321X/TL721x)为了公司项目代码风格保持一致,除 3rd-patry 目录外,将所有 .c 和 .h 代码统一格式化.(merge_requests/@1487)

BREAKING CHANGES

  • N/A

Performance Improvements

  • N/A

Release V3.3.0

27 Dec 11:52
Compare
Choose a tag to compare

V3.3.0

Version

  • SDK version: tl_platform_sdk V3.3.0
  • This version of the SDK supports TLSR921x/TLSR951x(B91)(A0/A1/A2),TLSR922x/TLSR952x(B92)(A3/A4),TL721X(A2),TL321X(A0) chips.
  • Hardware EVK Version
    • TLSR951x(B91): C1T213A20
    • TLSR952x(B92): C1T266A20
    • TL721X: C1T315A20
    • TL321X: C1T335A20
  • Toolchain version
    • TLSR921x/TLSR951x(B91): gcc7(TL32 ELF MCULIB V5F GCC7.4 (riscv32-elf-gcc))
    • TLSR922x/TLSR952x(B92): gcc12(TL32 ELF MCULIB V5F GCC12.2 (riscv32-elf-gcc))
    • TL721x: gcc12(TL32 ELF MCULIB V5F GCC12.2 (riscv32-elf-gcc))
    • TL321x: gcc12(TL32 ELF MCULIB V5 GCC12.2 (riscv32-elf-gcc))

Bug Fixes

  • aes
    • (B91/B92)Solved the problem that the aes modified the e0 address pointer, causing the BT communication to be abnormal.(merge_requests/@1273)
  • pm
    • (TL721X)Solves an issue where users cannot sleep and wake up normally when all interrupt priorities such as PM are initialized to 0 during initialization.(merge_requests/@1332)
    • (TL321x)Solved the issue of possible SRAM loss when entering suspend sleep after deep retention sleep. (merge_requests/@1480)
  • sys
    • (TL721X)The problem of frequency deviation caused by too short reservation of crystal starting time is solved.(merge_requests/@1332)
  • ske
    • (TL321X/TL721x)Addressed the issue where the software did not check the busy signal bit before writing to the SKE register, leading to data errors caused by repeated software triggering of calculations before the SKE computation was complete.(merge_requests/@1331, merge_requests/@1340
  • audio
    • (B91)Fixed the problem that i2s pin input function could not be used because gpio_shutdown(GPIO_ALL) was called during initialization.(merge_requests/@1351)
    • (TL721x/TL321x)Fix BUFFER_TO_LINEOUT demo waveform distortion issue.(merge_requests/@1472)
  • rf
    • (B91/B92)Fixed an issue where incorrect configuration during the enable and disable of fast settle caused the settle process to deviate from the expected behavior, potentially leading to a degradation in RF performance.(merge_requests/@1354)
  • adc
    • (TL721x)1.A2 test PB0 PD1 PD2 three pins capture voltage performance slightly worse than other pins, so remove. 2.Test found that enabling dwa affects adc performance so don't use this feature. 3.pre_scale = 1/4 Fixed on A2, already open.(merge_requests/@1428,merge_requests/@1445)
  • clock
    • (B91/B92)Fixed PLL crash caused by failure to vibrate. If the PLL starts abnormally, restart it. Use PM_ANA_REG_POWER_ON_CLR_BUF0[bit3-6] to check whether the reset caused by abnormal PLL starts occurs. Use drv_get_error_code to query the exception source. Note that the exception source is lost after each reset. You need to read and save the error source at the application layer in advance.(merge_requests/@1268)(merge_requests/@1438)
  • sys
    • (tl721x)The problem is solved because the efuse load is not completed, which leads to the instability of ram limit and the error of program handling.(merge_requests/@1454)
  • spi
    • (B91/B92/TL721x/TL321x)Fix spi_master_write_read_full_duplex function exception issue. (merge_requests/@1465)

Features

  • pm
    • (TL721x)Add pm_set_dvdd function to support core and sram voltage adjustment.(merge_requests/@1276)
  • pke
    • (TL721x)Add ed25519 algorithm driver and demo.(merge_requests/@1289)
  • audio
    • (TL721x)Add TL721x audio dmic to i2s case.(merge_requests/@1345)
    • (B91)Added audio i2sin to i2sout case.(merge_requests/@1351)
    • (TL721x)Add audio_reset_audio_clk interface to change codec clk.(merge_requests/@1418)
    • (TL321x) Add audio driver and demo.(merge_requests/@1367)
    • (TL721x/TL321x) Add spi_txdma_req_after_cmd_en,spi_txdma_req_after_cmd_dis interface.(merge_requests/@1472)。
  • hash
    • (TL321x)Add HASH_Demo_v1.1.8 for TL321x.(merge_requests/@1349)
  • pke
    • (TL321x)Add ed25519 and c25519 algorithm and PKE_Demo_v1.1.8 for TL321x.(merge_requests/@1340, merge_requests/@1349)
  • ske
    • (TL321x)Update v1.1.9 for SKE_Demo.(merge_requests/@1364)
    • (TL721x)SKE_Demo is changed to v1.1.9.(merge_requests/@1364)
  • rf
    • (B91/B92/TL7518)Added "rf_set_tx_wait_time" and "rf_set_rx_wait_time" interfaces to configure tx wait time and rx wait time.(merge_requests/@1403)
    • (B91/B92/TL721x/TL321x) Adapted the fast settle mode switching feature, added the following interfaces: rf_tx_fast_settle_get_cal_val, rf_tx_fast_settle_set_cal_val, rf_rx_fast_settle_get_cal_val, and rf_rx_fast_settle_set_cal_val. Removed the global variable g_fast_settle_cal_val and introduced the global pointer variable g_fast_settle_cal_val_ptr.(merge_requests/@1416)(merge_requests/@1432)(merge_requests/@1439)
    • (TL321X) Enable software dcoc and add rf_set_rx_dcoc_cali_by_sw interfaces for customers to control the software dcoc on/off.(merge_requests/@1435)
    • (TL721X/TL321X) Add interfaces "rf_dma_chn_en" and "rf_dma_chn_dis"(merge_requests/@1483)
  • pke
    • (TL721x)Add x25519 algorithm driver and demo.(merge_requests/@1421)
  • lpc
    • (TL721X/TL321X) Add lpc driver and demo.(merge_requests/@1279)
  • adc
    • (TL321x/TL721x)Add the ADC_GPIO_SAMPLE_VBAT mode to indirectly sample vbat voltage through gpio.(merge_requests/@1445)
  • calibration
    • (TL721x) Add interface user_check_ieee_addr() to check the legitimacy of ieee address, interface user_get_otp_ieee_addr() to get the ieee address in otp, and interface user_get_ieee_addr() to get the address in flash or otp, calibration_func() add read ieee address in flash or otp function.(merge_requests/@1440)
  • otp
    • (TL721x)Add the interface otp_get_ieee_addr().(merge_requests/@1440)
  • DUT_Demo
    • (B92)Add DUT_Demo and users can develop fixture test programs according to their own needs.(merge_requests/@1384)
  • EMI_BQB_DEMO
    • (B91/B92/TL721x/TL321x) Adapted the fast settle mode switching feature.(merge_requests/@1416)(merge_requests/@1432)(merge_requests/@1439)
  • RF_DEMO
    • (B91/B92/TL721x/TL321x) Adapted the fast settle mode switching feature.(merge_requests/@1416)(merge_requests/@1432)(merge_requests/@1439)

Refactoring

  • usb
    • (B91/B92/TL721X/TL321X)Add enum type-casting to GPIO pin in usb_set_pin() to prevent compilation errors.(merge_requests/@1321)
    • (B91) tinyusb port file add parameter checking.(merge_requests/@1472)
  • uart
    • (B92)uart_get_dma_rev_data_len: Optimize the interface logic to return the dma-configured receive length when the transmit length is greater than the receive length. (merge_requests/@1338)
  • adc
    • (TL721X/TL321X)Revert adc_input_pin_e to adc_input_pin_def_e for compatibility with B92.(merge_requests/@1339)
  • plic
    • (B91/B92/TL721x/TL321x)Remove the clock_32k_init and calibration interfaces from the mtime_clk_init interface and put them in the demo to be called as needed.(merge_requests/@1394
  • rf
    • (TL721X/TL321X)Optimized the interfaces of "rf_set_tx_wait_time" and "rf_set_rx_wait_time" and updated relevant comments.(merge_requests/@1403)
    • (B91/B92/TL721x/TL321x) Adapted the fast settle mode switching feature and updated the following interfaces: rf_set_chn, rf_rx_fast_settle_update_cal_val, rf_tx_fast_settle_update_cal_val and rf_set_rccal_cal_val(Excluding B91/B92).(merge_requests/@1416)(merge_requests/@1432)(merge_requests/@1439)
  • audio
    • (TL721x)Adjust the audio sample rate arrays and enum, remove 8.02k sample rate.(merge_requests/@1415)
    • (TL721X)Modify reg_fifo_th_irq register bit comments.(merge_requests/@1401)
  • adc
    • (TL721x)According to ATE Big Data, ADC_GPIO_VREF_DEFAULT_VALUE was changed from 1175 to 1220, ADC_GPIO_VREF_OFFSET_DEFAULT_VALUE was changed from 0 to 8, ADC_VBAT_VREF_DEFAULT_VALUE was changed from 1175 to 1220. ADC_VBAT_VREF_OFFSET_DEFAULT_VALUE was changed from 0 to 15 to be more in line with most chips.(merge_requests/@1445)
    • (TL321x)According to ATE Big Data, ADC_GPIO_VREF_DEFAULT_VALUE was changed from 1175 to 1202, ADC_GPIO_VREF_OFFSET_DEFAULT_VALUE was changed from 0 to 7, ADC_VBAT_VREF_DEFAULT_VALUE was changed from 1175 to 1207. ADC_VBAT_VREF_OFFSET_DEFAULT_VALUE was changed from 0 to -7, which is more in line with most chips.(merge_requests/@1445)
  • pke
    • (TL321X)Remove duplicate declarations, delete the pke_utility.h file.(merge_requests/@1444)
  • lib
    • (B92)The file analog.c and the interface sys_set_dcdc_1pP4_ldo_2p0() are encapsulated into library files.(merge_requests/@1195,merge_requests/@1268)
  • gpio
    • (B91/B92/TL721x/TL321x)add comments: Do not recommended that two or more GPIOs be set to the same interrupt source, as the interrupt is uncertain if triggered at the same time.(merge_requests/@1470)

BREAKING CHANGES

  • uart
    • (TL721x/TL321x)uart_set_rx_timeout: For compatibility, change it to uart_set_rx_timeout_with_exp.(merge_requests/@1338)
  • audio
    • (TL721X)Adjusted the parameter's position of audio_rx_dma_chain_init and audio_tx_dma_chain_init to make their function prototypes consistent with other chips.(merge_requests/@1342)
    • (B91)Fixed i2s pin definition in audio_i2s_set_pin interface. Swapped adc_dat and dac_dat, adc_lr and dac_lr.(merge_requests/@1351)
    • (TL721X)Change the name of the audio_i2s_set_mclk interface to audio_set_codec_clk_as_mclk, and the name of the audio_aclk_debug_set_mclk interface to audio_set_debug_clk_as_mclk, and add the following function to gpio_func_e function in gpio_func_e.(merge_requests/@1401)
  • spi
    • (TL321x)gspi_cs_pin_en: Interface formal parameter type changed from gpio_pin_e to gpio_func_pin_e.(merge_requests/@1320)
    • (TL321x)In order to keep the value of GSPI_MODULE in enumeration variable spi_sel_e consistent with other chips, GSPI_MODULE=0 is modified to GSPI_MODULE=1, involving the interface as follows:spi_hw_fsm_reset/spi_set_error_timeout/ spi_get_error_timeout_code/gspi_timeout_...
Read more

Release V3.2.0

20 Sep 10:37
Compare
Choose a tag to compare

V3.2.0

Version

  • SDK version: tl_platform_sdk V3.2.0
  • Chip version
    • TLSR921x/TLSR951x(B91) (A0/A1/A2), TLSR922x/TLSR952x(B92) (A3/A4), TL721X (A1), TL321X (A1)
  • Hardware EVK Version
    • TLSR951x(B91): C1T213A20
    • TLSR952x(B92): C1T266A20
    • TL721X: C1T315A20
    • TL321X: C1T335A20
  • Toolchain version

Note

  • (B92/TL721x/TL321x) Update toolchains from V5.3.0 to V5.3.x
  • (B91/B92/TL721X/TL321X) Add usb_set_pin() interface, in USB application can choose to enable or disable dp_through_swire function, for compatibility usb_set_pin_en() is defined as usb_set_pin(1) and comments were added to cstartup.S.

BREAKING CHANGES

  • sys
    • (TL321X)Add power_mode parameter into sys_init(A0 version only support LDO, A1 version support both LDO and DCDC_LDO) and update sys_init to adapt the chip A1 version.
    • (TL721x/TL321x)In the new version, after calling sys_init(), if you want to get the value of g_pm_status_info.mcu_status or call pm_get_reboot_event() to get related information, you won't be able to. The application layer needs to call pm_update_status_info() to obtain it. The new usage method is as follows:After calling sys_init(), call pm_update_status_info(), and you can get the value of g_pm_status_info.mcu_status and call pm_get_sw_reboot_event to check the reason for the software reboot.Additionally, the reboot classifications have been changed as follows:1.Two new statuses have been added to g_pm_status_info.mcu_status: MCU_HW_REBOOT_TIMER_WATCHDOG and MCU_HW_REBOOT_32K_WATCHDOG.2.The meaning of MCU_STATUS_REBOOT_BACK has changed. Previously, it included both software reboots and watchdog reboots. In the new version, MCU_STATUS_REBOOT_BACK only represents software reboots. If you want to know the specific reason for a software reboot, you can call pm_get_sw_reboot_event to check. The functions pm_get_reboot_event() and pm_get_deep_retention_flag() have been removed.
    • (TL721x/TL321x)Previously, the reasons for software reboots could coexist in multiple situations. To save register bits for future expansion, the new version only saves the reason for the most recent software reboot. Therefore, if you want to save all software reboot reasons, the upper application needs to save them after each initialization to prevent losing the history of reboot reasons.
    • (TL721x/TL321x)Function name changes:sys_set_power_mode -> pm_set_power_mode, sys_set_vbat_type -> pm_set_vbat_type.
  • dma
    • (B92/TL321x/TL721x) Change the interface for setting the interrupt mode of linked list DMA from dma_set_llp_int_mode to dma_set_llp_irq_mode, and unify the enumeration type of the interrupt mode to dma_llp_irq_mode_e.
  • audio
    • (B92) Change audio_set_i2s_align_en,audio_set_i2s_align_dis interface name to audio_i2s_align_en,audio_i2s_align_dis.
  • emi
    • (B91/B92/TL721X/TL321X)Modify the emi. c rf_comtinue_made_run interface to add configurable packet data types and adjust the correspondence between command values and data types from (0: pbrs9 1: 0xf0 2:0x55) to (0: pbrs9 1: 0x0f 2:0x55 3: 0xaa 4:0xf0 5:0x00 6:0xff)
    • (B91/B92/TL721X/TL321X)Renaming the original supported mode of the rf_mode parameter of the functions rf_emi_tx_continue_update_data rf_emi_rx_setup rf_emi_tx_burst_loop and rf_emi_tx_burst_setup RF_MODE_BLE_2M to RF_MODE_BLE_2M_NO_PN (the new name is closer to its mode)
  • adc
    • (TL721x/TL321x)ADC DMA mode is optimized from round-robin mode to DMA interrupt mode to read data, which improves the efficiency of code running, and at the same time rename adc_get_sample_status_dma()/adc_clr_sample_status_dma()/adc_set_dma_trig_num() to adc_get_irq_status_dma()/adc_clr _irq_status_dma()/adc_set_rx_fifo_trig_cnt(), deleted adc_get_code_dma().

Features

  • flash
    • (TL321x)add new flash P25Q40SU/P25Q16SU.
  • Secure_Boot_Demo
    • (TL721x/TL321x) Add Secure_Boot_Demo, compile the demo to generate runtime descriptors, etc. bin.
  • Toolchain
    • (B91/B92/TL321x/TL721x):In order to support open source toolchains compilation (if using an open source toolchain, this macro 'STD_GCC' needs to be opened, and currently support Zephyr toolchain compilation), the following modifications are made:
      1. Use assembler language to implement interfaces for reading and writing CSR registers, without using the functions in nds_intrinsic.h (which is a header file in the Andes toolchain);
      2. Add a new file core_reg.h and copy CSR registers from nds_intrinsic.h to core_reg.h.
  • Trap
    • (B91/B92/TL321x/TL721x)Add new interfaces plic_irqs_preprocess_for_wfi() and plic_irqs_postprocess_for_wfi() to configure the interrupts related to entering and exiting WFI mode, respectively, and provide sample code.
  • efuse
    • (B92):Added efuse_get_chip_status interface to read the status of JTAG, SWS, and boot mode.
    • (TL321x) Added efuse_get_chip_id interface.
  • IR_LEARN_Demo
    • (TL721x/TL321x) Add IR_LEARN_Demo and driver files.
  • audio
    • (TL721x) Adding audio related drivers and demos.
  • USB Demo
    • (B91/B92/TL321x/TL721x) added print demo into USB_Demo.
  • link
    • (TL721x/TL321x)Add flash code segment for link and attribute_flash_code_sec_noinline into compiler.h.
    • (B91/B92/TL721X/TL321X)Added the rf_certification_cfg data segment for rf certification related configuration.
  • common
    • (B91/B92/TL721x/TL321X):To prevent power leakage, add gpio_shutdown(GPIO_ALL) to platform_init() to configure all GPIOs (except SWS and MSPI) to a high resistance state.
  • Jtag
    • (B92/TL321x/TL721x): Add jtag configuration interface jtag_sdp_set_pin(), two-wire and four-wire enable interfaces jtag_set_pin_en() and sdp_set_pin_en().
  • emi
    • (B91/B92/TL721X/TL321X)Added rf_phy_test_prbs15() interface for generating prbs15 type data
  • calibration
    • (TL721X/TL321X)Added calibration_func(),user_calib_freq_offset() calibration interface.
  • rf
    • (B91/B92/TL721X/TL321X)Add rf_set_power_level_singletone interface, remove rf_set_power_level_index_singletone interface from emi.c
  • S
    • (B91/B92/TL721X/TL321X)Added the starting address 0x10 related to RF_Certification configuration and defined the starting address of _RF_CCERTIFICATION_CFG_LMA_START
  • adc
    • (TL721x/TL321x):add adc_start_sample_nodma() , adc_stop_sample_nodma(), adc_get_irq_status(), adc_clr_irq_status() and adc_set_scan_chn_dis().

Bug Fixes

  • flash
    • (TL721x)Fix flash default protected area(Changed from unprotected to protect half of the flash area).
  • rf
    • (TL321x)Fix rf_power_level_index_e enumeration value error problem.
    • (TL721x/TL321x)Due to the removal of reg_bb_dma_rx_rptr, the interface rf_get_rx_packet_addr in rf_common.c has been updated to replace reg_bb_dma_rx_rptr with reg_rf_dma_rx_rptr.
    • (TL721x/TL321x)Fixed the issue of inaccurate RSSI values obtained by RF.
  • pm
    • (B91/B92/TL721x/TL321x)Fixed an issue where calling function pm_set_vbat_type or sys_init to modify parameter vbat_v failed. (This is only a problem when changing VBAT_MAX_VALUE_LESS_THAN_3V6 to VBAT_MAX_VALUE_GREATER_THAN_3V6)
  • dma
    • (TL721x/TL321x)Due to invalid or duplicate definitions, the following interfaces have been deleted: In dma_reg.h: reg_dma_rx_wptr, reg_dma_tx_wptr, reg_dma_rx_rptr, reg_dma_tx_rptr. In rf_reg.h: reg_bb_dma_rx_wptr, reg_bb_dma_tx_wptr, reg_bb_dma_rx_rptr, reg_bb_dma_tx_rptr. Users should now use the following register definitions: reg_rf_dma_rx_wptr, reg_rf_dma_rx_rptr, reg_rf_dma_tx_rptr, reg_rf_dma_tx_wptr.
  • spi
    • (B92/TL721x/TL321x) Change the type of word_len in the spi_write/spi_read interface from unsigned char to unsigned int.
  • gpio
    • (TL721x/TL321X)Fix the problem of not setting gpio to low level in gpio_init(), preventing that gpio cannot be initialized to low level after calling gpio_init().
  • gpio
  • (B91)Fix the problem of no initialization PF group (MSPI) in gpio_init() to prevent the MSPI port from not being initialized after calling gpio_init().
  • Jtag
    • (B91): The jtag two-wire and four-wire enable interfaces jtag_set_pin_en() and sdp_set_pin_en() add analog pull-ups and drop-downs to prevent the jtag hardware from being abnormal when not connected.
  • usb
    • (TL321X)Fix the problem of setting usbhw_enable_hw_feature() would clear other features exceptionally.
  • adc
    • (TL721x/TL321x):adc_get_code() is changed from reading analog registers to reading adc rx fifo to prevent repeated fetching of the same code in multiple consecutive calls to adc_get_code().
  • adc
    • (TL721x/TL321x): Modify the sample cycle configuration for each sampling frequency, and delay 30us after adc_power_on() to wait for adc to stabilize, fix the problem of the first code exception after adc_power_on().
  • flash
    • (B91/B92/TL721X/TL321X):Add macro in platform_init() not to add protection to the flash of the chip running ram bin to prevent the chip with no flash on board from getting stuck.
  • uart
    • (TL721X/TL321X):Fixed dma uart rx data loss issue by changing the length parameter passed to uart_receive_dma to the maximum value that can be received.

Refactoring

  • trap
    • (B91/B92/TL721X/TL321X) Define the trap_entry function as a weak function so that applications can reimplement it.
  • ADC
    ...
Read more

Release V3.1.0

22 Jul 07:32
Compare
Choose a tag to compare

V3.1.0

Version

  • SDK version: tl_platform_sdk V3.1.0
  • This version of the SDK supports TLSR921x/TLSR951x(A0/A1/A2),TLSR922x/TLSR952x(A3/A4),TL721X(A1),TL321X(A0) chips.
  • Toolchain version
    • TLSR921x/TLSR951x: gcc7
    • TLSR922x/TLSR952x: gcc12
    • TL721x: gcc12
    • TL321x: gcc12

Bug Fixes

  • pm
    • (TL721x)Solved the problem of exiting the sleep function or causing a reset due to the incorrect position of the clear wake source state operation.Clear the wake source status after setting the wake tick.The process of setting the wake up tick value may generate an intermediate value. If the intermediate value is the same as the 32k tick value, the state of the timer wake up source will be set, causing the exit of the sleep function or a reset.2b4ddd52
    • (B91/B92)Solved the problem that pm_set_wakeup_time_param and pm_set_xtal_stable_timer_param interfaces calculate the early wake time of sleep incorrectly. If you call either of these interfaces, you may not be able to sleep properly.2f9b7be4
  • i2c1_m
    • (TLSR922x/TLSR952x/TL721X/TL321X)I2C1_M_WAIT:xxx_timeout_handler error passing parameter.5fbb0b
  • RF_Demo
    • (TL721X/TL321X)Fixed data overflow during header variable assignment in app_pri_generic_mode.c0d5bc4
    • (TL721x/TL321x)Fixed rf_set_irq_mask parameter passing error in app_pri_generic_mode.c0d5bc4
  • rf
    • (TL721X/TL321X)Fixed issue where switching between different RF modes using rf_set_xx_mode could be unsuccessful (in cases where the rf_reset_register_value interface was not called before switching modes)0d5bc4
    • (TL321x) Fix the rf_mode_init configuration error to avoid triggering RF DMA and state machine reset during invocation.373c5d

BREAKING CHANGES

  • rf
    • (TL321x) Close the stimer_bb module in rf_rode_initinterface; Delete the interfaces rf_bb_timer_sync_to_stimer_en, rf_bb_timer_sync_to_stimer_trig, rf_bb_timer_get_tickand rf_set_timer_source.
  • flash
    • (B91/B92/TL721x/TL321X)Removed flash_read_data()/flash_read_data_decrypt_check(), and changed the default single-wire of flash_read_page() interface in flash.c to default two-wire to prevent the mismatch between the maximum frequency supported by flash single-wire read and the frequency configured by the chip from leading to flash read error.

Features

  • TL321X
    • PKE/PM
  • pm
    • (TL721x) Added interface pm_set_cfg_for_os_compile_opt(), added enumeration pm_optimize_sel_e, and added code related to os optimization options.
    • (TL721X) In the return value of the pm_sleep_wakeup interface, add two bit definitions, indicating that the stimer tick value is greater than the maximum value and less than the minimum value respectively.
  • sys
    • (TL721x) Added the DCDC_0P94_LDO_1P8 and DCDC_0P94_DCDC_1P8 modes.
  • pm demo
    • Added 24M RC calibration and 32K clock recommended usage.
  • core
    • (TLSR921x/TLSR951x/TLSR922x/TLSR952x/TL721X/TL321X) The core_mie_disable interface adds a return value to return the value of the MIE register before interrupts were disabled.
  • trap
    • (TLSR921x/TLSR951x/TLSR922x/TLSR952x/TL721X/TL321X) Added plic_all_interrupt_save_and_disable interface to save and disable all interrupt sources of PLIC, plic_all_interrupt_restore interface to restore all PLIC interrupt sources.
  • flash
    • (B91/B92/TL721x/TL321X)add flash_4line_en() and flash_4line_dis().

Refactoring

  • USB_Demo
    • (TLSR921x/TLSR951x/TLSR922x/TLSR952x/TL721X/TL321X)The usb_cdc_tx_data_to_host function supports sending data of arbitrary length in a blocking fashion. usb_cdc_tx_data_to_host_non_block is added as a new non-blocking function, and sample code is provided.
  • rf
    • (TL721x) Switch stimer_bb to manual mode in rf_rode_init, which triggers tick earlier.
  • aes
    • (TL721x/TL321X)The AES section was deleted because it was not needed.

Performance Improvements

  • N/A

Note

  • N/A

版本

  • SDK版本: tl_platform_sdk V3.1.0
  • 此版本SDK支持 TLSR921x/TLSR951x(A0/A1/A2),TLSR922x/TLSR952x(A3/A4),TL721X(A1),TL321X(A0) 芯片。
  • 工具链版本
    • TLSR921x/TLSR951x: gcc7
    • TLSR922x/TLSR952x: gcc12
    • TL721x: gcc12
    • TL321x: gcc12

Bug Fixes

  • pm
    • (TL721X)解决了因为清唤醒源状态操作的位置不对引发的退出睡眠函数或者产生复位的问题。清唤醒源状态的操作需要放在设置唤醒tick之后。设置唤醒tick值的过程可能会产生中间值,如果中间值和32k tick值相同会把timer唤醒源的状态置起来,从而引发退出睡眠函数或者产生复位。2b4ddd52
    • (B91/B92)解决了pm_set_wakeup_time_param和pm_set_xtal_stable_timer_param接口对于睡眠的提前唤醒时间计算错误的问题。如果调用过这两个接口中的任意一个,可能会导致不能正常睡眠。2f9b7be4
  • i2c1_m
    • (TLSR922x/TLSR952x/TL721X/TL321X)I2C1_M_WAIT:xxx_timeout_handler传参错误.5fbb0b
  • RF_Demo
    • (TL721X/TL321X)修复了app_pri_generic_mode.c中header变量赋值过程中的数据溢出问题0d5bc4
    • (TL721x/TL321x)修复了app_pri_generic_mode.c中rf_set_irq_mask传参错误0d5bc4
  • rf
    • (TL721x/TL321x)修复了使用rf_set_xx_mode切换不同RF模式可能不成功的问题(在切换模式之前没有调用rf_reset_register_value接口的情况)0d5bc4
    • (TL321x) 修复了rf_mode_init配置错误,避免调用时触发RF DMA和状态机复位。373c5d

BREAKING CHANGES

  • rf
    • (TL321x) rf_mode_init接口中关闭stimer_bb模块;删除rf_bb_timer_sync_to_stimer_enrf_bb_timer_sync_to_stimer_trigrf_set_timer_sourcerf_bb_timer_get_tick接口。
  • flash
    • (B91/B92/TL721x/TL321X)删除了flash_read_data()/flash_read_data_decrypt_check(),同时将flash.c中的flash_read_page()接口默认单线更改为默认两线,防止flash单线读支持的最大频率和芯片配置的频率不匹配导致flash读错误。

Features

  • TL321X
    • PKE/PM
  • pm
    • (TL721x)添加接口pm_set_cfg_for_os_compile_opt(),添加枚举pm_optimize_sel_e,添加os优化选项相关的代码。
    • (TL721X)在pm_sleep_wakeup接口的返回值中,增加两个bit的定义,分别表示stimer tick值大于最大值和小于最小值。
  • sys
    • (TL721X)新增DCDC_0P94_LDO_1P8模式和DCDC_0P94_DCDC_1P8模式。
  • pm demo
    • 添加24M RC校准和32K时钟推荐使用方法。
  • core
    • (TLSR921x/TLSR951x/TLSR922x/TLSR952x/TL721X/TL321X) core_mie_disable 接口增加一个返回值,用来返回中断禁止前 MIE 寄存器的值。
  • trap
    • (TLSR921x/TLSR951x/TLSR922x/TLSR952x/TL721X/TL321X) 添加 plic_all_interrupt_save_and_disable 接口保存和禁止 PLIC 所有中断源,plic_all_interrupt_restore 接口恢复所有 PLIC 中断源。
  • flash
    • (B91/B92/TL721x/TL321X)新增了flash_4line_en()/flash_4line_dis()。

Refactoring

  • USB_Demo
    • (TLSR921x/TLSR951x/TLSR922x/TLSR952x/TL721X/TL321X)usb_cdc_tx_data_to_host 函数支持以阻塞的方式发送任意长度数据,新增非阻塞发送函数 usb_cdc_tx_data_to_host_non_block 并提供示例代码。
  • rf
    • (TL721x) rf_mode_init中切换stimer_bb为手动模式,手动模式更早触发tick。
  • aes
    • (TL721x/TL321X)删掉了AES段,因为不需要这个段。

Performance Improvements

  • N/A

Note

  • N/A

Release V3.0.0

01 Jul 09:58
Compare
Choose a tag to compare

V3.0.0

Version

  • SDK version: tl_platform_sdk V3.0.0
  • This version of the SDK supports TLSR921x/TLSR951x(A0/A1/A2),TLSR922x/TLSR952x(A3/A4),TL721X(A1),TL321X(A0) chips.
  • Toolchain version
    • TLSR921x/TLSR951x: gcc7
    • TLSR922x/TLSR952x: gcc12
    • TL721x: gcc12
    • TL321x: gcc12

Note

  • (TLSR922x/TLSR952x)Update toolchains from V5.1.1 to V5.3.0
    • The compilation options for warnings are uniformly configured as follows: -Wall -Wextra -Wshadow -Wimplicit-fallthrough -Wpointer-arith -Wredundant-decls -Wcast-qual -Wsign-compare -Wunused-parameter -Wunused-variable -Wswitch -Wstrict-prototypes -Wmissing-field-initializers -Wdeprecated-declarations -Wenum-conversion -Wpacked-not-aligned -Waddress-of-packed-member -Wundef
    • The compilation options for compiling, assembling and linking are configured uniformly as follows: -mcpu=d25f -mext-dsp -fomit-frame-pointer -fno-strict-aliasing -std=c99 -fno-jump-tables -fno-fat-lto-objects -fuse-ld=bfd
    • Solve the following file compilation error problem:
      • demo/vendor/PKE_Demo/B91_B92_PKE_Demo_v1.0.1/PKE_Demo/app_ecdsa.c, app_rsa.c
      • demo/vendor/UART_DEMO/app_dma.c
      • demo/vendor/I2C_Demo/app.c, app_dma.c
  • Cleared the annotation for the following driver files:
    • chip/B91/drivers: aes.c/aes.h, core.h
    • chip/B92/drivers: aes.c/aes.h, core.h
  • (TLSR921x/TLSR951x/TLSR922x/TLSR952x)In order to deal with the portability issues caused by the -fpack-struct compilation option, the following file has been modified by adding the compilation option __attribute__((packed)) to structures:
    • demo/vendor/USB_Demo/application/usbstd/CDCClassCommon.h
    • demo/vendor/USB_Demo/application/rf_frame.h
    • common/usb_dbg/myudb_usbdesc.h
  • (TLSR921x/TLSR951x/TLSR922x/TLSR952x)To make the watchdog coverage more extensive and the code more secure, enable the timer watchdog in the .S file and disable it in the platform_init() function.
  • (TLSR922x/TLSR952x)the following modules add a timeout mechanism,clock/analog/mspi/ic/uart/spi/aes/trng,
    for compatibility,the timeout is set to a large value (0xffffffff us) by default, if want to use the timeout mechanism:
    - modify the timeout via the xxx_set_error_timeout interface (refer to the interface notes for a description of the timeout);
    - the application can override xxx_timeout_handler to get exception details as appropriate(for details, refer to the comments of the interface description);
  • Cleaned up the Chinese characters in the code, involving the following files:
    • 3rd-party\freertos-V5\include: task.h.
    • chip\B92\drivers\lib\include: sys.h
    • demo\vendor\AUDIO_Demo\AUDIO_V1.1\AUDIO_Demo: app_codec_0581.c
    • demo\vendor\SPI_Demo\SPI_V1.1\SPI_Demo: app_dma_llp.c

Bug Fixes

  • audio
    • (TLSR922x/TLSR952x)Fixed the problem of amic and line mono input data anomaly under 44.1k and 48k sample rate, involving interface audio_codec_swap_stream0_data. 3d3f31d9
    • (TLSR922x/TLSR952x)Solved the problem of inconsistent volume between the left and right channels of 20bit audio data in stereo mode. 716ead90
    • (TLSR922x/TLSR952x)Solved the problem of abnormal dac output after dynamically switching the codec dac sampling rate. d755dae7
  • SPI_Demo
    • (TLSR922x/TLSR952x)Repair SPI_PROTOCOL in spi no dma mode is configured as B91M_SLAVE_PROTOCOL, and the master side sends data in wrong format, modify SPI_MODE_WR_DUMMY_WRITE to SPI_MODE_WR_WRITE_ONLY. e171fa06
  • pm
    • (TLSR922x/TLSR952x)Solved several problems that may occur when the sleep time set by the function pm_sleep_wakeup() is less than 1.62ms: 1. Entered sleep, but the sleep time did not meet expectations, and it can be awakened after about 37 hours. 2. If it happens to be after the pm_clr_all_irq_status() in the processing of pm_sleep_wakeup() and the time is up, it will cause the plic_clr_all_request() to not be cleared, triggering a software reboot. 3. If it happens to be at the moment of sleep and the time was out, it will result in not entering sleep and continuing to execute (when sleep mode is suspend/sleep retention) or software reboot (when sleep mode is deep). bd44c301
    • (TLSR922x/TLSR952x)Solved the problem that may be caused by treating the VBUS flag bit as a wake-up source flag bit in pm_sleep_wakeup(): If jitter occurs on the VBUS pin after the pm_clr_all_irq_status() in the processing of pm_sleep_wakeup(), it will cause the plic_clr_all_request() to not be cleared, triggering a software reboot. bd44c301
    • (TLSR921x/TLSR951x)Solved the crash problem caused by the failure of the crystal oscillator stability flag. The program determines whether to switch from 24M rc to 24M xtal by reading the stable flag of the hardware crystal oscillator. If the crystal used starts slowly and the flag of the crystal oscillator is ready, but the actual crystal oscillator does not start normally, the program will crash after switching to 24M XTAL. 3aa5ca13
    • (TLSR921x/TLSR951x/TLSR922x/TLSR952x)Restore the default value of register system_up_32k before sleep, which solves the problem of inaccurate sleep time. If the default value is not restored, the system tick updates every 32k edge. Because the system tick is not updated in a timely manner, the XTAL may be misjudged that it is not stable. If the system tick executes 40us more than once, the reserved waiting time may be exceeded, resulting in inaccurate sleep time. e8dc8082
  • sys
    • (TLSR922x/TLSR952x)The A3 chip has a problem (the A4 doesn't) : If the hardware board has a 1.4V dcdc inductor component and uses 1.8V GPIO, it is necessary to set 1P4V to DCDC mode as soon as possible after the chip is powered on, otherwise there is a voltage pulse on vdd1v2 and vddo3. Before moving code operations in the S file, configure the DCDC mode to solve this problem. 875a487e
  • USB_Demo
    • (TLSR922x/TLSR952x)Solved the problem that DMIC0_DMIC1_IN cannot transfer DMIC0 data in USB_MICROPHONE mode. 716ead90
  • link
    • (TLSR921x/TLSR951x/TLSR922x/TLSR952x)make _BSS_VMA_END four-byte alignment to resolve when using the S file _FILL_STK function,due of the _BSS_VMA_END may not have four-byte alignment, there is an out-of-bounds access beyond _STACK_TOP, resulting in a store access fault. 0e732bce
  • Timer_Demo
    • (TLSR921x/TLSR951x/TLSR922x/TLSR952x)Wd_clear() must be executed before each call to wd_start() to avoid abnormal watchdog reset time because the initial count value is not 0. 20a065ec
  • spi demo
    • (TLSR922x/TLSR952x)Fix lspi duplicate call to gspi_reset in interrupt dma_irq_handler. bfadf96e
  • qdec_Demo
    • (TLSR922x/TLSR952x)qdec_get_count_value: If the interface is called continuously (with very short intervals), it is possible that the data read is not updated in time and the result is read from the last time. ecf387fa
  • rf
    • (TLSR921x/TLSR951x/TLSR922x/TLSR952x)Add the missing active state of the reg_rf_ll_2d_sclk register bit<0-2>. d7ef39ba
  • Coremark_demo
    • (TLSR921x/TLSR951x/TLSR922x/TLSR952x)Fix the compilation options for the project to ensure that the CPU runs properly. 791247df
  • Dhrystone_Demo
    • (TLSR921x/TLSR951x/TLSR922x/TLSR952x)Fix the compilation options for the project to ensure that the CPU runs properly. 791247df
  • flash
    • (TLSR921x/TLSR951x/TLSR922x/TLSR952x)Fix the problem that multiple calls to flash_write_status_midxxx() result in wrong return value. 0634358a
  • RF_Demo
    • (TLSR921x/TLSR951x/TLSR922x/TLSR...
Read more