CH58x涂鸦接入流程
前言:
针对涂鸦接入CH58x芯片做讲解。
一.资料
从WCH申请资料如下:

用户自行准备涂鸦授权码三元组(xlsx格式的表格)
代码注意选择三元组添加方式:

二.烧录
①上位机配置,配置完成后点击“生成烧录工具”

②烧录,按下开发板的PB22引脚,进入boot模式,点击烧录工具的“查找设备”可以获取到设备列表待烧录设备信息
注意,如果无法识别到芯片,可以检查用ISP工具是否可以识别到,并确保芯片是CH584系列

三、测试
默认代码日志输出是PB7(TXD):

手机下载涂鸦APP,点击右上角添加设备即可成功。


四、注意点
1.接入涂鸦平台,务必先从涂鸦官方途径获取授权码三元组;
2.按照上述流程操作,如果出现日志不正确,优先检查芯片是否匹配,需要使用CH584M或者CH584F。
五、个人记录,调试用
#if 0
#if TUYA_SDK_DEBUG_MODE //该宏置1使用原厂烧写工具授权
__attribute__((aligned(4))) uint32_t read_BUF[2];
EEPROM_READ(0x7D30,read_BUF,12); //读取data flash的涂鸦三元组中的MAC
if ((read_BUF[0]==0xFFFFFFFF)&&(read_BUF[1]==0xFFFF)) {
printf("ERROR MAC\r\n");
}
else {
convert_ascii_to_hex_array((uint8_t *)read_BUF, MacAddr, 12); //转换并合并数据
}
#else //该宏置0使用TUYA产测工具uart授权
__attribute__((aligned(4))) uint32_t read_BUF[64];
EEPROM_READ(0,read_BUF,256); //读取data flash的涂鸦三元组
uint8_t buf1[256];
memcpy(buf1,read_BUF,256);
if ((buf1[43]==0xFF)&&(buf1[44]==0xFF)&&(buf1[45]==0xFF) //取出MAC
&&(buf1[46]==0xFF)&&(buf1[47]==0xFF)&&(buf1[48]==0xFF)) {
PRINT("first run\r\n");
}
else {
memcpy(MacAddr,&buf1[40],6);
}
#endif
#else
MacAddr[0] = 0xDC;
MacAddr[1] = 0x23;
MacAddr[2] = 0x53;
MacAddr[3] = 0x4F;
MacAddr[4] = 0xEF;
MacAddr[5] = 0x17;
#endif
#if 0
#define TY_DEVICE_NAME "TyOS12"
#define TY_DEVICE_PID "wghpmfwz"
#define TY_DEVICE_MAC "DC234DAFCC96"
#define TY_DEVICE_DID "uuid77aedf5beed1" //16Bytes// tuya07d9624bc2e5
#define TY_DEVICE_AUTH_KEY "OuDfYzm6tcZIi033MWPpnsnwziUthGOH" //32Bytes//fs1RKoeL4W3AYNFSCRgCW2ev6tOFmeer
#define TY_ADV_INTERVAL 500 //range: 20~10240ms
#define TY_CONN_INTERVAL_MIN 100 //range: 7.5~4000ms
#define TY_CONN_INTERVAL_MAX 100 //range: 7.5~4000ms
#else
#define TY_DEVICE_NAME "TyOC12"
#define TY_DEVICE_PID "cajzpxiu"
#define TY_DEVICE_MAC "DC23534FEF17"
#define TY_DEVICE_DID "uuid607fc4bbd3fd"
#define TY_DEVICE_AUTH_KEY "AAh3QuHid8hOXiaDHe4hNMB7ymqJYikl"
#define TY_ADV_INTERVAL 100 //range: 20~10240ms
#define TY_CONN_INTERVAL_MIN 100 //range: 7.5~4000ms
#define TY_CONN_INTERVAL_MAX 100 //range: 7.5~4000ms
#endif
浙公网安备 33010602011771号