开发环境
- 系统:win10
- 开发板:联盛德 HLK-W801开发板
- 程序下载方式:基于串口的Upgrade_Tools_V1.4.8下载工具
发现问题
- usb链接电脑,用官方提供的Upgrade_Tools_V1.4.8下载工具,当打开点击打开串口的时候,芯片会复位。
- 当我想用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日志,不用担心复位和芯片不工作。
|