目錄
- 聯盛德 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