目录

  • 联盛德 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组织结构和编译流程说明
  • 联盛德 HLK-W806 (十三): 运行FatFs读写FAT和exFat格式的SD卡/TF卡

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是一致的, 但是排针间距比W806稍微增大了一点, 这样两个排针正好能对上2.54mm间距的面包孔, W806的排针是没法对齐标准2.54mm孔距的,估计是被吐槽了做的改动.
  • 新增加的两个3pin排针位置比较让人费解. 这估计是匆忙设计出来的结果, 没有照顾到广大面包板用户的感受, 两排排针的设计, 就是为了正好横跨插在面包板上, 两边可以利用面包板的插孔引出接线, 而你在排针上叠一个3pin, 就没法插在面包板上用了.
  • 新增加的6个pin, 其实应该参考Arduino NANO和Blue Pill的设计, 做到顶上去, 像boot, reset这样大部分时间基本用不着的pin, 就别做在主排针上浪费位置了.
  • 这一版W801开发板的PB24印了两处, 有一处是错的, 位置在AMS1117这侧的主排针, 从Type-C口这头数起第3个pin, 这个应该是PB4, 板子印错了

W801的SDK

W801的SDK是在W800 SDK的基础上修改制作的, 和W806 SDK的结构相似, 但是代码差异巨大. 已经放到了Gitee wm-sdk-w80x, 有兴趣的可以下载尝试. 编译方式与W806相同, 先通过make menuconfig配置环境和工具链, 然后通过make编译.

另一方面, 因为W801和W806除了无线部分其它结构基本相同, 因此W806 SDK编译产生的固件是可以直接运行在W801上的, 这点已经验证过了.

W801的烧录下载

