AW31开发指导文档
📎 原始文档:https://www.kdocs.cn/l/cfvDLtQ410RD AW31开发指导文档
📌重要链接
📌发布资料
📌补丁
补丁等级说明
A 类:问题修复,客户必须修复
B 类:性能优化,客户可选择修复
C 类:功能增加,客户可选择
| 日期 | 补丁下载链接 | 等级、说明 | 适用sdk |
|---|---|---|---|
| 20251107 | 烧录器导fw会报错 https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/ID53K9 | A级,必须打补丁 | 只用于130版本 |
| 20251107 | AW31N_v130-补丁-20251107.zip | A级,必须打补丁 | 只用于130版本 |
| 20251107 | IOVDD供电配置问题 https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/ICXAUZ | A级,必须打补丁 | 只用于130版本 |
| 20250324 | [202503241940]bd47loader.zip | A级,必须打补丁 | 适用所有sdk |
| 20250102 | AW31N_开机&低功耗&VM兼容性修复说明_20250102.zip | A级,必须打补丁 | 110和120版本 |
📌demo程序
demo程序使用方式:demo程序使用方式
- 开发工具及环境
- IDE编译器安装 下载链接:https://doc.zh-jieli.com/Tools/zh-cn/other_info/index.html
至少需要安装这3个。
相关链接:
IOT-AC630N: AC630N系列问题、demo、工具等整理汇总
AC630N系列问题、demo、工具等整理汇总
先安装 codeblock 编辑器、再安装 工具链、最后安装包管理器。 - 开发板 淘宝店购买链接:
https://item.taobao.com/item.htm?id=817701311470&spm=a21xtw.29178619.0.0&pisk=gGd-AZ_nqmmup7ORoUk0KOW2SvuD9xYPM38_tMjudnKvR3slxg6CGZ_GWaa7Ne_C9ntnzgYI4Hddc_6eEMjlv6LeXqmisfYyz65SjccgKVA11__5AgNIRi_FWqb7OUwgj65Ijc20OTlOT3gRL-27hZsVJwN5FH6jGwSfPaNBAi6f5Nq5OHtCcr_1R8wQOg_jGi75PuN5Ossf-wFQV6tBlqQ1cM1CFHTjNxodczs39dlVXn8oZZVQOIQRhxY5cPfJGaIAXUO8_5JFyTI6PinSw6tVheWpTyPdpU9wYNt7VDIeMEOWChi0Eg9OJFvpPbNfZQ8WC9OsYJTPZgCXNdUQOECRqHddBunAfQ8X_s6m1VLXg3YyMe4IOZxGcUR59fgNw_s5MZRn07sphpOlU6rSvMRvlQ9d4LOM6RxbjGQ3Fq3YLJW5ucnG8LkcP_uAkG0-9JyF3q7Ajq78LJWXTZIioM2ULtXf.
- 下载工具(强制升级工具V4.0) 淘宝店铺购买链接:
https://item.taobao.com/item.htm?id=620295020803&spm=a21xtw.29178619.0.0&pisk=g2hEba02wBdFFZrLKfNP3EjzPANLO7-X8bZ7r40uRkq3Abirrz47-_43-5Agol1WJW98a0rZ2kwQtbkOaq3-OeFWJW3Lw7xXcIGrJ2F-RIpiTXyMsz0GZyVkC5bgfts9cIOjJp4LNVxjNpoT5yafZ723ElVgXz_3q023IlqTyzj3r6Yw7lURqMVu-Obgrrb3Zz2oSR4Quu4uZ_0gjlUuZ_muZFPgXzcRV20l_rwHPeaylMjPXRqm-l5lgZUUKXdYX_bEsyuaX20RZ_ca8JliL0vXeJMok-hIzQ5TOqkgszlJoTrz3YcQsXxMiReosc4iAU687YuoMWedy_n4T0ymtR7lwWVu45ziiU6YffrIqXyMlsy7sjw0tA99A8NUu0cKYa5omVgj9Rhy0Gq-drFgzbLcUuyl4YS8SyxZwvSlUJ4T7oTw72HJhxFlzhZGeTegMPrXRy6ReJTU7oTFgTB8p3Uaceph.
外壳可以拆开,里面有拨开开关
使用说明:https://doc.zh-jieli.com/Tools/zh-cn/dev_tools/forced_upgrade/index.html
- AW31下载说明:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/I9JB33
- 无法下载时检查方式:https://gitee.com/Jieli-Tech/fw-AC63_BT_SDK/issues/IAHLFF
- 调试打印:https://gitee.com/jieli-tech_fae/IOT-AC630N/blob/master/doc/software/%E5%85%A5%E9%97%A8/%E4%B8%8B%E8%BD%BD%E8%B0%83%E8%AF%95%E8%AF%B4%E6%98%8E.md
- 打印工具 自己网上购买 CH340的USB转串口工具,不要使用下载工具去当串口工具使用。
https://item.taobao.com/item.htm?ut_sk=1.ZcWApDDHvFMDAGRCA8Q2Jk5J_21380790_1747719929576.Copy.1&id=522571378803&sourceType=item&price=4.8&suid=0B769916-5BB8-4A47-8776-7358C99E161F&shareUniqueId=31666222863&un=2d22a0165b9e67c9bbeeeafdb2768e28&share_crt_v=1&un_site=0&spm=a2159r.13376460.0.0&wxsign=tbwBfLXARYXDDGWri0MwQU8yeR1tE9MI7KaRjNG32wjoGDB8Lm1-8zHmkeL4Ii3YO_faIytrDO4sRR6xYpfAq2R53zPRYs28DhVFMRw9vaW2ldOIPdhhtpZ39AfvTYhdEFt&tbSocialPopKey=shareItem&sp_tk=QndWOFZRUWFoclc%3D&cpp=1&shareurl=true&short_name=h.6tP4jV1mrYJEsh7&bxsign=scdcIkCo5ZEjofIJBwHAYKDLqOYVn04NO3F-Y2FDos7lwucM4iQcabmEE_24MScefxzUFlo4rYtcZhiwt3LTl9BAx2Xy1wNfLdxdUna9wOvETZlje2xDFZyWcNSAPTj-PRp&tk=BwV8VQQahrW&app=chrome

