1、概述
瑞昱BW系列模组专题 | 安信可科技 (ai-thinker.com)
BW16是基于 RTL8720DN开发的双频Wi-Fi+蓝牙SoC模组。BW16支持双频(2.4GHz 或 5GHz)WLAN和低功耗蓝牙5.0;
- 支持802.11a/b/g/n 1×1,2.4GHz or 5GHz
- 支持HT20/HT40模式
- 支持低功耗信标监听模式,低功耗接收模式,低功耗挂起模式
- 内置AES / DES / SHA硬件引擎
- 支持TrustZone-M,支持安全启动
- 支持SWD调试端口访问保护和禁止模式
- 支持BLE 5.0
- 蓝牙支持高功率模式(7dBm,与Wi-Fi共享同一PA)
- Wi-Fi和BLE共用同一天线
- 支持 STA/AP/STA+AP 工作模式
- 支持安卓、iOS的 Simple Config(APP) 一键配网
- 支持串口本地升级和远程固件升级(FOTA)
2、初步应用
将板子,接到电脑上,打开串口115200,显示日志
当前固件为:BW16 Combo-AT固件(固件号1879)
1879_bw16_combo_soft_v4.9.2_combov2.11.2_.rar
(1.04 MB, 下载次数: 0)
准备刷入:BW16最新版Combo-AT固件(固件号2179)
2179_bw16_combo_soft_v4.18_p5.6.4_combov4.18_p2.29.2_.zip
(1.73 MB, 下载次数: 0)
3、电路分析
原理图:
bw16-kit_specification-v1.2.2-cn.pdf
(1.52 MB, 下载次数: 2)
BW16-Kit版本中接口Type-C对应串口0,引脚UART_LOG_RXD(PA8_LOG_RX0)、UART_LOG_TXD(PA7_LOG_TX0),操作AT指令不会发生冲突。
开发板只能选择通过Type-C或者通过UART_LOG_RXD、UART_LOG_TXD引脚接TTL模块的方法烧录新固件,完成固件升级。
Flash默认2MB
原理图没什么问题,唯一的就是,板子上没有丝印啊,也没有丝印图,想改阻容不知道哪个是哪个~
4、固件更新
刷入最新固件2179,
刷入教程和工具:BW16_V1.0和V1.2开发板下载更新固件指导手册:
bw16_flash_tool.zip
(3.06 MB, 下载次数: 1)
打开串口工具,选择对应的串口号,配置波特率115200,8,N,1,用16 进制显示:
- 将开发板连接电脑
- 长按右边的按键Burn不松
- 按一下左边的复位按键
- 松开右边的按键Burn,此时模块进入烧录模式
如果进入到烧录模式则电脑串口会不断接收0x15,则进入了烧录模式;
- 关闭串口助手的端口占用
- 打开ImageTool.exe 工具,Chip Select选择(8721D)
- COM选择对应的串口号,波特率为1500000,open串口,下方会显示open successfully连接成功;
地址0x8000000,Size:2048KB,刷入固件前点击erase擦除flash内原有的固件
- 点击erase擦除
点击Browse选择最新的固件,可以分开刷入,也可以直接选择合并好的(2179)BAT_BW16_自定义_16Mbit_V4.18_P5.6.4_20230530.bin,地址0x08000000
- 点击Download进行下载,固件更新,完成后自动关闭串口
- 此时使用串口助手打开端口进行连接,log仍在输出0x15,点击复位,已为最新版本的日志,发送AT+GMR指令查看版本号,固件更新成功
5、AT指令点灯
DEMO板的RGB5050三色灯分别接在了芯片的PA12/PA13/PA14脚
确认引脚在芯片上的位置,通过RTL8720DN的数据手册如下,发现PA12/PA13/PA14脚对应芯片的20/21/22脚
UM0401_RTL872xD_Datasheet_v3.4_watermark.pdf
(1.39 MB, 下载次数: 6)
①、设置IO管脚映射关系
AT+SYSIOMAP 查询或设置 IO 映射表
命令:
AT+SYSIOMAP=<PinNumber>,<pin1>,<pin2>,...,<pinN>
<pinNumber>:要设置的 IO 总数。
<pinxx>:模组 IO 引脚
(从模组左上角逆时针排序,引脚序号从 1 开始)对应的芯片引脚编号(1~254,这个根据芯片手册上的引脚编号来就可以)如果模组没有对应芯片引脚则设置为 NC
映射三个LED的引脚,那么就用串口助手发送
AT+SYSIOMAP=22,PinMap:NC,NC,NC,NC,NC,NC,NC,NC,NC,NC,NC,NC,NC,NC,NC,NC,NC,NC,NC,20,21,22
串口助手回复:
[AI_HalWriteFlash()-328]flash save ok
[AI_FAtSysIoMap()-84]AI_HalWriteFlash success
则证明已经对PA12/PA13/PA14完成了映射
发送AT+SYSIOMAP?则会回复已配置的IO情况
②、设置 GPIO 输出电平
命令:AT+SYSGPIOWRITE=<pin>,<level>
参数:
<pin>:模组 IO 引脚号。从模组左上角逆时针排序,引脚序号从 1 开始
<level>: 引脚电平。0:低电平,1:高电平
点亮LED
AT+SYSGPIOWRITE=20,1
AT+SYSGPIOWRITE=21,1
AT+SYSGPIOWRITE=22,1
关闭LED
AT+SYSGPIOWRITE=20,0
AT+SYSGPIOWRITE=21,0
AT+SYSGPIOWRITE=22,0
点灯成功~
附录:AT指令集