W801开发板在下载上和W806有一些区别. W801因为内置了串口的RTS控制, 对应观察到的一些现象:

  • W801开发板连上USB后, 会正常开始运行片内烧录的程序
  • 使用Putty, XShell, Cutecom, Minicom这些串口程序连接W801开发板时, 会立即暂停运行, 使用联盛德Upgrade Tools, XCOM等软件则不会, 经检查, 区别在于RTS是否被拉低, 正常运行时RTS必须处于高电平状态.
  • 串口拉低RTS时, W801开发板其实就被重置了, 如果不拉高则一直处于停止状态, 如果拉高则会复位重启
  • 在Cutecom, Minicom这些串口程序断开连接后, RTS恢复高电平, 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 115200monitor:@$(WM_TOOL) -c $(DL_PORT) -sl str -ws 115200list:@$(WM_TOOL) -ldown:@$(WM_TOOL) -c $(DL_PORT) -rs rts -ds $(DL_BAUD) -dl $(FIRMWAREDIR)/$(TARGET)/$(TARGET).flsimage:all@$(WM_TOOL) -c $(DL_PORT) -rs at -ds $(DL_BAUD) -dl $(FIRMWAREDIR)/$(TARGET)/$(TARGET).imgflash:all@$(WM_TOOL) -c $(DL_PORT) -rs rts -ds $(DL_BAUD) -dl $(FIRMWAREDIR)/$(TARGET)/$(TARGET).flserase:@$(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进入下载模式, 需要用以下的步骤

  1. 连接串口(连接时RTS电平会被拉低)
  2. 拉高RTS电平, 这时候W801会复位
  3. 立即以10ms的间隔, 连续输入二进制字符0x1B, 即Esc对应的编码
  4. 此时W801就会进入下载模式, 回显如下的字符, 之后一直输出字符C
Secboot V0.6\r\n
CCCCCCCCCCCCCCCC

将W801转为下载模式的Python代码

import serial
import timeport = 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 # This will pull the voltage highwhile 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('.')continueelse:breakprint('pass')while True:data = port.read_all()print(data)time.sleep(1)

Linux下的问题和解决

W801开发板在RTS的处理上是有问题的.

在Windows下, 串口程序可以在不改变RTS电平的情况下连接和断开串口, 因此可以做到不中断开发板的运行, 随时接入查看日志, 但是在Linux下, 串口程序在获取串口的fd时, 驱动会主动下拉RTS, 即使串口程序立刻将RTS恢复回高电平, 也会留下一个至少0.3毫秒的脉冲, 导致开发板复位重启. 如果不恢复高电平, 开发板就处于暂停运行的状态. 这样带来的问题就是在Linux下无法中途接入查看日志, 接入即重启.

关于Linux下串口RTS的问题可以查看 How to open serial port in linux without changing any pin?

软件上, 可以通过修改和替换驱动取消连接时的RTS低电平脉冲, 这个一般不推荐使用, 因为可能会影响到其它的串口设备. 从物理上解决会比较简单, 就是加一个电容来抵消这个脉冲, 实际测试, 在Reset和GND之间接入一个10uF的电容, 就可以抵消8ms以内的低电平影响. 加入电容后, 只要串口程序在获得fd后立即拉高RTS电平, 就不会中断或者重启开发板.
如果要同时在Win10和Linux上使用, 10uF可能会导致Win10识别串口硬件失败(设备出感叹号), 需要调低到5uF, 此时在Linux下能消除的低电平脉冲宽度大约在3ms.

以上是测试的连接方式, 实际使用中推荐使用4.7uF的0603的贴片电容直接连接, 注意焊接时不要短路到到相邻的PA4和PB6. 如果担心平时使用时不慎短接, 可以在上面覆盖热熔胶做绝缘.

联盛德 HLK-W806 (五): W801开发板上手报告相关推荐

  1. AIR32F103(一) 合宙AIR32F103CBT6开发板上手报告

    目录 AIR32F103(一) 合宙AIR32F103CBT6开发板上手报告 AIR32F103(二) Linux环境和LibOpenCM3项目模板 AIR32F103(三) Linux环境基于标准外 ...

  2. 联盛德 HLK-W806 (八): 4线SPI驱动SSD1306/SSD1315 128x64 OLED液晶屏

    目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...

  3. 联盛德 HLK-W806 (六): I2C驱动SSD1306 128x64 OLED液晶屏

    目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...

  4. 联盛德 HLK-W806 (九): 软件SPI和硬件SPI驱动ST7789V液晶LCD

    目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...

  5. 联盛德 HLK-W806 (十一): 软件SPI和硬件SPI驱动ST7567液晶LCD

    目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...

  6. 【联盛德W806上手笔记】一、开发环境和烧录程序

    目录 简介 芯片外观 MCU 特性 安全特性 低功耗模式 芯片结构 管脚定义 极限参数 开发环境 SDK的获取 从官网获取 从Q群获取 iosetting大佬 维护的wm-sdk-w806 打开工程 ...

  7. 联盛德W806最小系统开发板第一次上手准备工作

    W806 芯片 是一款安全 IoT MCU 芯片.芯片集成 32 位 CPU 处理器,内置 UART.GPIO.SPI.SDIO.I2C.I2S.PSRAM.7816.ADC.LCD.TouchSen ...

  8. 联盛德W801开发板流水灯示例

    联盛德W801开发板流水灯示例

  9. 联盛德W806-KIT开发板试用评测系列之二:ADC 功能使用与测试

    联盛德W806-KIT开发板试用评测系列 之二:ADC 功能使用与测试 作者:大信<QQ8125036> 今天着手对W806开发板ADC功能做测试,都知道ADC在物联网应用场景中常需要用到 ...

最新文章

  1. PyTorch学习笔记——pytorch图像处理(transforms)
  2. 20年资深Oracle数据库专家:国内应用级DBA的缺失
  3. java 中组合与复用_可复用性和组合
  4. 《犯罪心理学》读书笔记(part5)--犯罪心理的形成与内在因素的影响(下)
  5. 探索比特币源码2-配置Bitcoin Core节点
  6. 企业微信H5_集成消息解密类,消息推送Get及Post回调处理
  7. 账户注销完自动登录账户,并且不需要再点击屏幕的账户头像
  8. 全排列 流程图_[分享]给排水工程全流程施工详解,看看精品工程是怎样施工的!...
  9. 3d max2012 安装加破解
  10. 建站百科|如何做好网站Banner设计
  11. Gitgub学习笔记(二)
  12. 什么叫做私有网络VPC?
  13. 106句激励自我的话
  14. SwitchyOmega使用教程
  15. excel组合汇总_Excel汇总20140609
  16. 华为 IPv6与IPv4
  17. Unity3D博客及论坛合集
  18. html2txt h2t.c
  19. cocos2dx 3.10版本的AssetsManager问题
  20. 美国兰德公司《未来战争2030》(The Future of Warfare in 2030)系列研究报告概述(下)

热门文章

  1. linux 重置权限,以普通账号登陆linux,重置root权限 - byf
  2. 交代码后各种稀奇古怪的字母
  3. 个人简历计算机水平如何填写,简历如何写计算机水平
  4. easyconnect的初使用
  5. 2021-03-20 Codeforces Round #708 (Div. 2)
  6. Linuxcmd.chm 命令字典!好用
  7. 登录、注册的用户名去空格
  8. android app 版本下载,linguee app下载-linguee安卓 安卓版v1.3.0-PC6安卓网
  9. Python 怎样导入自己另外的py文件?
  10. 分析linux系统的rpm -qa,全面讲解RedHat系Linux中的rpm包管理系统