- 烧录工具 量产烧录器有2种:一拖二烧录器、一拖八烧录器,均没有开源淘宝店购买链接,只能联系杰理代理商购买。
- 一拖二烧录器
一拖二烧录器使用说明:https://doc.zh-jieli.com/Tools/zh-cn/mass_prod_tools/burner_1tuo2/index.html
烧录报错:https://doc.zh-jieli.com/Tools/zh-cn/mass_prod_tools/burner_1tuo2/status_errors.html#id12 - 一拖八烧录器
一拖八烧录器使用说明:https://doc.zh-jieli.com/Tools/zh-cn/mass_prod_tools/burner_1tuo8/index.html
烧录报错:https://doc.zh-jieli.com/Tools/zh-cn/mass_prod_tools/burner_1tuo8/status_errors.html#targe-1tuo8-ldc-show-err - 烧录座子 烧录座子没有开源淘宝购买链接,只能联系杰理代理商购买。
每个型号都是独立的座子,不能混用。
- 测试工具
- 杰理测试盒
淘宝购买链接:
https://item.taobao.com/item.htm?id=620942507511&spm=a21xtw.29178619.0.0&pisk=g1_rbf1aJzUyIZvJqZTEb5v3xLTJyey_aw9Bt6fHNLvkFw6FtBABZ2AkZE4DsKgQwUZp89JVpLtWrwSx81CdP7LQwUCJJe2_CP_Fw_Lp_bExualciCfmq0Y3cEcDhcMYCPa1wuAJRs21RuufNQOs-exkxKYDHBGkK9xlimvv9BDkt4V4gKdEEpAkKEfDwCuH-BxhirA9O0vnrQYDoKdH-pXH-S8DHBc7F_fnuCtuO7tzRkkB_3JGZKuNMZRk70Cy3DnCui-yIO9q-2b2a68w__3aAdj9Fh9Gnrgy8sAF3hszQ4WFt1IH0wkuNOXcY9AADJoeQMf5XZtjt0fV8L-GrnlL11Yet9xFDRu6aUs2baS89xflCLSMy6GaFs-N0hdDmXokPG11JhbuzApXXBW2fgyZzOjyZvdDZ-7d4vmeqId2CSPVwME1XecUhKmKvnY9gdNWNDnpV_O2C7uZvDK-LIJ_wuf..
一拖二杰理测试盒使用说明:https://doc.zh-jieli.com/Tools/zh-cn/mass_prod_tools/testbox_1tuo2/index.html
校正频偏用法说明:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IAG6JT
OTA升级用法说明:https://gitee.com/Jieli-Tech/fw-AC63_BT_SDK/issues/I7FRNK
测试按键用法说明:https://gitee.com/Jieli-Tech/fw-AC63_BT_SDK/issues/I7T4RC - 芯片封装型号 已知型号,信息可能不全,具体需要跟商务确认,是否还在正常出货中
| 型号 | 封装 | 容量 | 状态 |
|---|---|---|---|
| AW312A | SOP16 | AW312A2 | 已停产 |
| AW312B | SOP16 | AW312B2/ | 出货中 |
| AW313A | QFN20L | AW313A2/AW313A4 | 出货中 |
| AW314A | TSSOP20 | AW314A2 | 出货中 |
| AW318A | SOP8 | AW318A2/AW318A4 | 出货中 |
| AW318B | SOP8 | AW318B2 | 出货中 |
| AW318C | SOP8 | AW318C2 | 已停产 |
芯片型号测试板 很多型号没有,一般用烧录座子测试。
有的也不外卖,很多代理商会自行设计,建议联系代理商购买,或者自行设计。相关工具
key文件--芯片加密 key文件和烧录器绑定,用于芯片代码加密。key文件和烧录器,都只能跟杰理代理商获取。
- 开发板,和未经烧录器烧录的芯片,都处于未加密的状态,下载的代码是不加密的。下载的代码不能加-key。
- 强制升级工具,下载程序,是无法对芯片进行加密的,只能校验芯片是否加密了。
- 一旦芯片用一拖二或一拖八烧录器,烧录后,芯片就加密了。下载代码就需要添加对应的-key。
- 芯片只能加密一个key,加密后是无法修改成其他的key。
- 不同代理商的key文件,都是不一样的,无法混用和修改的。
- 已加密的芯片,是无法获取加密哪个key的。
- 外发的烧录文件,必须加-key编译生成的,烧录器才能识别。


