联盛德 HLK-W801开发板串口下载复位问题的分析和解决方法

Posted Little Grey Bear

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了联盛德 HLK-W801开发板串口下载复位问题的分析和解决方法相关的知识,希望对你有一定的参考价值。

开发环境

  • 系统:win10
  • 开发板:联盛德 HLK-W801开发板
  • 程序下载方式:基于串口的Upgrade_Tools_V1.4.8下载工具

发现问题

  1. usb链接电脑,用官方提供的Upgrade_Tools_V1.4.8下载工具,当打开点击打开串口的时候,芯片会复位。
  2. 当我想用MobaXterm串口调试芯片的时候,发现根本无法使用,只要打开串口,w801就会停止工作。

问题出现的原因

通过查看电路图发现一个非常有意思的问题,如图:



没错,串口芯片ch340N的RTS引脚竟然和w801的reset引脚接在一起。

普及一下知识:我们平时使用串口一般只是用 TX、RX、GND这三根线,所以有很多人认为串口就三根线。但是其实串口通信还有两根线,RTS 和 CTS,我们一般称它们为流控线。在串口发展的早期,为了提高异步通信的速度,这两根线非常重要。
RTS (Require ToSend,发送请求)为输出信号,用于指示本设备准备好可接收数据,低电平有效,低电平说明本设备可以接收数据。
CTS (Clear ToSend,发送允许)为输入信号,用于判断是否可以向对方发送数据,低电平有效,低电平说明本设备可以向对方发送数据。
正常的时候,甲的RTS 和乙的 CTS连接,当甲将RTS电平拉低,用于通知乙,甲是可以接收数据的,这样乙就可以给甲发数据了。拉高就表示甲繁忙,乙不可以给甲发数据。
但是随着处理器的迅速发展,串口传输的速度完全处理的过来,所以这两根线也就不怎们使用了。

对于本板卡,当usb接到电脑上,用官方提供的Upgrade_Tools_V1.4.8下载工具首次打开串口的时候,CH340N的RTS会先拉低在拉高,这将导致w801的reset出现一次上升沿,导致芯片复位。
而使用MobaXterm的时候,打开串口,串口为表示自己已经可以接收数据,RTS将一直是低电平,这将导致reset一直是低电平,w801将停止工作,所以MobaXterm这类的工具就没办法使用了。

可能有人会问,同样打开串口,为啥这两种软件会有不一样的效果,通过查看CH340的数据手册对RTS引脚有两处重要说明,如图:


这就说明CH340的RTS的引脚是可以被软件配置的。猜测Upgrade_Tools_V1.4.8下载工具重新配置了RTS引脚,使它能拉低在拉高。

我们分析一下电路设计人员为啥会这样设计(猜测)

W801在下载程序的时候,是需要按一下复位reset引脚的,通过RTS和reset相连,就可以在下载的时候不按reset,非常的方便。
但是这样做会带来两个致命问题:

  • 当芯片运行的时候,想通过串口看一下打印的log日志,结果usb接上,打开串口,芯片复位了。
  • Upgrade_Tools_V1.4.8下载工具做串口调试的时候很难用,想用一个高级的串口工具,跟本不行。

解决办法

只要将联盛德 HLK-W801开发板的R7电阻去除,这样RTS和RESET引脚就没有了关系。如图:
(本人懒得照照片,于是在网上找了个照片,标了一下。)

这样下载和使用的方法就变成:

  • 用Upgrade_Tools_V1.4.8下载的时候,按一下reset按键,就会正常下载。
  • 当芯片运行的时候,可以通过任意串口工具看一下打印的log日志,不用担心复位和芯片不工作。

以上是关于联盛德 HLK-W801开发板串口下载复位问题的分析和解决方法的主要内容,如果未能解决你的问题,请参考以下文章

联盛德 HLK-W806 : 兼容开发板 LuatOS Air103

Arduino框架下联盛德W801开发环境搭建教程

联盛德W801基于SDK全功能Demo项目开启和功能测试

W806开发板体验

W806开发板体验

W806开发板体验