1. 程式人生 > 其它 >聯盛德 HLK-W806 (七): 相容開發板 LuatOS Air103

聯盛德 HLK-W806 (七): 相容開發板 LuatOS Air103

Air103和W806實際上是同一個晶片, 唯一區別就是絲印不同, W806與Air103的軟體理論上都是通用的, W806 SDK也可以執行在Air103上, 所以也可以用C語言給Air103開發韌體了. 程式碼編寫和編譯與W806一致, 需要注意的差別是, GPIO和PWM的demo中因為使用了板載LED, 與Air103有差異(PB0, PB1, PB2 => PB24, PB25, PB26), 需要調整.

目錄

介紹

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開發板的主要區別

  1. 板載LED
  • W806: 三顆LED, 都是藍色, 分別是PB0, PB1, PB2, 對應PWM0, PWM1, PWM2, 低電平點亮
  • Air103: 三顆LED, 紅綠藍三色, 分別是PB24, PB25, PB26, 對應PWM2, PWM3, PWM4; 高電平點亮
  1. USB口
  • W806: MicroUSB
  • Air103: Type-C
  1. 串列埠RTS和晶片RESET
  • W806: 未連線. 在下載韌體時, 要麼手工重啟, 要麼在SDK中開啟AT命令自動重啟
  • Air103: RTS連線RESET, 和W801開發板一樣支援自動重啟
  1. 開發板尺寸
  • W806: 65 x 26 mm
  • Air103: 51mm x 21mm, 比Arduino NANO的尺寸大一格, 但是比W806開發板尺寸要小很多
  1. 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 供電控制,高電平有效,不用可懸空
  1. 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

參考