固件授权工具 没有开放下载,一般是找杰理代理商获取。
可以限制外发的fw烧录固件,烧录次数,避免客户可以无限制烧录。
烧写文件授权工具_2.1.18.zip
固件升级工具

【金山文档 | WPS云文档】 固件升级程序_1.4.47.b-AW31能用版本
https://www.kdocs.cn/l/chrhq54hagIS校验码查看工具



demo程序使用方式

将修改点,移植到自己的程序上即可。硬件设计
电源
VPWR和IOVDD VPWR和IOVDD,千万不能短接。
锂电池、USB 5V、3节干电池 等,接入VPWR引脚。
2节干电池、LDO 3.3V等,接入IOVDD引脚供电,VPWR悬空。纽扣电池 由于蓝牙瞬态功耗较高,超过20mA,因此AW31不适合纽扣电池产品。
常见纽扣电池型号规格参数:
| 电池型号 | 标称电压 | 标称容量 | 工作电流 | 连续电流 | 脉冲电流 | 尺寸:直径*厚度 | 重量 |
|---|---|---|---|---|---|---|---|
| CR3032 | 3V | 550mAh | 0.2mA | 3.0mA | 20mA | 30.0mm*3.2mm | 6.8g |
| CR2477 | 3V | 950mAh | 0.2mA | 3.0mA | 20mA | 24.5mm*7.7mm | 9.9g |
| CR2450 | 3V | 550mAh | 0.2mA | 3.0mA | 20mA | 24.5mm*5.0mm | 5.8g |
| CR2430 | 3V | 270mAh | 0.2mA | 3.0mA | 20mA | 24.5mm*3.0mm | 4.3g |
| CR2412 | 3V | 90mAh | 0.1mA | 1.0mA | 15mA | 24.5mm*1.2mm | 2.2g |
| CR2354 | 3V | 530mAh | 0.2mA | 3.0mA | 20mA | 23.0mm*5.4mm | 6.3g |
| CR2335 | 3V | 300mAh | 0.2mA | 3.0mA | 20mA | 23.0mm*3.5mm | 4.2g |
| CR2330 | 3V | 260mAh | 0.2mA | 2.0mA | 20mA | 23.0mm*3.0mm | 3.7g |
| CR2325 | 3V | 190mAh | 0.2mA | 2.0mA | 20mA | 23.0mm*2.5mm | 3.2g |
| CR2320 | 3V | 130mAh | 0.2mA | 2.0mA | 20mA | 23.0mm*2.0mm | 2.7g |
| CR2032 | 3V | 210mAh | 0.2mA | 2.0mA | 20mA | 20.0mm*3.2mm | 3.0g |
| CR2025 | 3V | 150mAh | 0.2mA | 2.0mA | 20mA | 20.0mm*2.5mm | 2.5g |
| CR2016 | 3V | 75mAh | 0.1mA | 1.0mA | 15mA | 20.0mm*1.6mm | 1.7g |
| CR1632 | 3V | 120mAh | 0.1mA | 1.0mA | 15mA | 16.0mm*3.2mm | 1.8g |
| CR1620 | 3V | 70mAh | 0.1mA | 1.0mA | 10mA | 16.0mm*2.0mm | 1.2g |
| CR1616 | 3V | 50mAh | 0.1mA | 1.0mA | 10mA | 16.0mm*1.6mm | 1.1g |
| CR1225 | 3V | 50mAh | 0.1mA | 1.0mA | 5mA | 12.5mm*2.5mm | 0.9g |
| CR1216 | 3V | 25mAh | 0.1mA | 1.0mA | 5mA | 12.0mm*1.6mm | 0.7g |
| CR1025 | 3V | 30mAh | 0.1mA | 1.0mA | 5mA | 10.0mm*2.5mm | 0.6g |
| CR1220 | 3V | 38mAh | 0.1mA | 1.0mA | 5mA | 12.0mm*2.0mm | 0.8g |
- 生产相关
- 生产--烧录--测试指引 相关链接:
fw-AC63_BT_SDK: Firmware for Generic Bluetooth SDK(AC63 series), Support AC631N/AC635N/AC636N/AC637N/AC632N, compatible with AC69 series without audio support.
Firmware for Generic Bluetooth SDK(AC63 series), Support AC631N/AC635N/AC636N/AC637N/AC632N, compatible with AC69 series without audio support. - 烧录器 详细介绍:烧录工具
- 一拖二烧录配置
- 一拖八烧录配置
- 产测工具
- 测试盒 详细介绍:测试工具
- SDK介绍
- 芯片资源介绍
- ram 芯片总RAM大小为32K,细分为:
- 拥有28K字节SRAM(12K No Retention + 16K Retention)
- 拥有4K字节ICACHE缓存空间 SDK各种常用功能配置下,剩余ram资源大小:
nv_ram:低功耗能保持
nk_ram:低功耗无法保持,进出低功耗,都要重新初始化
AW31 SDK 1.2.0各种基础功能应用:
| 功能集 | 剩余ram |
|---|---|
| 单server | 12836B (nv_ram_remain:0x3224) |
| 单server+低功耗 | 7284B (nk_ram_remain:0x1ac0,nv_ram_remain:0x1b4) |
| 单server+低功耗+测试盒 | 4600B (nk_ram_remain:0x1078,nv_ram_remain:0x180) |
| 单server+低功耗+测试盒+app_ota | 3944B (nk_ram_remain:0xe78, nv_ram_remain:0xf0) |
| 单client | 11384B (nv_ram_remain:0x2c78) |
| 单client+低功耗 | ram不够 |
| 单server+单client | 7324B (nv_ram_remain:0x1c9c) |
| 单server+单client+app_ota | ram不够 |
| 双server | 8104B (nv_ram_remain:0x1fa8) |
| 双client | 7584B (nv_ram_remain:0x1da0) |
| HID+低功耗 | 5748B (nk_ram_remain:0x1520,nv_ram_remain:0x154) |
| HID+低功耗+测试盒+app_ota | 2912B (nk_ram_remain:0xad8,nv_ram_remain:0x88) |
RAM使用介绍:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IAQ5EM
2. flash 目前有2种flash容量可选:2Mbits(256KByte)和4Mbits(512KByte)
具体型号查看:芯片具体型号
3. 芯片对比及芯片选型 AC632、AC636、AW31、AW30这四个芯片资源和功能对比
芯片对比及芯片选型:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IBPOXO
- AW31N_transfer--透传工程 codeblock工程文件:sdk\apps\demo\transfer\board\bd47\AW31N_transfer.cbp
手机设置蓝牙界面,是无法连接的,需要使用APP来连接。
推荐使用安卓手机,安装 nRF Connect
nRF Connect安卓app.zip
【大熊智能nrf connect使用方法_nrfconnect教程-CSDN博客
文章浏览阅读1.3w次,点赞11次,收藏32次。本文介绍了如何使用nRF Connect应用程序进行低功耗蓝牙设备的扫描和过滤。通过扫描功能,可以发现并列出所有广播状态的设备,而过滤功能则允许根据设备名、MAC地址、广播数据类型和RSSI进行筛选。此外,还详细说明了如何连接设备、执行写操作和监听操作。
苹果手机,无法看到mac,无法看原始的hex数据,不好调试。
- CONFIG_APP_LE_TRANS 只做单模BLE从机,支持低功耗、OTA
一般用于产品类型:
- 纯BLE广播:广播遥控器、beacon等
- 和APP连接:带APP控制的各类产品、灯带、按摩器、打印机等
- 被其他client主机连接的从机设备:相机遥控器、云台等
- 和MCU通信的产品:各类已有产品,需要外挂一个BLE芯片做通信
- CONFIG_APP_MULTI 由于ram不够,只支持2路BLE连接,例如:主从一体,双server、双client,且无法支持低功耗和OTA
#define TCFG_LOWPOWER_LOWPOWER_SEL LOWPOWER_CLOSE // 关闭低功耗
#define CONFIG_APP_OTA_EN 0 // 关闭OTA
- 主从一体:支持手机APP连接的同时,还能扫描周围的广播包 #define CONFIG_BT_GATT_CLIENT_NUM 1
#define CONFIG_BT_GATT_SERVER_NUM 1
常用产品:带遥控器的灯带、按摩器、风扇、玩具等、带钥匙的电动车面板等 - 双server从机:支持2个手机同时连接 #define CONFIG_BT_GATT_CLIENT_NUM 0
#define CONFIG_BT_GATT_SERVER_NUM 2
常用产品:电动车BLE模块、门锁BLE模块等 - 双client主机:能连接2个BLE从机设备 #define CONFIG_BT_GATT_CLIENT_NUM 2
#define CONFIG_BT_GATT_SERVER_NUM 0
常用产品:耳机充电仓、控制面板、带开关和遥控器的灯带、风扇等
- CONFIG_APP_NONCONN_24G
- 2.4G的广播方式,单向传输,单次发包最大可以60个字节。
- #define CONFIG_TX_MODE_ENABLE 1 //发射器
- #define CONFIG_RX_MODE_ENABLE 0 //接收器 2个只能开一个,不能同时开。
发射器可以做低功耗和关机,但接收器不能做低功耗和关机,需要一直常待机。
- CONFIG_APP_DONGLE usb dongle 加 BLE client主机功能,可以连接遥控器、鼠标、键盘、手柄、翻页笔等设备。
将蓝牙HID数据,转成USB HID数据上传给电脑。
将蓝牙语音数据,转成USB UAC的PCM数据上传给电脑。
受限于ram资源,使用范围:
- USB语音dongle,只能开1个client,只能连接一个server设备。
- USB键鼠dongle,勉强能开2个client,可以同时连接一个鼠标和一个键盘,但不能带OTA功能。
CONFIG_APP_AT_CHAR_COM 串口模块,杰理AT指令协议。
fw-AW31N_BLE_SDK: Firmware for Generic Bluetooth Low Energy SDK(AW3N series), Support AW31N.
Firmware for Generic Bluetooth Low Energy SDK(AW3N series), Support AW31N.
如果是替换其他方案的串口AT模块,需要自己修改AT协议,一般和其他方案是不一样的。CONFIG_APP_IDLE 空闲模式适用于:MCU应用、充电状态下、假关机状态下。
AW31N_hid--HID工程 codeblock工程文件:sdk\apps\demo\hid\board\bd47\AW31N_hid.cbp
手机设置蓝牙界面上,直接搜索连接的,也同时兼容APP连接,带配对绑定和加密功能。CONFIG_APP_KEYBOARD 音乐遥控器,带有音量加减、上下曲、播放暂停等功能。
CONFIG_APP_KEYFOB 自拍器,默认只有发大小键2种键值。

