聯盛德 HLK-W806 (五): W801開發板上手報告
- 2021 年 11 月 29 日
- 筆記
- Mobile/Embed, W806, W801
目錄
- 聯盛德 HLK-W806 (一): Ubuntu20.04下的開發環境配置, 編譯和燒錄說明
- 聯盛德 HLK-W806 (二): Win10下的開發環境配置, 編譯和燒錄說明
- 聯盛德 HLK-W806 (三): 免按鍵自動下載和複位
- 聯盛德 HLK-W806 (四): 軟體SPI和硬體SPI驅動ST7735液晶LCD
- 聯盛德 HLK-W806 (五): W801開發板上手報告
W801
今天收到了等了兩周的W801開發板, 和W806開發板外觀基本一致, 但是元件布局有調整, W801和W806開發板的實物對比



W801與W806的對比
兩個晶片核心完全一樣, 晶片布局基本一致, 看差異就能大致了解W801的配置
W801的規格書
- 概述增加了無線部分: "支援 2.4G IEEE802.11b/g/n Wi-Fi 通訊協議;支援 BT/BLE 雙模工作模式,支援 BT/BLE4.2 協議"
- W801內置 2MB Flash, 是W806的兩倍, 其它MCU特性一致
增加的WIFI和藍牙的描述
- Wi-Fi 特性
- 支援 GB15629.11-2006,IEEE802.11 b/g/n
- 支援 Wi-Fi WMM/WMM-PS/WPA/WPA2/WPS
- 支援 EDCA 信道接入方式
- 支援 20/40M 頻寬工作模式
- 支援 STBC、GreenField、Short-GI、支援反向傳輸
- 支援 AMPDU、AMSDU
- 支援 IEEE802.11n MCS 0~7、MCS32 物理層傳輸速率檔位,傳輸速率最高到 150Mbps
- 2/5.5/11Mbps 速率發送時支援 Short Preamble
- 支援 HT-immediate Compressed Block Ack、Normal Ack、No Ack 應答方式
- 支援 CTS to self
- 支援 Station、Soft-AP、Soft-AP/Station 功能
- 藍牙特性
- 集成藍牙基頻處理器/協議處理器,支援 BT/BLE 雙模工作模式,支援 BT/BLE4.2 協議
- 低功耗模式
- 支援 Wi-Fi 節能模式功耗管理
PIN腳
W801的規格書增加了PIN腳頻率和驅動能力欄, 各個PIN的最高頻率是有區別的, 從10MHz到80MHz不等, 從後面的功能描述看, 與W806是一致的, 因此猜測此頻率描述也適用於W806
W806和W801並非pin-pin兼容, 從PIN#5到#9這5個PIN對應的功能是不同的, 具體區別如下
- W801有PB23沒有WAKEUP, W806有WAKEUP沒有PB23, W801從#5到#9順位挪了一位
- W801在#14為ANT, 對應的W806在#14為空
- W801在#23的PA5, 增加了VRP_EXT復用
- W801在#24的PA6, 增加了VRP_EXT復用
W801開發板的差異
板載LED
- W806
板載三顆LED,分別對應PB0, PB1, PB2, 都是對應PWM復用的PIN腳, - W801
板載七顆LED, 分別對應PB5, PB25, PB26, PB18, PB17, PB16, PB11, 但是裡面對應PWM復用的只有PB25和PB16, 所以沒法像W806那樣演示流水燈了
介面
W801除了將MicroUSB換成了Type-C, 還增加了Reset, 5V以及多組3.3V和GND的排線引出, 這個比較不錯, 在W806上沒有5V引出, 如果有5V外設的話比較不方便
天線
W801增加了板載天線, 因此比W806長出了一截天線的長度
W801的燒錄下載
程式碼部分, 現在W806可用的程式碼, 都可以運行在W801上, 無線部分需要等SDK中加入對這部分外設的支援. 這裡說一下W801的燒錄下載.
這塊W801開發板在下載上和W806有一些區別. W801內置了串口的RTS控制, 因此帶來一些問題, 暫時不能判斷是設計問題, 還是屬於我的使用方式不對:
- W801開發板連上USB後, 會正常開始運行片內燒錄的程式
- 使用串口程式連接W801開發板時, 必須將RTS拉低, 否則開發板會立刻中止運行, 像CuteCom, Minicom這些都沒法看W801的printf輸出了
- 串口連接且拉低RTS時, W801開發板其實就被重置了, 所以想在程式運行到中途, 開個終端連入看日誌的, 也會有問題
- 串口程式斷開連接時, 不會重置, W801開發板會繼續運行
使用W806的SDK下載燒錄W801時, 需要將rules.mk中的-rs參數修改一下, 從at改為rts, 就能對W801開發板寫入了
run:all
@$(WM_TOOL) -c $(DL_PORT) -rs rts -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 rts -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 rts -ds $(DL_BAUD) -dl $(FIRMWAREDIR)/$(TARGET)/$(TARGET).fls
erase:
@$(WM_TOOL) -c $(DL_PORT) -rs at -eo all
燒錄命令make flash
...
make[1]: Leaving directory '/home/milton/wm-sdk-w806/platform/drivers'
LINK W806.elf
OBJCOPY W806.bin
generate normal image completed.
generate normal image completed.
compress binary completed.
generate compressed image completed.
build finished!
connecting serial...
serial connected.
wait serial sync...
serial sync sucess.
mac 58-6D-CD-C1-CC-AA.
start download.
0% [####] 100%
download completed.
如果要單獨控制W801進入下載模式, 需要用以下的步驟
- 連接串口
- 拉低RTS, 然後立即
- 以10ms的間隔, 連續輸入二進位字元
0x1B, 即Esc對應的編碼 - 此時W801就會進入下載模式, 回顯如下的字元, 之後一直輸出字元
C
Secboot V0.6\r\n
CCCCCCCCCCCCCCCC
將W801轉為下載模式的Python程式碼
import serial
import time
port = serial.Serial(
"/dev/ttyUSB0",
baudrate=115200,
rtscts=True,
timeout=0)
if port.isOpen():
print('opened')
else:
print('open failed')
packet = bytearray()
packet.append(0x1B)
port.rts = False
while True:
for i in range(0, 100):
port.write(packet)
time.sleep(0.01)
data = port.read_all()
print(data)
if len(data) == 0 or data == b'enter main\r\n':
print('.')
continue
else:
break
print('pass')
while True:
data = port.read_all()
print(data)
time.sleep(1)
