更新时间:2024-07-30 03:10:28下载pdf
本文仅介绍 TuyaOS 开发过程中针对 TLSR825x 系列芯片平台相关的基本信息。有关 TuyaOS 的更多信息,请访问 TuyaOS 开发者论坛。
您可以访问《Telink 官方文档》获取 TLSR825x 系列芯片文档。
核心板:搭载涂鸦 BTU 模组。
底板:
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。
在文件 apps\tuyaos_demo_ble_peripheral\IoTOSconfig
中的最下方新增配置项:
config ENABLE_SCAN
bool "ENABLE_SCAN"
default y
添加之后在工程中,右键单击目录,选择 Config Project 使修改生效:
Flash:512KB
RAM:48KB(Retention: 32K)
下图为 TLSR825x 系列芯片平台的 Flash 示意:
TLSR825x 系列芯片平台低功耗蓝牙的 SDK 采用双备份升级方案,固件分为两片区域。
在上电时,bootloader 会根据两个代码区的有效性来决定运行哪一个区域的固件,如果两个区域都是有效的,则运行第一个区域的代码。
留给用户区的区域为:
低功耗蓝牙设备的低功耗分为 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 广播间隔下的功耗示意图
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