更新时间:2024-07-30 03:10:34下载pdf
本文仅介绍 TuyaOS 开发过程中芯片平台相关的基本信息。有关 TuyaOS 的更多信息,请访问 TuyaOS 开发者论坛。
可在 hardware\bk3431q\chip_manual\BK3431Q Datasheet V1.3.pdf
路径下,获取芯片手册。
GPIO
有两种可选规格,32 引脚和 40 引脚。具有多达 24 个 GPIO 引脚,可以配置为输入或输出。GPIO 引脚可配置用于第二功能。引脚定义详见 hardware\GR551x\chip_manual\BK3431Q Datasheet V1.3.pdf
内 2 Pin Information 以及 3.1 GPIO 章节。
TuyaOS SDK 中默认定义引脚序号与芯片引脚对应关系如下表所示:
TUYA_GPIO_NUM 定义 | 引脚 |
---|---|
TUYA_GPIO_NUM_0 ~ TUYA_GPIO_NUM_07 | P00 ~ P07 |
TUYA_GPIO_NUM_10 ~ TUYA_GPIO_NUM_17 | P10 ~ P17 |
TUYA_GPIO_NUM_20 ~ TUYA_GPIO_NUM_27 | P20 ~ P27 |
TUYA_GPIO_NUM_30 ~ TUYA_GPIO_NUM_37 | P30 ~ P37 |
UART
该平台支持两路串口 UART0 与 UART2,默认串口引脚定义如下表(引脚固定,不支持自由配置)。
UART | 功能 | 引脚 | 描述 |
---|---|---|---|
UART0 | TX | P00 | 作为烧录、授权、上位机测试串口 默认波特率 9600 |
UART0 | RX | P01 | - |
UART2 | TX | P16 | 作为 Log 日志口 默认波特率 115200 |
UART2 | RX | P17 | - |
SPI
该平台仅支持一路 SPI 接口,支持 SPI Master/Slave 角色,最高速率可达 8 MHz,支持设置的 频率范围为 31.25 KHz ~ 8 MHz。
TuyaOS 中 SPI 初始化默认使用 SPI Master,将 MISO 与 MOSI 通过引线连接(P06 与 P05 短接)即可测试验证。默认引脚定义如下表所示:
SPI | 功能 | 引脚 |
---|---|---|
SPI0 | CS | P07 |
SPI0 | CLK | P04 |
SPI0 | SDI | P05 |
SPI0 | SDO | P06 |
I2C
该平台仅支持一路 I2C 接口,支持 100 kHz 和 400 kHz 通讯速率可调。SDK 内配置 仅支持 I2C Master 与 7bit 地址。由于 OLED 屏幕为了显示 SDK 信息(TuyaOS Demo)需预先初始化,TuyaOS 中 I2C 初始化默认使用 I2C0。引脚定义如下表所示:
I2C | 功能 | 引脚 |
---|---|---|
I2C0 | SCL | P02 |
I2C0 | SDA | P03 |
PWM
该平台支持 6 路 PWM 输出,即 Channel 0~5。SDK 内默认采用 16 MHz 主晶振作为时钟,支持设置的 频率范围:245Hz ~ 8MHz。通道与默认引脚定义如下表所示:
通道 | 引脚 |
---|---|
0 | P10 |
1 | P11 |
2 | P12 |
3 | P13 |
4 | P14 |
5 | P15 |
ADC
10 位 ADC,多达 10 个通道,包括 8 个外部测试通道和 2 个内部单通道,支持单次和连续模式。其中外部通道支持电压范围 0~1.0V(G 版本)/1.2V(D 版本),精度 ±30 mV。通道与引脚定义如下表所示:
通道 | 引脚 |
---|---|
0 | P30 |
1 | P31 |
2 | P32 |
3 | P33 |
4 | P34 |
5 | P35 |
6 | P36 |
7 | P37 |
8 | VCCBAT-pin |
9 | Temperature Sensor,Internal Channel |
按键
引脚:P12
启动时间检测引脚
引脚:P10
进入 main
函数后置为高电平。
前往 Arm Keil 官方网站 自行安装 Keil 软件,所有安装步骤使用默认配置,推荐使用 mdk528a.exe 版本。
安装期间若弹出安装驱动,请选择 安装。
打开 Keil 时,若弹出器件包安装,请手动关闭。
安装 Keil 后,将 UV4.exe
文件所在目录的路径,添加到 环境变量 中。例如:TUYAOS_COMPILE_TOOL
: C:\Keil_v5\UV4
,结果如下图所示:
烧录工具安装包位于 .\pc\tools\bk3431q\烧录\
下,有 2 款工具,分别为:
BekenHIDTool
:SPI 烧录工具bk_writer
:串口烧录工具关闭测试功能。
#define TUYA_SDK_TEST 0
关闭涂鸦 Log。
#define ENABLE_LOG 0
#define BOARD_ENABLE_LOG 0
重新进行全量编译后,打开 .map
文件可知,占用的 RAM 和 Flash 空间如下:
编译输出产物路径位于 .\software\TuyaOS\.log\output\app
下,BK3431Q 固件主要由三部分组成:boot + stack + app,其中:
tuyaos_demo_ble_peripheral_merge_crc.bin
= boot + stack + app,仅支持 SPI 烧录,也就是日常说的 生产固件。
tuyaos_demo_ble_peripheral_oad.bin
= app,支持 UART 烧录,也就是日常说的 应用固件 / OTA 升级固件。
tuyaos_demo_ble_peripheral_stack_oad.bin
= stack + app,支持 UART 烧录。除非有升级 stack 的需求,一般用不到。
工具路径:.\pc\tools\bk3431q\烧录
说明路径:.\hardware\\bk3431q\module_manual\BK3431Q_烧录指南.docx
测试方法:使用逻辑分析仪,测量 VCC 引脚 和 启动时间检测引脚 的电平变化时间差。
检测引脚:外设 > 启动时间检测引脚。
启动时间说明:从上电运行至 main
函数,需要 6 毫秒左右 的时间。
分区调整方法
在原工程中修改以下宏,即可调整默认的 Flash 分区。
// Flash
#ifndef BOARD_FLASH_TUYA_INFO_START_ADDR
#define BOARD_FLASH_TUYA_INFO_START_ADDR (0x7B000)
#endif
#ifndef BOARD_FLASH_SDK_TEST_START_ADDR
#define BOARD_FLASH_SDK_TEST_START_ADDR (0x77000)
#endif
#ifndef BOARD_FLASH_OTA_START_ADDR
#define BOARD_FLASH_OTA_START_ADDR (0x44000)
#endif
#ifndef BOARD_FLASH_OTA_END_ADDR
#define BOARD_FLASH_OTA_END_ADDR (0x64000)
#endif
#ifndef BOARD_FLASH_OTA_SIZE
#define BOARD_FLASH_OTA_SIZE (BOARD_FLASH_OTA_END_ADDR - BOARD_FLASH_OTA_START_ADDR)
#endif
#ifndef BOARD_FLASH_MAC_START_ADDR
#define BOARD_FLASH_MAC_START_ADDR (0x7F000)
#endif
测试方法
将板子所有外接引线全部拆除,仅保留与上位机通信串口。可用 USB 转 TTL 工具接板子的串口,USB 串口的 TX 接 P01
,USB 串口的 RX 接 P00
。
将带有供电能力的电流表接入,供电电压 3.3V。其中电源正极接 +3V 丝印位置,电源负极接板子 GND。
通过上位机 功耗管理,即可测试不同模式的功耗数据。
功耗数据
此处测试的功耗为典型的 1s 广播 时候的平均功耗。
此处测试的功耗为典型的系统 Deep Sleep 模式 平均功耗。关闭所有外设,关闭广播,RTC 保持,支持 GPIO 唤醒,RAM 数据保持。
测试硬件:开发板,16 MHz 晶体 20ppm 精度,外接 32K 晶体。上位机设置进入低功耗-模式 1(带广播),本地时钟长运挂机 15 小时,误差在 2~3 秒左右。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