CONFIG_APP_MOUSE_SINGLE 单模鼠标,BLE server设备,可以被手机电脑蓝牙直连,或者被usb dongle BLE连接。
可以在此基础上,添加USB模式,直连电脑做usb有线鼠标。CONFIG_APP_MOUSE_DUAL 三模鼠标,BLE模式、2.4G高回报率模式、USB模式,需要手动切换,不支持同时共存。
#define SWITCH_MODE_BLE_ENABLE (1 & TCFG_USER_BLE_ENABLE) //使能BLE模式
#define SWITCH_MODE_24G_ENABLE (1 & (CFG_RF_24G_CODE_ID != 0) & TCFG_USER_BLE_ENABLE) //使能2.4G模式
#define SWITCH_MODE_USB_ENABLE TCFG_OTG_USB_DEV_EN
3种模式可以自由组合成双模双模。CONFIG_APP_KEYPAGE 翻页器、抖音神器,存在一定的兼容性问题,因为苹果系统限制,苹果系统更新,导致这个应用也一直在实时更新。
最新版本,可以联系杰理获取。
苹果系统的翻页功能,是模拟鼠标操作的,因此无法做到兼容所有的苹果手机系统,一般是按照最新的IOS版本调试,不考虑旧版本的。
苹果手机需要打开辅助触控功能:设置 -> 辅助功能 -> 触控 -> 辅助触控打开
辅助触控下,有个跟踪灵敏度的调节,一般要么设置为0,要在再10%左右的位置。
CONFIG_APP_REMOTE_CONTROL 红外遥控器,电视遥控器、机顶盒遥控器等。被电视、机顶盒、投影仪等连接。
这种遥控器,无论是蓝牙HID,还是红外码,都是没有统一标准的,都需要根据每款主机适配的。
每个电视厂商、每个省的机顶盒,都有各自的标准,都要适配开发的。
公版sdk红外做的是,NEC编码、海信电视红外键值的。CONFIG_APP_IDLE 空闲模式适用于:MCU应用、充电状态下、假关机状态下。
功能介绍
开关打印
开打印
#define CONFIG_DEBUG_ENABLE //打印总开关,关打印注释此宏
#define TCFG_UART0_ENABLE ENABLE_THIS_MOUDLE //保持,关打印也不要改成disable
#define TCFG_UART0_RX_PORT NO_CONFIG_PORT //保持,不要配置IO
#define TCFG_UART0_TX_PORT IO_PORT_DP //打印口,可配任意IO
#define TCFG_UART0_BAUDRATE 1000000 //建议用1M,用115200打印会死机
#define LIB_DEBUG 1 // 打开底层库打印,代码会变大很多
const char log_tag_const_v_PMU AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(FALSE);
const char log_tag_const_i_PMU AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(TRUE); // 要看底层驱动打印,改成 TRUE
const char log_tag_const_d_PMU AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(TRUE); // 要看底层驱动打印,改成 TRUE
const char log_tag_const_w_PMU AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(TRUE);
const char log_tag_const_e_PMU AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(TRUE);
const char log_tag_const_c_PMU AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(TRUE);
- 关打印
/* #define CONFIG_DEBUG_ENABLE // 关打印,注释此宏 */
#define TCFG_UART0_ENABLE ENABLE_THIS_MOUDLE //保持enable,关打印也不要改成disable
#define LIB_DEBUG 0 // 关底层库打印,代码会变小很多
const char MM_ASSERT = 0; //生产代码必须检查置0,否则死机不复位,需要断电
const int config_asser = 0; //生产代码必须检查置0,否则死机不复位,需要断电
- 开异常打印
const char MM_ASSERT = 1; //打开断言打印,生产代码必须置0
const int config_asser = 1; //打开异常打印,生产代码必须置0
// 生产代码就算不关打印,这2个变量也必须要置0
相关链接:
查看代码异常复位等异常情况:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IAKCNM
https://doc.zh-jieli.com/AC63/zh-cn/master/getting_started/code_debug/printf_debug.html
4. 复位信息 判断复位源和唤醒源:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IAHMFB
2. 芯片工作状态
- 快速启动--快速唤醒 烧录快速启动及升级程序方法:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IAMX7W
快速启动:芯片断电再上电,开机的速度
快速唤醒:芯片软关机,但没断电,IO唤醒后,开机的速度 - 工作模式
- 正常状态--cpu运行状态 芯片正常运行,软件正常跑。此时功耗,跟随主频大小。
主频越高,功耗越大,在2-5mA之间。 - 待机状态--低功耗 待机--睡眠--低功耗,没有需要运行的代码,芯片可以 临时进入睡眠低功耗,此时功耗4-5uA之间,保持ram的区域数据还在。
可以定时唤醒、IO唤醒等。
https://gitee.com/jieli-tech_fae/IOT-AC630N/blob/master/doc/software/%E9%A9%B1%E5%8A%A8/%E4%BD%8E%E5%8A%9F%E8%80%97%E6%B5%81%E7%A8%8B.md
没有接口可以主动进入睡眠,需要提前设置底层查询函数,返回空闲状态。
///相关代码
#define TCFG_LOWPOWER_LOWPOWER_SEL DEEP_SLEEP_EN //开启BLE低功耗powerdown
#define TCFG_LOWPOWER_LOWPOWER_SEL LOWPOWER_CLOSE //关闭BLE低功耗
sys_power_down(4000000);
REGISTER_LP_TARGET()
void sleep_enter_callback(u8 step)
void sleep_exit_callback(u32 usec)
void sleep_run_check_enalbe(u8 enable)
- 关机状态 软关机,ram数据清空,cpu不跑,只能IO唤醒,此时功耗2uA。
///相关代码
app_soft_flag.sfc_fast_boot = 1;
u8 power_soff_callback()
le_trans_set_soft_poweroff();
power_set_soft_poweroff(); // 一般不能直接调用这个,需要调用应用模式的关机
- 工作频率 最高可以跑160M,旧的sdk不支持,130版本可以
建议只跑到128M即可
#define TCFG_CLOCK_SYS_HZ 48000000 // 48M
#define TCFG_CLOCK_SYS_HZ 128000000 // 128M
- 工作电压 VDDIO即芯片工作电压,和IO的输出电压。
串口模块,需要和其他IC通信的,建议设置VDDIO为 VDDIOM_VOL_34V 和 VDDIOW_VOL_33V
单芯片状态,建议设置 VDDIO为 VDDIOM_VOL_30V 和 VDDIOW_VOL_28V
#define TCFG_LOWPOWER_VDDIOM_LEVEL VDDIOM_VOL_30V // 正常状态下VDDIO电压值
#define TCFG_LOWPOWER_VDDIOW_LEVEL VDDIOW_VOL_28V // 睡眠-低功耗-关机下VDDIO电压值
- 引脚
- 普通引脚GPIO GPIO使用:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IAEK0D
- 特殊引脚 特殊引脚--复位引脚--使用配置(PA11、PA4、PA7、USB):
https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IAO7N4 - 电源引脚 IOVDD、VPWR供电方式配置 -- 电量检测配置:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IBUU4M
IOVDD供电配置问题 https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/ICXAUZ - 按键 实现按键软开机功能:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IBAWN5
关机流程中按键丢失问题优化:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IBQV77 - io按键
#define KEY_IO_EN ENABLE //<IO按键使能
#define MOUSE_KEY_SCAN_MODE DISABLE_THIS_MOUDLE
#define TCFG_IOKEY_POWER_CONNECT_WAY ONE_PORT_TO_LOW //按键一端接低电平一端接IO
#define TCFG_IOKEY_POWER_ONE_PORT IO_PORTA_00 //IO按键端口
#define TCFG_IOKEY_POWER_ONE_PORT_VALUE 0x0 //power port键值
#define TCFG_IOKEY_PREV_CONNECT_WAY ONE_PORT_TO_LOW //按键一端接低电平一端接IO
#define TCFG_IOKEY_PREV_ONE_PORT IO_PORTA_01
#define TCFG_IOKEY_PREV_ONE_PORT_VALUE 0x1 //prev port键值
/// 每个IO都可以设置成唤醒口
keys_config[index++] = create_key_io_wakeup_config(TCFG_IOKEY_POWER_ONE_PORT,
PORT_INPUT_PULLUP_10K, PORT_FLT_DISABLE, FALLING_EDGE, key_active_set);
//唤醒口个数
#define WAKE_IO_MAX_NUMS 4
//硬件支持最大唤醒口8个,无法改大的
#define MAX_WAKEUP_PORT 8 //最大同时支持数字io输入个数
- ad按键 AD按键,只有对地的0R按键是可以唤醒的,其他按键电压没有拉到地,是唤醒不了。
做AD按键的,有IO限制的,不是任意IO都可以做。
#define TCFG_ADKEY_ENABLE ENABLE_THIS_MOUDLE //是否使能AD按键
#define TCFG_ADKEY_PORT IO_PORTB_01 //AD按键端口(需要注意选择的IO口是否支持AD功能)
/*AD通道选择,需要和AD按键的端口相对应:
AD_CH_PA1 AD_CH_PA3 AD_CH_PA4 AD_CH_PA5
AD_CH_PA9 AD_CH_PA1 AD_CH_PB1 AD_CH_PB4
AD_CH_PB6 AD_CH_PB7 AD_CH_DP AD_CH_DM
AD_CH_PB2
*/
#define TCFG_ADKEY_AD_CHANNEL AD_CH_PB1
#define TCFG_ADKEY_EXTERN_UP_ENABLE ENABLE_THIS_MOUDLE //是否使用外部上拉
#if TCFG_ADKEY_EXTERN_UP_ENABLE
#define R_UP 220 //22K,外部上拉阻值在此自行设置
#else
#define R_UP 100 //10K,内部上拉默认10K
#endif
- 矩阵按键
#define KEY_MATRIX_EN ENABLE
#define MATRIX_KEY_ROW1 IO_PORTA_00
#define MATRIX_KEY_ROW2 IO_PORTA_01
#define MATRIX_KEY_ROW3 IO_PORTA_02
#define MATRIX_KEY_ROL1 IO_PORTA_08
#define MATRIX_KEY_ROL2 IO_PORTA_09
#define MATRIX_KEY_ROL3 IO_PORTA_10
// 行列组合,可以自行调整
// 行做唤醒口,那列就要输出口,才能做到任意IO都能唤醒
- 红外发射/接收按键
#define TCFG_IR_ENABLE ENABLE
#define IR_KEY_IO IO_PORTA_10
#define IR_WORK_FRQ 38000
#define IR_WORK_DUTY 5000
#define TCFG_IR_ENCODER_TIMER_TID 0 // 使用timer0作为红外timer tid
#define TCFG_IR_ENCODER_PWM_TID 1 // 使用timer1作为红外pwm tid
// 红外载波发射
ir_encoder_init(IR_KEY_IO, IR_WORK_FRQ, IR_WORK_DUTY);
// 红外载波接收
ir_decoder_init(IO_PORTA_01); //红外信号接收IO_PORTA_O1
// 默认做的是 38K载波的NEC 红外,其他协议,需要自行修改
蓝牙
广播包 动态修改广播包--广播类型--广播频率:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IBLGAX
profile 蓝牙协议简介:https://doc.zh-jieli.com/AW31/zh-cn/master/bluetooth/bt_profeil.html
杰理OTA服务
HID服务
链接参数
MTU MTU改大到120连接会重启:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IBAIH0
BLE长包设置 DLE 和 MTU:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IBYBAU
//测试NRF连接,工具不会主动发起交换流程,需要手动操作; 但设备可配置主动发起MTU长度交换请求
#define ATT_MTU_REQUEST_ENALBE 1 /*配置1,就是设备端主动发起交换*/
/*一般是主机发起交换,如果主机没有发起,设备端也可以主动发起(ATT_MTU_REQUEST_ENALBE set 1)*/
#define ATT_LOCAL_MTU_SIZE (247) /*发送配PDU长度*/
#if ATT_MTU_REQUEST_ENALBE
att_server_set_exchange_mtu(trans_con_handle);/*主动请求MTU长度交换*/
#endif
case GATT_COMM_EVENT_MTU_EXCHANGE_COMPLETE:
log_info("con_handle= %02x, ATT MTU = %u\n", little_endian_read_16(packet, 0), little_endian_read_16(packet, 2));
break;
注意点:
很老的手机改不了,新手机一般都能128,大部分安卓都能512。
固件只是请求的建议值,最终的生效值,是取决于手机系统端的。
要改大,要注意兼容不同的MTU值,需要自行做重组包操作。
5. nRF Connect使用教程 NOTE:BLE开发流程--使用说明: https://gitee.com/Jieli-Tech/fw-AC63_BT_SDK/issues/I9QI1G
6. BLE主机 [分享内容]: BLE主机流程:https://gitee.com/Jieli-Tech/fw-AC63_BT_SDK/issues/IBP4D3
跳过profile搜索过程
蓝牙断开原因 ble断开原因: https://gitee.com/Jieli-Tech/fw-AC63_BT_SDK/issues/I75JGU
FAQ
低功耗
唤醒口 配置独立的唤醒口:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IAN37C
判断复位源和唤醒源:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IAHMFB
获取IO唤醒源误识别DMDP问题:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IANZ2U调功耗
各系列芯片功耗对比
| 632 | AW31 | 636 | AW30 | 备注 | |
|---|---|---|---|---|---|
| BT: | EDR+BLE | BLE | EDR+BLE | BLE | |
| 发射功率: | 8dbm | 10dbm | 6.4dbm | 6.7dbm | |
| RAM: | 73KB | 32KB | 128KB | 64KB | 包含cache |
| 剩余ram: | 26KB | 4KB | 95KB | 25KB | 单模BLE带低功耗 |
| 功耗: | 20uA | 5uA | 60uA | 42uA | 待机底电流 |
| 500ms广播: | 100uA | 190uA | 230uA | 200uA | 500mS周期 |
| dac: | × | × | √ | √ | |
| 主从一体: | 可低功耗 | 不带低功耗 | 可低功耗 | 不带低功耗 | |
| 多主从: | 4个ble | 2个ble | 8个ble | 2个ble | |
| RTC: | 硬RTC | 虚拟RTC | 虚拟RTC | 硬RTC |
芯片选型建议
- 优先选用AC632 纽扣电池产品、应用层需要RAM大于4KB、对BLE传输速率大于20KB/s、BLE多主从带低功耗
- 优先选用AW31 需要快速唤醒、快速启动、2.4G高回报率
升级OTA
APP BLE OTA
测试盒BLE升级
测试盒串口升级 蓝牙测试盒单线串口升级配置:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IB9I7E
杰理串口升级 暂时还没支持
自定义双备份升级 杰理双备份升级介绍.md
fw-AC63_BT_SDK: Firmware for Generic Bluetooth SDK(AC63 series), Support AC631N/AC635N/AC636N/AC637N/AC632N, compatible with AC69 series without audio support.
Firmware for Generic Bluetooth SDK(AC63 series), Support AC631N/AC635N/AC636N/AC637N/AC632N, compatible with AC69 series without audio support.杰理USB升级
定时器 硬件定时器使用:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IAHMWG
PWM PWM输出:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IAIAJD
ADC
电量检测 IOVDD、VPWR供电方式配置 -- 电量检测配置:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IBUU4M
串口
USB
flash
VM 记忆、保存数据到内部flash:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IAJQUF
自定义flash分区 内置flash开辟自定义区域读写:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IAEY7H
认证码 指定mac地址烧录、自定义保留区烧录认证码、三元组、序列号等:
https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IAIHDDSDK系统
事件 转事件到最低优先级线程执行:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IAPXPS
转事件到主循环执行:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IBQVUP认证相关
DUT #define TCFG_NORMAL_SET_DUT_MODE 1 // DUT测试模式,默认上电进初始化
USB初始化成串口,DP对RX、DM对TX,需要接入串口工具,再接入测试仪器
AC63X BLE DUT测试介绍.pdfdut 测试程序 AW31N_sdk_release_v1.2.0_trs_dut_波特率115200_v1.0.zip
FCC 认证程序FCC、BQB:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IB6J6F
【金山文档 | WPS云文档】 认证资料获取汇总(最新资料后台会更新)
https://kdocs.cn/l/cugCGfEDWPhB
建议采用这个下载包,经过验证的,公版sdk改出来的,不一定是完善的BQB 认证程序FCC、BQB:https://gitee.com/Jieli-Tech/fw-AW31N_BLE_SDK/issues/IB6J6F