更新时间:2024-11-20 08:51:22下载pdf
本文介绍了适用于蓝牙 mesh 照明类产品的相关 Demo 说明,芯片平台基于Telink TLSR825x,介绍了如何搭建调试环境以及产品开发的相关注意事项。
下图为照明类产品的开发框架:
对于蓝牙 mesh 标准命令,涂鸦会视为自定义命令。当应用和网关与设备进行通信时,会将自定义命令转换为蓝牙 mesh 标准命令。
说明:蓝牙 mesh 标准 DP 接口函数为
void tuya_mesh_data_recv_callback(uint16_t src_addr, uint16_t dst_addr, uint32_t opcode, uint8_t *data, uint16_t data_len, uint8_t ttl)
。蓝牙 mesh 标准命令的使用,请参考 Mesh Model Specification。
涂鸦定义 | mesh 定义 | 名称 |
---|---|---|
1 | Generic OnOff(0x0282) | 开关 |
3 | Light Lightness Actual(0x4c82) | 亮度值 |
4 | Light CTL Temperature(0x6482) | 冷暖值 |
5 | Light HSL(0x7682) | 彩光 |
1~30 为基础功能通用 DP,适用于可以复用到其他大部分品类的基础功能 DP,通用 DPID 不可以重复。
31~50 为新功能通用 DP,适用于可以复用到其他大部分品类的新功能 DP,通用 DPID 不可以重复。
51~100 为品类特有功能 DP,适用于通用功能DP无法满足需求的情况下,各品类自主定义的品类特有的DP功能。
101~200 为自定义 DP,适用于自定义方案,客户新增自定义功能。
201~250 为系统 DP,适用于电工、传感等其他产品可复用的 DP 能力。
说明:自定义 DP 接口函数为
void app_tuya_vendor_light_dp_data(u8 *par, int par_len)
,您可在此函数下添加自定义 DP 功能。
涂鸦定义 DP | 名称 | 含义 |
---|---|---|
2 | 模式 | 用于切换灯的工作模式,例如白光、彩光、场景、音乐律动等 |
6 | 场景 | 1. 涂鸦自定义场景 2. 可增加最多至8个场景 3. 每个场景至多8个单元 4. 模式:静态、渐变、跳变 |
7 | 倒计时 | 1. 仅支持本地倒计时开关 2. 断电或App操作开关后即失效 |
8 | 音乐律动 | App依据音乐将HSV发送给设备端执行 |
33 | 断电记忆 | 1. 开启和关闭断电记忆 2. 开启后可选择以下三种模式 0x00 初始默认值 0x01 恢复记忆值 0x02 用户定制(HSVBT) |
34 | 通电勿扰 | 1. 开启和关闭通电勿扰 2. 开启后,在关灯5s后,首次上电不会亮灯,5s内再次上电才会亮灯 3. 用于有经常断电风险的地区 |
100-200 | 自定义DP | 用户自定义DP功能可在此范围内增加自己自定义功能 |
说明:特殊DP介绍,因为
6
场景和8
音乐律动的原始协议过长,不适合蓝牙 mesh 使用,因此涂鸦在应用和网关层压缩了协议。当设备收到此DP后,需要进行解压协议才能使用,BLE 模组 SDK已全部实现。
原始数据(与 Wi-Fi 通信场景数据一致):
类型:字符
Value:0011223344445555666677778888
数值 | 含义 |
---|---|
00 | 情景号 |
11 | 单元切换时间(0-100) |
22 | 单元变化时间(0-100) |
33 | 单元变化模式(0静态 1跳变 2渐变) |
4444 | H(色度: 0-360,0x0000-0x0168) |
5555 | S(饱和度: 0-1000,0x0000-0x03E8) |
6666 | V(明度: 0-1000,0x0000-0x03E8) |
7777 | 白光亮度(0-1000,0x0000-0x03E8) |
8888 | 色温值(0-1000,0x0000-0x03E8) |
说明:数字1-8的标号对应有多少单元就有多少组,最多8个单元。
蓝牙 mesh压缩协议如下:
公共头 | 公共头 | 第一单元 | |||||
---|---|---|---|---|---|---|---|
0000 11xx | x222 2222 | 彩光模式 | 3xx4 5566 | 4444 4444 | 5555 5555 | 6666 6666 | |
白光模式 | 3xxx 4455 | 4444 4444 | 5555 5555 | xxxx xxxx |
数值 | 含义 | |
---|---|---|
0 | 情景号:占 4 bit 数值 1-8 | |
1 | 变化模式:占 2 bit 渐变、跳变、静态 | |
2 | 变化时间:占 7 bit 0-100 单元变化时间与切换时间相同,故此处采用一个7bit来表示 | |
3 | 色彩模式:占 1 bit 0 为白光模式 1 为彩光模式 模式不同,单元数据含义不同 | |
彩光模式 | 4 | H:占 9 bit |
彩光模式 | 5 | S:占 10 bit |
彩光模式 | 6 | V:占 10 bit |
白光模式 | 4 | lightness:占 10 bit |
白光模式 | 5 | tempture:占 10 bit |
白光模式 | 6 | null |
原始数据(与 Wi-Fi 通信场景数据一致):
类型:字符串
Value:011112222333344445555
数值 | 含义 |
---|---|
0 | 变化方式 0表示直接输出,1表示渐变 |
1111 | H(色度: 0-360,0x0000-0x0168) |
2222 | S(饱和度: 0-1000,0x0000-0x03E8) |
3333 | V(明度: 0-1000,0x0000-0x03E8) |
4444 | 白光亮度(0-1000,0x0000-0x03E8) |
5555 | 色温值(0-1000,0x0000-0x03E8) |
蓝牙 mesh压缩协议如下:
第一字节 | 第二字节 | 第三字节 | 第四字节 |
---|---|---|---|
01xx 2233 | 1111 1111 | 2222 2222 | 3333 3333 |
数值 | 字段说明 | 长度(byte) | 数据代表说明 |
---|---|---|---|
0 | 变化方式 | 1 | 8bit:0HxxSSVV 最高位: 0 表示跳变,1 表示渐变 |
1 | H | 1 | 0-360.360占9个bit,1Byte只有8bit,需要向"变化方式"借 1 bit,借来的值补充为最高位 |
2 | S | 1 | 0-1000.1000占10个bit,1Byte只有 8 bit,需要向"变化方式"借 2 bit,借来的值补充为最高位 |
3 | V | 1 | 0-1000.1000占10个bit,1Byte只有 8 bit,需要向"变化方式"借 2 bit,借来的值补充为最高位 |
遥控器控制DP接口函数为 void ty_light_remote_dp_data(u8 * par, int par_len)
涂鸦命令 | 涂鸦名称 | 含义 |
---|---|---|
0x81 | 订阅遥控器 | 1. 将设备添加入遥控器的群组 2. 订阅完成后,遥控器可以控制该灯 |
0x83 | 亮度 | 遥控器控制灯的亮度 |
0x87 | 喜好收藏 | 1. 喜好收藏:收到该命令时设备将当前的状态记录下来,形成一个喜好组并收藏 2. 喜好执行:收到该命令时设备取出之前收藏的喜好组,并将设备状态切换为收藏的状态 |
从 GitHub 获取到 SDK 和 Demo 后,tuya_smesh_sdk_tlsr825x_light 开发包中的文件及相关介绍如下:
文件名 | 文件介绍 | 注意事项 |
---|---|---|
app_common.c | 常用功能,app初始化、运行,处理mesh网络DP数据 | 最主要的c文件 |
app_factory_test.c | 产测相关程序 | 运行的是涂鸦标准的产测,如无特殊情况,不要改动 |
app_light_cmd.c | 灯光功能命令设置和读取 | 设置(读取)灯的模式、亮度、色温等一系列功能 |
app_light_control.c | 灯光控制及保存参数 | 根据模式控制灯,依据app_light_cmd.c里函数设置下来的参数控制灯的运行 |
app_light_prompt.c | 应用程序指示灯提示 | 主要用于放置灯未配网的提示 |
app_light_uart.c | 串口灯应用 | 对 app_uart.c 里面的数据内容进行进一步解析,主要是串口灯应用部分,具体协议参考 BLE Mesh 通用串口协议 |
app_rssi.c | 产测相关,检测 dongle 的rssi | 检测 dongle 的信号强度,确认是否需要进入产测 |
app_uart.c | 通用串口协议和产测协议数据初始化、处理 | 用于烧录授权信息,客户也可以用于与MCU交互 |
tuya_node_init.c | mesh 网络参数初始化,设置或读取 mesh 相关配置值,如能力值、pid等 | 运行的是涂鸦标准的初始化,如无特殊情况,不要改动 |
ty_fifo.h | fifo输入输出组件 | 由上层UART调用 |
ty_gpio_base_test.h | 模块gpio测试组件 | |
ty_light_basis_hw_timer.h | 硬件定时器组件 | 10ms 中断处理灯的渐变 |
ty_light_basis_sw_timer.h | 事件回调组件 | 由 ty_light_basis_sw_timer_start 调用 |
ty_light_basis_soc_gpio.h | IO口的初始化,读写组件 | 将平台上的1、2、3等映射到真正的 GPIO 上 |
ty_light_basis_tools.h | 常用工具组件 | |
ty_light_cfg.h | 灯类 json 数据初始化组件 | |
ty_light_driver_set.h | 灯类驱动设置:PWM 或 I2C(两款驱动芯片)组件 | 对外是 ty_ty_light_driver_set_rgbcw,直接控制 rgbcw 的值(0-20000) |
ty_light_gradual.h | 灯光渐变组件 | |
ty_light_json.h | json文件读取组件 | |
ty_light_mdev.h | 整灯产测(含老化等)组件 | |
ty_light_remote.h | 遥控器控制组件 | |
ty_light_save.h | 灯功能数据存储组件 | |
ty_nv.h | 底层flash存储组件 | |
ty_light_sence.h | 场景灯光控制组件 | |
ty_rssi_base_test.h | 底层rssi测试程序组件 | |
ty_string_op.h | 字符串、十六进制等相互转换程序组件 | |
ty_timer_event.h | 定时器任务初始化、运行、添加、删除功能程序组件 | 对外接口是 ty_timer_event_add return 0:循环执行 return -1:停止执行 return 正数:更新时间后继续执行 |
ty_uart_cmd_sever_for_factory_test.h | 产测相关协议底层处理组件 |
文件名 | 函数名 | 函数作用 | 备注 |
---|---|---|---|
app_common.c | void mesh_app_init(void) | 用于应用层逻辑的初始化 | |
app_common.c | void mesh_main_run(void) | 用于应用层逻辑的周期性执行 | |
app_common.c | void mesh_factory_reset(void) | 设备被重置前会调用该函数,用于应用层在设备重置时清空一些应用层级别的 flash 数据 | |
app_common.c | void app_tuya_mdev_test(uint8_t is_Authorized, uint8_t rssi) | 烧录授权时的产测回调函数,一般不要改,不要动 | |
app_common.c | void mesh_state_callback(mesh_state_t stat) | 各种mesh状态发生变化时,会调用该函数,通知给应用层(看 mesh_state_t 可知道有哪些信息会上报) | |
app_common.c | void tuya_mesh_data_recv_callback(uint16_t src_addr, uint16_t dst_addr, uint32_t opcode, uint8_t *data, uint16_t data_len, uint8_t ttl) | 手机 -> 设备的数据回调函数(非常重要) src_addr[in]:数据源地址 dst_addr[in]:数据目的地址 opcode[in]:命令字 data[in]:数据指针 data_len[in]:数据长度 ttl[in]:数据剩余转发次数 |
|
app_common.c | void mesh_oem_config_init(void) | 读取flash或json配置文件 | |
app_light_control.c | OPERATE_LIGHT app_light_ctrl_proc(void) | 灯控制函数 | |
app_light_control.c | void app_light_ctrl_loop(void) | 在void mesh_main_run(void)中运行,定时调度灯控任务 | |
app_light_control.c | OPERATE_LIGHT app_light_real_time_ctrl_proc(void) | 实时控灯,用于音乐律动 | |
app_light_prompt.c | void app_light_ctrl_prompt_start(void) | 配网时指示灯开启 | |
app_light_prompt.c | void app_light_ctrl_prompt_stop(void) | 配网时指示灯关闭 | |
app_uart.c | void app_uart_init(void) | 除了串口初始化,还有 FIFO 初始化、存储初始化、产测初始化、与mcu通信初始化 | |
app_uart.c | void app_uart_run(void) | 是一个 loop 函数,不断执行从串口读取数据,放入 fifo 中 | 此外还有两个 loop 函数在这个总的 loop 中执行: app_factory_test_run(); uart_server_run();//解析FIFO中的数据,并调用相应的处理函数 |
app_uart.c | static void app_uart_server_run(void) | 按照串口协议解析 FIFO 中的串口数据,获取有效的数据帧,根据数据帧类别,分别送到: 产测数据处理接口app_factory_test_cmd(cmd,&buf[F_DATA],len) 与MCU通信的串口对接数据处理接口ty_uart_cmd_server.receive_cmd(u8 cmd, u8 fur, u8 *para, u8 len) |
HEAD中是A5 5A表示是 MCU发来的数据。是66 AA表示是产测上位机发来的数据。 |
app_uart.c | int app_mesh_uart_write(u8 fur, u8 *params, u8 len) | 将mesh网络中灯的命令或信息发送给MCU | 是否发送取决于 ty_uart_cmd_server_get_txtomcu_flag() MCU发送命令给BT设置 ty_uart_cmd_server_set_txtomcu_flag(bool flag) |
app_uart.c | void app_mesh_uart_upload(u8 *params, u8 len, u8 is_group) | MCU透传DP数据 | |
app_uart.c | void app_mesh_uart_read(u8 fur, u8 *params, u8 len) | MCU读取灯功能信息、场景ID、完整场景、倒计时、mesh状态 | |
app_uart.c | void app_mesh_uart_ctl(u8 fur, u8 *params, u8 len) | MCU控制灯功能、场景ID、完整场景、倒计时,BT重置 | |
tuya_sigmesh_hal.c | void tuya_mesh_node_init(node_info_t *node_info) | mesh 节点初始化,相关能力的配置,node_info[in]:节点能力设置 | 设备初始化流程,必须调用 |
tuya_sigmesh_hal.c | void tuya_mesh_data_send(uint16_t src_addr, uint16_t dst_addr, uint32_t opcode, uint8_t *data, uint16_t data_len, uint16_t appkey_idx, uint8_t is_rsp) | mesh 数据发送 API src_addr[in]:数据源地址 dst_addr[in]:数据目的地址 opcode[in]:命令字 data[in]:数据指针 data_len[in]:数据长度 appkey_idx[in]:使用的app_key is_rsp[in]:是否status回复 |
|
tuya_sigmesh_hal.c | void tuya_primary_ele_addr_set(uint16_t addr, int save) | 设置设备的 unicast addr addr[in]:设备地址 save[in]:是否flash记忆 |
|
tuya_sigmesh_hal.c | uint16_t get_primary_ele_addr(void) | 获取设备的 unicast addr | |
tuya_sigmesh_hal.c | void tuya_mesh_devkey_set(uint8_t *key) | 主动更新设备的devkey | |
tuya_sigmesh_hal.c | void tuya_mesh_network_reset_with_restore(uint16_t restore_time_s) | 将设备移除网络并恢复到配网状态,且配置超时时间,超时后恢复到移除前的网络 | |
tuya_sigmesh_hal.c | void tuya_mesh_rf_power_set(TUYA_RF_Power level) | 设置发射功率 | |
tuya_sigmesh_hal.c | void tuya_mesh_uuid_set(uint8_t *uuid) | uuid 更新接口 | |
tuya_sigmesh_hal.c | void tuya_gatt_adv_beacon_enable(uint8_t enable) | 广播 beacon 使能 | |
tuya_sigmesh_hal.c | uint8_t get_if_prov_success(void) | 获取设备配网状态 | |
fast_provision_model.c | int mesh_reset_network(u8 provision_enable, u16 recover_time_s) | 将设备移除网络并恢复到配网状态 | |
tuya_node_init.c | void tuya_pid_set(uint8_t *pid) | PID 更新接口,不调用则默认用授权的PID | 8字节长度的PID字符串 |
tuya_node_init.c | void app_tuya_mesh_category_set(uint16_t mesh_category) | mesh 设备能力值配置 | |
hal_hw_timer.c | OPERATE_LIGHT ty_light_basis_hw_timer_start(IN u32 uiCycleUs, IN void* pCallback) | 硬件定时任务,用于灯光渐变任务 | |
hal_hw_timer.c | OPERATE_LIGHT ty_light_basis_hw_timer_stop(void) | 关闭硬件定时任务,用于灯光渐变任务 | |
ty_light_basis_sw_timer.c | OPERATE_LIGHT ty_light_basis_sw_timer_start(IN u8 ucTimerID, IN u32 uiCycleMs, IN void* pCallback); | 软件定时任务,用于灯光控制任务 | |
ty_light_basis_sw_timer.c | OPERATE_LIGHT ty_light_basis_sw_timer_stop(IN u8 ucTimerID); | 关闭软件定时任务,用于灯光控制任务 | |
ty_light_basis_sw_timer.c | void ty_light_basis_sw_timer_handler(void); | 处理定时任务 | |
ty_light_driver_set.c | OPERATE_LIGHT ty_light_driver_set_init(IN DRIVER_CONFIG_T *pLightConfig); | 灯驱动初始化,有三种模式: PwmInit Sm2135Init tSm16726bInit |
|
ty_light_gradual.c | void ty_light_gradual_hw_timer_handler(void); | 灯光渐变定时任务 | |
ty_light_remote.c | void ty_light_remote_dp_data(u8 * par, int par_len); | 遥控器DP控制处理 | |
ty_light_scene.c | void ty_light_scene_cmd_sync(u8 uint_num) | 场景同步 | |
ty_light_scene.c | void ty_light_scene_ctrl_change_start(IN u32 uiChangeTimeMs) | 定时时间后开始场景改变 | |
ty_light_scene.c | OPERATE_LIGHT ty_light_scene_ctrl_change(OUT bool *pCycleEnable, OUT u32 *pCycleTimeMs) | 将场景控制信息转变为RGBCW所需的值 |
涂鸦已提供基础 JSON 模板参考:
类别 | JSON 名 | 名称 | 客户需改动 | 含义 |
---|---|---|---|---|
json head | name | 固件标识名 | 是 | 1.首先在涂鸦平台创建固件标识名 2.上传的固件名称与涂鸦平台一致 |
json head | description | 配置功能 | 可 | 仅用于描述该固件 |
json head | version | 固件版本 | 是 | 形式x.x |
json head | ic | 芯片型号 | 否 | tlsr825x |
json head | hardware | 硬件模块 | 否 | TYBT3L |
json head | log | 打印调试信息 | 可 | 1.调试是可以为1,将log信息输出 2.成品固件必须设置为0 |
json head | oem | 固件形式 | 否 | 必须为0 |
json head | json_config | JSON 可配 | 否 | 必须为0 |
json head | kind | 设备能力 | 否 | 默认即可 |
json head | pid | pid名称 | 是 | 填写产品pid |
json head | vendorid | 品类信息 | 是 | 1.一路灯:1011 2.两路灯:1012 3.三路灯:1013 4.四路灯:1014 5.五路灯:1015 |
power_reset_cnt | 复位次数 | 否 | 默认即可,因为灯不采用此位置的值,而是采用rstnum | |
power_reset_time | 重置时间 | 可 | 上电后N久断电,判断为一次通断电,默认设置为5s | |
power_reset_recover_time | 网络恢复时间 | 可 | 通断电重置之后,在不重新配网或不通断电的情况下,多久恢复网络,默认为600s | |
local_control | 本地控制 | 否 | 默认即可 | |
功能宏 | light_cfg_init_param_check | 初始化参数检验 | 否 | 默认即可,默认为0 |
功能宏 | light_cfg_prod_driver_need_init | 产测参数重新初始化 | 否 | 默认即可,默认为0 |
功能宏 | light_cfg_3in1_save | 保存方式 | 否 | 默认即可,默认为0 |
功能宏 | light_cfg_remote_enable | 是否支持mesh遥控器 | 可 | 0:不支持 1:支持 |
功能宏 | light_cfg_uart_enable | 是否支持灯型串口 | 可 | 0:不支持 1:支持 具体协议参考 BLE Mesh 通用串口协议 |
Jsonver | JSON 配置版本 | 否 | 默认即可 | |
category | 设备类型 | 是 | 与vendorid保持一致 | |
module | 模块选型 | 是 | 1,BT8C 2.非BT8C模块填BT3L |
|
cmod | 方案选型 | 是 | 1.一路灯:c 2.两路灯:cw 3.三路灯:rgb 4.四路灯:rgbc 5.五路灯:rgbcw |
|
dmod | 产品驱动方式 | 是 | 0:PWM驱动 1:SM16726B 2:SM2135E |
|
cwtype | 色温调节驱动方式 | 是 | 0:CW - 冷光、暖光 1:CCT - 亮度、色温 |
|
onoffmode | 开关渐变 | 是 | 0:开关时有渐变 1:开关时无渐变 |
|
pmemory | 断电记忆 | 是 | 0:无断电记忆 1:有断电记忆 |
|
defcolor | 常亮默认颜色 | 是 | 彩光可选:r、g、b 白光可选:c |
|
defbright | 常亮默认亮度 | 是 | 范围:10~100 | |
deftemp | 常亮默认色温 | 是 | defcolor为c时有效 范围:0~100 |
|
cwmaxp | 冷暖混色最大功率 | 是 | 默认为100 范围:100~200,间距:10 |
|
brightmin | 白光亮度最小值 | 是 | 范围:1~100,间距:1 | |
brightmax | 白光亮度最大值 | 是 | 范围:1~100,间距:1 | |
colormin | 彩光亮度最小值 | 是 | 范围:1~100,间距:1 | |
colormax | 彩光亮度最大值 | 是 | 范围:1~100,间距:1 | |
wfcfg | 首次配网触发方式 | 是 | spcl:手动切换后闪烁 spcl_auto:上电闪烁后常亮 |
|
remdmode | 配网提醒方式 | 是 | 0:呼吸提醒 1:闪烁提醒 |
|
rstmode | 触发配网方式 | 否 | 默认为0 | |
rstnum | 通断电复位次数 | 是 | 范围:3~10,间距:1 | |
rstcor | 配网时提醒颜色 | 是 | 彩光可选:r、g、b 白光可选:c |
|
rstbr | 配网时提醒亮度 | 是 | 范围:10~100 | |
rsttemp | 配网时提醒色温 | 是 | rstcor为c时有效 范围:0~100 |
|
pairt | 配网提醒的时间 | 是 | 范围:6~600 注:呼吸提醒时,时间建议为6 注:呼吸提醒时,时间建议为6,呼吸期间会暂停配网 |
|
prodagain | 重复进入产测1 | 是 | 0:不支持 1:支持 |
|
cagt | 产测1白光老化时间 | 是 | 单位分钟 | |
wt | 产测1暖光老化时间 | 是 | 单位分钟 | |
rgbt | 产测1彩光老化时间 | 是 | 单位分钟 | |
colorpfun | 彩光混光功率限制 | 是 | 0:不限制 1:限制 |
|
colormaxp | 彩光混光最大功率 | 是 | 范围:100-200 | |
notdisturb | 勿扰模式 | 是 | 0:关闭 1:开启 |
|
PWM | pmwhz | PWM 频率 | 是 | 范围:500~20000;间距:100 |
PWM | r_pin/g_pin/ b_pin/c_pin/ w_pin |
rgbcw引脚 | 是 | 填写0~14,引脚对应关系如下 0:GPIO_PB1 1:GPIO_PB7 2:GPIO_PB5 3:GPIO_PB4 4:GPIO_PA0 6:GPIO_PC0 7:GPIO_PC2 8:GPIO_PC3 9:GPIO_PD2 10:GPIO_PD7 11:GPIO_PC4 12:GPIO_PB0 13:GPIO_PC5 14:GPIO_PC1 |
PWM | r_lv/g_lv/ b_lv/c_lv/ w_lv |
有效电平 | 是 | 默认为1 所有引脚必须保持一致 1:高电平点亮 0:低电平点亮 |
IIC芯片驱动 | iicr/iicg/iicb /iicc/iicw |
rgbcw通道 | 是 | 配置为01234 |
IIC芯片驱动 | iicscl | I2C SCL 管脚号 | 是 | IIC驱动必填 |
IIC芯片驱动 | iicsda | I2C SDA 管脚号 | 是 | IIC驱动必填 |
IIC芯片驱动 | ctrl_pin | 控制引脚 | 是 | SM16726B必填 |
IIC芯片驱动 | ctrl_lv | 电平控制配置 | 是 | SM16726B必填 1:高电平有效 0:低电平有效 |
IIC芯片驱动 | campere | SM2135彩光输出最大电流 | 是 | sm2135E驱动必填 范围:10~45,间距:5,默认值:20 |
IIC芯片驱动 | wampere | SM2135白光输出最大电流 | 是 | sm2135E驱动必填 范围:10~80,间距:5,默认值:30 |
crc | 校验 | 否 | 无需改动,不校验 |
本小节以泰凌(Telink)蓝牙芯片为例,介绍如何在 Windows 系统上搭建调试环境。
访问 Telink 官方文档 IDE for TLSR8 Chips,根据教程安装 Telink IDE。
将 doc\tools\jq-win64.exe
放入 C:\TelinkSDK\bin\
。
将以下路径加入系统环境变量中:
C:\TelinkSDK\opt\Vim\vim73\
C:\TelinkSDK\opt\tc32\bin\
C:\TelinkSDK\bin\
C:\TelinkSDK\opt\tc32\tools\
访问 Telink 官方文档 烧录工具,下载和安装 BDT 烧录工具。
(可选)安装 git-for-win。
注意:如果您不熟悉 Git 的版本控制流程,建议您全部采用默认安装,如果电脑上已经有
git-bash
等可以运行 Shell 脚本的软件,则可以不用安装。
(可选)如无 _build
文件,您可以在 common/tools
路径中运行 bash cmake.sh mesh_light tlsr825x_smesh
生成 _build
文件,其中您需要自定义文件名称。
利用 app/mesh_common/_build
中的 run.sh
脚本,可以实现编译、烧录。
bash run.sh build/flash [demo.json]
该脚本会依据 [demo.json] 转变为 _build/base_oem_config.h
,其中有大量的宏定义,用于让同一个应用代码,能生成不同的应用程序。例如,您只需要改动生成固件的名字、版本号、PID等信息时,不需要改动代码,只需要改动该 json 配置文件。
$ cd app/mesh_common/_build
$ bash run.sh build 5rgbcw_bt3l_pwm_V1.0.json
将烧写器的SWM引脚与开发板的SWS引脚相连,烧写器通过 USB 连接到电脑上,开发板单独供电并保持共地。
打开 Telink 烧写调试助手 (BTD),选择 8258 芯片,单击 SWS 初始配置烧写器。
让烧写器可以烧录 8258 型号芯片,往往只需要 SWS 一次即可。
上面准备工作做好后,可以直接利用 run.sh 将 bin 文件烧录到开发板。
$ bash run.sh flash 5rgbcw_bt3l_pwm_V1.0.json
说明:
run.sh
提供多种能力:build(编译)、flash(烧录)、flash_all(全部擦除后烧录)、clean(清除编译信息)。
授权码找对应的产品经理,所有设备必须授权才能配网使用。
按以下步骤在涂鸦开发者平台上创建产品并获得 PID。完成以下步骤后,PID 的功能才完全实现,否则会出现产品功能不完善的故障。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