BLE-TLSR825x

更新时间:2024-07-30 03:10:28下载pdf

本文仅介绍 TuyaOS 开发过程中针对 TLSR825x 系列芯片平台相关的基本信息。有关 TuyaOS 的更多信息,请访问 TuyaOS 开发者论坛

硬件环境

芯片介绍

您可以访问《Telink 官方文档》获取 TLSR825x 系列芯片文档

开发板

  • 核心板:搭载涂鸦 BTU 模组

    BLE-TLSR825x
  • 底板

    BLE-TLSR825x

外设

GPIO

TuyaOS 中,操作指定的 I/O(Input/Output)要使用 I/O 序号作为入参进行操作。对于 TLSR825x 系列芯片平台,GPIO 序号与实际的 I/O 对应列表参考下表:

序号 GPIO 序号 GPIO 序号 GPIO 序号 GPIO 序号 GPIO
0 PA0 8 PB0 16 PC0 24 PD0 32 PE0
1 PA1 9 PB1 17 PC1 25 PD1 33 PE1
2 PA2 10 PB2 18 PC2 26 PD2 34 PE2
3 PA3 11 PB3 19 PC3 27 PD3 35 PE3
4 PA4 12 PB4 20 PC4 28 PD4 - -
5 PA5 13 PB5 21 PC5 29 PD5 - -
6 PA6 14 PB6 22 PC6 30 PD6 - -
7 PA7 15 PB7 23 PC7 31 PD7 - -

UART

该系列芯片平台同时只支持 1 个串口 UART0。TuyaOS 中默认使用下表中的引脚。如果要使用其他引脚作为 UART,请参考《Telink》TLSR825x 系列芯片文档 自行配置。

UART 功能 引脚
UART0 TX PB1
UART0 RX PB7

SPI

该系列芯片平台有两组 SPI 接口可使用,同时只能使用其中一组。TuyaOS 中 SPI 初始化,默认使用 SPI1。

SPI 功能 引脚
SPI1 CS PD6
SPI1 CLK PA4
SPI1 SDI PA3
SPI1 SDO PA2
SPI2 CS PD2
SPI2 CLK PD7
SPI2 SDI PB6
SPI2 SDO PB7

I2C

该系列芯片平台有 4 组 I2C 接口可使用,同时只能使用其中一组。TuyaOS 中 I2C 初始化,默认使用 I2C0。

IIC 功能 引脚
IIC0 SCL PC3
IIC0 SDA PC2
IIC1 SCL PC0
IIC1 SDA PC1
IIC2 SCL PB6
IIC2 SDA PD7
IIC3 SCL PA3
IIC3 SDA PA4

PWM

该系列芯片平台最多支持 6 路 PWM 输出,PWM 初始化后默认的引脚如下表所示。如果需要修改 PWM 通道所映射的 GPIO 引脚,则需要调用 tkl_pwm_mapping_to_gpio 重新映射 GPIO 为 PWM 功能。

通道 引脚
0 PC2
1 PC3
2 PD4
3 PD2
4 PB4
5 PB5

ADC

该系列芯片平台总共支持 10 个引脚的 ADC 复用功能,详情请参考下表。

通道 引脚
0 PB0
1 PB1
2 PB2
3 PB3
4 PB4
5 PB5
6 PB6
7 PB7
8 PC4
9 PC5

烧录固件

连线方式

烧录器的 SWM 引脚接模组 SWS 引脚。

固件说明

对于 TLSR825x 系列芯片平台,生产固件与 OTA(Over-the-air)固件都为同一个 .bin 格式的固件。

烧录方式一

您可以将固件上传至 涂鸦 IoT 开发平台,使用涂鸦烧录授权工具。详情请参考 云模组

烧录方式二

使用 Telink 官方烧录和调试工具(BDT,Burning and Debugging Tool)进行烧录。详情请参考 Telink 官方指导 Burning and Debugging Tools for all Series

平台特性

开启扫描

  1. 在文件 apps\tuyaos_demo_ble_peripheral\IoTOSconfig 中的最下方新增配置项:

    config ENABLE_SCAN
        bool "ENABLE_SCAN"
        default y
    
  2. 添加之后在工程中,右键单击目录,选择 Config Project 使修改生效:

    BLE-TLSR825x

存储

  • Flash:512KB

  • RAM:48KB(Retention: 32K)

    下图为 TLSR825x 系列芯片平台的 Flash 示意:

    BLE-TLSR825x

TLSR825x 系列芯片平台低功耗蓝牙的 SDK 采用双备份升级方案,固件分为两片区域。

  • 第一片区域为 0x00000 - 0x2B000。(因为芯片内部原因,要预留 4K 的空间不使用)
  • 第二片区域为 0x40000 – 0x6B000。(因为芯片内部原因,要预留 4K 的空间不使用)

在上电时,bootloader 会根据两个代码区的有效性来决定运行哪一个区域的固件,如果两个区域都是有效的,则运行第一个区域的代码。

留给用户区的区域为:

  • 0x2C000 - 0x40000
  • 0x71000 - 0x74000
  • 0x78000 – 0x80000

低功耗

低功耗蓝牙设备的低功耗分为 Suspend Sleep 和 Deep Sleep 两个模式,Deep Sleep 的功耗比 Suspend Sleep 的功耗更低。

如何进入休眠:

对于休眠的判定分为 2 层,第一层在应用层,第二层在蓝牙协议栈内部。

  • 应用层:

    应用层可以通过执行如下函数,来让芯片允许进入休眠。

    tal_cpu_allow_sleep()
    

    但这只是应用层允许休眠,最终是否要进入休眠、进入 Suspend Sleep 还是 Deep Sleep 模式,还需要结合蓝牙协议栈当前的状态来综合判定。

  • 协议栈内部:

    当应用层对休眠函数设置后,蓝牙协议栈在完成其任务后,会判定休眠与否。如果不满足条件,则本轮循环不休眠。如果满足条件,则进行休眠,直到软件定时器/蓝牙协议栈设定的最近一次任务。

  • 您需要了解如下信息:

    • 执行 VOID_T tal_cpu_allow_sleep(VOID_T) 后,只要满足休眠条件,芯片就会自动进入休眠。

    • 因为 Deep Sleep 时芯片所有模块都会掉电,所以芯片 Deep Sleep 唤醒后,需要对其内部外设重新初始化(GPIO/I2C/SPI/PWM/UART),您可以在函数 OPERATE_RET tuya_init_third(VOID_T) 中放入硬件接口相关的初始化。

    • 该平台芯片休眠时中断是无效的,如果要让 I/O 具备唤醒功能,需要设置 Wakeup 能力:

      OPERATE_RET tkl_wakeup_source_set(CONST TUYA_WAKEUP_SOURCE_BASE_CFG_T *param)
      
    • 该平台芯片进入 Deep Sleep 时无法保持输出能力,仅仅能够通过上下拉输入来对外提供一个弱电平。

    • 如果用户需要让芯片休眠时也保持 I/O 输出能力,则芯片仅能进入 Suspend Sleep。用户可以通过如下函数,来决定芯片仅进入 Suspend Sleep。

      tkl_cpu_sleep_mode_set(1, TUYA_CPU_SLEEP);
      
  • 1000ms 广播间隔下的功耗示意图

    BLE-TLSR825x