从事单片机开发的人员基本上都少不了使用串口。为了工作方便,许多人选择PC机都选择主板带有原生串口的主板。笔者近年来选择的两台PC机都是遵循这一原则。其中早几年的选择的是一个串口固定在PC背板,另一个通过带挡板9芯排线插头安装到机箱背面。去年选择的PC主板就只有一个板载串口靠排线和挡板引出。
目前主要调试STC8系列单片机。在单片机调试过程中发现,在Keil启动联机调试后(确保硬件连线和软件均无问题),通讯不是十分可靠。一般需要将被调试系统重新上电一次,再开始联机。可以进入状态。正常退出后,修改程序,再次编译连接,显示无错误和警告。这时如果直接点击联机调试按钮,往往显示连接出现问题。很多时后需要中止任务退出Keil软件,再重新启动Keil。将STC8芯片作为仿真器需要写入程序。这时也容易出现问题,不是找不到就是写失败。对于出现的问题只有检查连线、看软件设置和操作(其实这些都没有改变)。有时只有重新启动PC机,再就是怀疑STC8芯片坏了?真让人头疼。
在完全相同的情况下,使用CH341的USB转串口没有这个问题。只要是在Keil调试中正常停止程序,再按调试按钮退出调试模式。修改、再编译后,再次点击调试按钮,又能正常进入调试状态进行联机调试。大量数据写入完全正常。实际使用表明,使用CH341转的串口比目前主板上带的原生串口可靠。我的主板选择的都是大品牌主板,不是杂牌主板。
此外此外谈谈我为什么要选择CH341芯片。CH341芯片上有两个引脚很有用。一个是RDY#,另一个是ACT#。二者串电阻后接LED可以显示芯片的工作状态。当RDY#的LED亮起时ACT#不会亮,标明CH341处于USB弹出状态。只有当ACT#的LED亮起,RDY#的LED熄灭,标明CH341进入工作状态。有音响的PC机会发出叮咚一声。在单片机调试过程中需要排除各种非正常状态。有时看似插入USB,电源联通了,但通讯不正常,首先就要检查CH341是否在工作状态。有了这两个指示灯状态一目了然。如果RDY#的LED亮起,先排除CH341出现的问题!
调试单片机系统时,串口连线正确否、软件设置正确否都需要严格保证。相关方面最好能有直观的显示,可以提示和帮助排除其它基本错误。利用RTS#和DTR#信号驱动RS-232接口上刻意安装的LED,直观显示串口是否选择错误。为了调试方便,PC机上往往会设置两个以上的串口。有时硬件连接在串口2上但软件选择了串口1。一旦发现串口上的LED不亮,就知道串口选择错了。所以为了调试便利选择了CH341。
顺带谈谈使用MAX232系列芯片的一点经验。只要按标准连线,没有短路等,芯片如果出现发热,基本就是芯片质量问题。使用美信等品牌芯片,不会出现这类问题。芯片配接的四个泵电容容量在1-22vf均可,我一般使用4.7vf的普通电解电容没有问题。以前出现过使用1vf的钽电容,实际容量几乎为零,造成通讯不可靠。可能因为钽电容价格高,“水货”就多。制作的转接板串口通讯速率在11520完全工作正常。MAX232片上的另一对驱动输出接限流电阻后可用于RTS#和DTR#信号驱动LED。