联盛德 HLK-W806 (七): 兼容开发板 LuatOS Air103
目录
- 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明
- 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明
- 联盛德 HLK-W806 (三): 免按键自动下载和复位
- 联盛德 HLK-W806 (四): 软件SPI和硬件SPI驱动ST7735液晶LCD
- 联盛德 HLK-W806 (五): W801开发板上手报告
- 联盛德 HLK-W806 (六): I2C驱动SSD1306 128x64 OLED液晶屏
- 联盛德 HLK-W806 (七): 兼容开发板 LuatOS Air103
- 联盛德 HLK-W806 (八): 4线SPI驱动SSD1306/SSD1315 128x64 OLED液晶屏
- 联盛德 HLK-W806 (九): 软件SPI和硬件SPI驱动ST7789V液晶LCD
- 联盛德 HLK-W806 (十): 在 CDK IDE开发环境中使用WM-SDK-W806
- 联盛德 HLK-W806 (十一): 软件SPI和硬件SPI驱动ST7567液晶LCD
- 联盛德 HLK-W806 (十二): Makefile组织结构和编译流程说明
介绍
Air103和W806实际上是同一个芯片, 唯一区别就是丝印不同, W806与Air103的软件理论上都是通用的, W806 SDK也可以运行在Air103上, 所以也可以用C语言给Air103开发固件了.
LuatOS Air103 开发板
官方介绍页: https://wiki.luatos.com/boardGuide/air103/index.html 在文档方面做得比联盛德和海凌科好.
参数
- MCU – Air103 32-bit XT804 MCU
- Pinout: 2x20 + 2x4
- Debugging – CH340 via micro USB port
- Misc – Reset and Boot buttons
- Power Supply – 5V via Type-C USB port
- Size: 51 x 21 mm
开发板外观
正面
背面
PIN脚功能图
(注: 下方的三个LED标识是错的, 应当是PB24, PB25, PB26)
与W806开发板的主要区别
- 板载LED
- W806: 三颗LED, 都是蓝色, 分别是PB0, PB1, PB2, 对应PWM0, PWM1, PWM2, 低电平点亮
- Air103: 三颗LED, 红绿蓝三色, 分别是PB24, PB25, PB26, 对应PWM2, PWM3, PWM4; 高电平点亮
- USB口
- W806: MicroUSB
- Air103: Type-C
- 串口RTS和芯片RESET
- W806: 未连接. 在下载固件时, 要么手工重启, 要么在SDK中开启AT命令自动重启
- Air103: RTS连接RESET, 和W801开发板一样支持自动重启
- 开发板尺寸
- W806: 65 x 26 mm
- Air103: 51mm x 21mm, 比Arduino NANO的尺寸大一格, 但是比W806开发板尺寸要小很多
- Pin脚布局
- W806: 24pin x 2, 未接出5V
- Air103: 20pin x 2 + 4pin x 2
- 未接出PA0(BOOT),PA5,PA6,PA15,PB24,PB25,PB26,PB27.
- 板上有6个GND, 3个3.3V, 2个5V, 貌似应该省一些GND和3.3V换成未引出的IO?
- 多一个PWB脚, 手册说明是芯片 3.3V 供电控制,高电平有效,不用可悬空
- PSRAM焊盘
- W806: 无
- Air103: 底部有PSRAM焊盘
焊盘pin脚映射关系
SCLK -> PA_15
SI/IO0 -> PB_02
01/SO -> PB_03
WP -> PB_04
HOLD -> PB_05
CS -> PB_27
使用W806 SDK开发
代码编写和编译与W806一致, 需要注意的差别是, GPIO和PWM的demo中因为使用了板载LED, 与Air103有差异(PB0, PB1, PB2 => PB24, PB25, PB26), 需要调整.
写入时, 需要参考W801的写入方式, 修改rules.mk中以下部分的-rs
参数, 将-rs at
修改为-rs rts
, 以实现下载时自动复位. 在Linux下写入是正常的, 这点比W801开发板强
run:all
@$(WM_TOOL) -c $(DL_PORT) -rs at -ds $(DL_BAUD) -dl $(FIRMWAREDIR)/$(TARGET)/$(TARGET).fls -sl str -ws 115200
monitor:
@$(WM_TOOL) -c $(DL_PORT) -sl str -ws 115200
list:
@$(WM_TOOL) -l
down:
@$(WM_TOOL) -c $(DL_PORT) -rs at -ds $(DL_BAUD) -dl $(FIRMWAREDIR)/$(TARGET)/$(TARGET).fls
image:all
@$(WM_TOOL) -c $(DL_PORT) -rs at -ds $(DL_BAUD) -dl $(FIRMWAREDIR)/$(TARGET)/$(TARGET).img
flash:all
@$(WM_TOOL) -c $(DL_PORT) -rs at -ds $(DL_BAUD) -dl $(FIRMWAREDIR)/$(TARGET)/$(TARGET).fls
erase:
@$(WM_TOOL) -c $(DL_PORT) -rs at -eo all