更新时间:2024-07-30 03:10:35下载pdf
本文仅介绍 TuyaOS 开发过程中芯片平台相关的基本信息。有关 TuyaOS 的更多信息,参考 TuyaOS 开发者论坛。
获取方式一:在 hardware\nRF52832\chip_manual\nRF52832_PS_v1.7.pdf
路径下,获取芯片手册。
获取方式二:访问 Nordic 半导体官方网站获取 最新版本。
获取方式一:在 涂鸦开发者平台,获取开发板,开发板对应的 物料编码 为 2.03.99.00045。该开发板复用了涂鸦低功耗蓝牙 Dongle 的硬件。
原理图路径为 hardware\nRF52832\module_manual\Tuya BLE Dongle 原理图.pdf
。
获取方式二:您也可复用 Nodic 官方开发板,并参考官方文档了解 最新版本使用说明。
UART
该平台仅支持 1 个串口 UART0,用于授权以及上位机测试。
UART | 功能 | 引脚 |
---|---|---|
UART 0 | TX | P0.06 |
UART 0 | RX | P0.08 |
SPI
由于具有相同寄存器地址的外设只能使用其中一个,所以 SPI 支持 SPI1 和 SPI2。
SPI | 功能 | 引脚 |
---|---|---|
SPI1 | CS | P0.05 |
SPI1 | CLK | P0.04 |
SPI1 | SDI | P0.02 |
SPI1 | SDO | P0.03 |
SPI2 | CS | P0.28 |
SPI2 | CLK | P0.29 |
SPI2 | SDI | P0.30 |
SPI2 | SDO | P0.31 |
IIC
由于具有相同寄存器地址的外设只能使用其中一个,所以 IIC 支持 IIC0。
IIC | 功能 | 引脚 |
---|---|---|
IIC0 | SCL | P0.16 |
IIC0 | SDA | P0.15 |
PWM
通道 | 引脚 |
---|---|
0 | P0.28 |
1 | P0.29 |
2 | P0.30 |
3 | P0.31 |
ADC
通道 | 引脚 |
---|---|
0 | P0.02 |
1 | P0.03 |
2 | P0.04 |
3 | P0.05 |
4 | P0.28 |
5 | P0.29 |
6 | P0.30 |
7 | P0.31 |
按键
P0.14
启动时间检测引脚
P0.05
进入 main
函数后置为高电平。
软件环境涉及 Keil 和 nRF52832 依赖环境安装。
请前往 Arm Keil 官方网站 自行安装 Keil 软件,所有安装步骤使用默认配置,推荐使用 mdk528a.exe 版本。
安装期间若弹出安装驱动,请选择 安装 。
打开 Keil 时,若弹出器件包安装,请手动关闭。
安装 Keil 后,将 UV4.exe
文件所在目录的路径,添加到 环境变量 中。例如:TUYAOS_COMPILE_TOOL
: C:\Keil_v5\UV4
,结果如下图所示:
nRF 命令行工具包括 Jlink 驱动以及 Nordic 自己开发的一些命令行工具,具体包括 Jlink 驱动,nrfjprog,nrfutil 以及 mergehex 等。
以 Windows 系统为例,安装 nRF 命令行工具的步骤如下:
前往 Nordic 官网 下载 nRF 命令行工具。
选择您的芯片平台,以及需要的工具版本。例如,下载 win32 版本,得到 nRF5x-Command-Line-Tools_9_8_1_Installer.exe
之类的可执行文件。
双击 .exe
文件安装,同期许可条款和条件。安装过程中,不要更改默认选项,直接按照默认选项去安装即可。
若出现如下界面,一定要选择 select all
。
根据提示安装即可。
请不要让 Keil 自动下载 Device Family Pack,否则极有可能出现编译失败的情况。
前往 Segger 官网下载 J-Link。
选择合适的版本(测试使用 V6.88c),根据提示安装即可。
#define TKL_BLUETOOTH_SUPPORT_SCAN (1)
关闭测试功能。
#define TUYA_SDK_TEST 0
关闭涂鸦 Log。
#define ENABLE_LOG 0
#define BOARD_ENABLE_LOG 0
关闭原厂 Log。
关闭扫描功能。
#define TKL_BLUETOOTH_SUPPORT_SCAN (0)
重新进行全量编译后,打开 .map
文件可知,占用的 RAM 和 Flash 空间如下:
其中,RW 中有 10K 左右空间实际上是放到 Flash 中的,所以实际占用的 RAM 空间为 26K 左右,详见下图:
若打开扫描功能,即
#define TKL_BLUETOOTH_SUPPORT_SCAN (1)
重新进行全量编译后,打开 .map
文件可知,占用的 RAM 和 Flash 空间如下:
使用 J-Link 的 SW 模式,所以连线方式如下:
J-Link | 设备 |
---|---|
VCC | VCC |
GND | GND |
DIO | DIO |
CLK | CLK |
在 Visual Studio Code 左侧目录栏的 apps\tuyaos_demo_ble_peripheral
上,右键单击,选择 在文件资源管理器中显示:
打开目录 tuyaos_demo_ble_peripheral\_build\hex
。
双击 load_softdevice_bootloader_app.bat
脚本,即可进行涂鸦的固件烧录。
此处烧录为全固件烧录,烧录后需要进行授权。
使用 Keil 的 Download 按钮下载(只能下载应用层)。
使用 J-Flash 进行烧录,您需要自行学习 J-Flash 烧录流程。
使用桌面版 nRF Connect 进行烧录,请参考桌面版 nRF Connect 使用指南。
测试方法:使用逻辑分析仪测量 VCC 引脚 和 启动时间检测引脚 的电平变化时间差。
检测引脚:外设 > 启动时间检测引脚。
分区调整方法
在原工程中修改以下宏即可调整默认的 Flash 分区:
// Flash
#ifndef BOARD_FLASH_BULK_DATA_START_ADDR
#define BOARD_FLASH_BULK_DATA_START_ADDR (0x70000)
#endif
#ifndef BOARD_FLASH_TUYA_INFO_START_ADDR
#define BOARD_FLASH_TUYA_INFO_START_ADDR (0x74000)
#endif
// #ifndef BOARD_FLASH_OTA_INFO_ADDR
// #define BOARD_FLASH_OTA_INFO_ADDR (0x7C000)
// #endif
#ifndef BOARD_FLASH_OTA_START_ADDR
#define BOARD_FLASH_OTA_START_ADDR (0x46000)
#endif
#ifndef BOARD_FLASH_OTA_END_ADDR
#define BOARD_FLASH_OTA_END_ADDR (0x66000)
#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 (0)
// #endif
TuyaOS BLE SDK 开启了 DCDC 模式,可以进入更低功耗模式。
tuya_ble_sdk
未开启 DCDC 模式,功耗偏高。
此处测试的功耗为典型的 1s 广播时候的平均功耗。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