CH341在实现AVR单片机USB口ISP功能中的应用

2011-05-29 07:32马金祥关静
常州工学院学报 2011年6期
关键词:串口编程单片机

马金祥 关静

(常州工学院电子信息与电气工程学院,江苏 常州 213002)

0 引言

AVR单片机是ATMEL公司采用全新配置和精简指令集RISC结构的高性价比新型单片机[1]。自AVR单片机问世以来,以运行速度快,数字I/O端口驱动能力强,产品可靠性高,具备在系统编程(ISP)等优势,在工业控制、智能仪器仪表、家用电器、电子通信设备等电气产品中获得了广泛的应用。其中ISP功能是指在将程序写入单片机存储器时,不必将单片机芯片从目标板上拆下拿到万用编程器上烧录,而是通过计算机外围接口直接对单片机芯片进行擦除、编程、校验以及熔丝位配置等操作[1]。

AVR单片机的ISP功能一般都是通过计算机的并口或串口来实现的。通过计算机的并口实现AVR单片机的ISP功能具有硬件电路简单、运行可靠等优点;通过计算机的串口实现AVR单片机的ISP功能则只需增加电平转换电路和监控芯片即可实现。对于只配备USB接口的计算机而言,可以通过USB转接芯片将USB口信号转换为异步串口信号,再通过监控芯片实现AVR单片机ISP功能。

1 USB转接芯片CH341

1.1 CH341芯片特点

CH341是南京沁恒电子有限公司推出的USB总线转接芯片,通过USB总线提供并口、异步串口以及常用的2线和4线等同步串口。CH341在异步串口工作方式下,提供串口发送使能、串口接收就绪等交互式的速率控制信号以及常用的MODEN联络信号,用于为计算机扩展异步串口,或者将普通的串口设备直接升级到USB总线[2]。

CH341在异步串口工作方式下的特点[2]:

①全速USB设备接口,兼容USB2.0,只需晶振和电容等常用元器件。

②支持DC 5 V和DC 3.3 V 2种电源电压。

③仿真标准串口,用于升级原串口设备,或者通过USB端口增加额外串口。

④计算机端Windows操作系统下的串口应用程序完全兼容,无需修改。

⑤硬件全双工串口,内置收发缓冲器,支持通讯波特率50 bps~20 Mbps。

1.2 CH341芯片异步串口工作方式下的引脚功能

CH341提供2种封装形式,3种订货型号的产品。CH341A采用sop-28封装形式,CH341T和CH341H均采用 ssop-20封装形式,是CH341A的简装版。CH341的具体功能由复位后的功能配置决定,同一引脚在不同的功能配置下的定义可能不同。CH341A是CH341芯片中的典型芯片,具备CH341芯片的全部功能和特点。CH341A和CH341T都可以工作在异步串口方式。因此,以CH341A在异步串口工作方式下的功能配置来介绍CH341的引脚功能及其在AVR单片机ISP功能中的应用。

CH341A在异步串口工作方式,且串口发送使能信号有效的情况下,利用UD+和UD-连接到USB总线,通过TXD和RXD引脚产生TTL电平串口信号。CH341A采用标准的28脚贴片封装形式(sop-28),CH341A在异步串口工作方式下的引脚定义如图1所示,CH341A在异步串口工作方式下的引脚功能可以查阅南京沁恒电子有限公司网站(http://www.wch.cn)的有关资料。

图1 CH341A在异步串口工作方式下USB口转串口硬件电路图

1.3 CH341A异步串口工作方式下的硬件电路及使用方法

CH341A在异步串口工作方式下的USB转串口硬件电路如图1所示,其中J1接头为USB公头直接与计算机USB接口相连接,J2接头产生TTL电平TXD、RXD信号。RSTI引脚与VCC之间跨接容量为1 μF的电容,与GND之间接4.7 kΩ下拉电阻,可以使CH341A在电源上电期间减少外界干扰并可靠复位。ACT#引脚外接上拉限流电阻的绿色发光二极管LED1,用于指示USB设备配置状态。TEN#引脚为串口发送使能控制端,低电平有效,直接与GND连接。VCC与GND之间连接带限流电阻的红色发光二极管 LED2,用于指示CH341A的电源状态。SDA和SCL引脚均悬空,用于对CH341A芯片通过直接组合配置为USB转异步串口工作方式,仿真计算机串口。

以上硬件电路完成后,如果电路连接无误,将J1接头与计算机USB接口连接,系统会提示安装驱动程序。CH341A的USB转串口驱动程序可在南京沁恒电子有限公司网站下载,文件名为ch341ser.exe[2]。CH341A 的 USB 转串口驱动程序安装成功后,在桌面上选中“我的电脑”图标,单击右键,选中并打开“设备”项,可以得到“计算机管理”窗口,在“设备管理器”的“端口”一栏中就可以看到新增串口“USB-SERIAL CH341A(COM2)”。USB转串口新增串口指示图如图2所示。

图2 USB转异步串口新增串口指示图

一般情况下,J1接头与计算机连接后,LED2马上点亮;延时一段时间后,LED1点亮,说明CH341A芯片配置完成,可以开始USB口转异步串口。在CH341A芯片配置完成之后,在“设备管理器”的“端口”一栏中可以看到新增串口编号。

2 AVR单片机USB口下载线硬件组成及工作原理

2.1 AVR单片机USB口ISP编程电缆

AVR单片机USB口ISP编程电缆的功能是使用PC机的USB口来驱动ISP编程所需的时序信号,实现对AVR单片机的编程。AVR单片机USB口ISP编程电缆由2部分组成:第一部分为USB口转异步串口硬件电路[2](如图1所示),第二部分是TTL串行通信信号经过监控芯片转换为AVR单片机串行编程所需的ISP编程信号。TTL串行通信信号转换AVR单片机ISP编程信号硬件电路原理图(如图3所示)。第一部分硬件电路的J2接口与第二部分硬件电路的J3接口相连接,注意要将不同接口的TXD与RXD相连接。在编程电缆正常工作时,J1端连接PC机的USB口,J4端通过编程插头连接目标板的AVR单片机。AVR单片机USB口下载线的工作原理是:PC机(上位机)编程软件发送的编程命令和数据,通过USB口转异步串口硬件电路转换为串行通信的TTL电平信号,然后由AVR单片机监控芯片ATtiny2313进行接收,ATtiny2313内的监控程序对接收到的数据进行分析与处理,完成和上位机的通信并实现对目标板上的AVR单片机编程。ATtiny2313的PB4、PB5、PB6和 PB74个管脚通过编程插头分别与目标板上的AVR单片机的、MOSI、MISO 和SCK 相连接。另外,AVR单片机USB口ISP编程电缆的电源端还通过编程插头与目标板的VCC、GND分别相连接,并从目标板获得工作电源。特别注意,最好不要用USB口的VCC和GND给监控芯片和目标板提供电源。否则,可能会增加USB口电流负荷,甚至会损坏计算机的USB端口。

图3 TTL串行通信信号转换AVR单片机ISP编程信号硬件电路原理图

2.2 ATtiny2313监控程序通信协议

系统监控芯片采用ATtiny2313单片机,其监控程序根据AVR Prog的通信协议(该协议适用于并行编程和串行编程模式)设计。ATtiny2313监控程序既可以在AVR Studio环境中用汇编语言设计,也可以在CodeVision环境中用C语言设计。ATtiny2313监控程序接收上位机发来的命令(有些命令还带有参数)并执行相应的操作,监控程序在执行要求的操作之后还会根据需要向上位机发送规定的回执数据信息来完成通信。关于AVR Prog的通信协议,读者可以参考ATMEL公司AVR单片机数据手册(AVR.AVR开发软件大全.http://www.ourdev.cn/es_avr_serial_software.html.2011)。

3 AVR单片机USB口ISP编程软件的应用

由于AVR单片机USB口ISP下载线监控芯片ATtiny2313使用的是AVR Prog的通信协议,因此PC机(上位机)的编程软件可以直接使用AVR Prog(如,AVRStudio环境下的AVR Prog编程软件和CVAVR环境下的AVR Prog编程软件),也可以使用支持AVR Prog的通信协议的其他编程软件(如,双龙在线编程软件、Ponyprog编程软件等等)。

双龙在线编程软件 SL-ISP V1.7.0.13版本主界面[3]如图4所示。

图4 SL-ISP双龙在线编程软件主界面

现在以 SL-ISP V1.7.0.13 版本为例,对其操作进行简单介绍,具体操作如下:

①在通信参数设置及器件选择框中可以设置通信端口、编程速度,并选择编程目标器件型号。

②单击FLASH存贮器对话框中的“flash”管理按钮,从对话框中打开flash目标程序数据文件。单击EEPROM存贮器对话框中的“E2E”管理按钮,从对话框中打开EEPROM目标程序数据文件。

③单击“编程”按钮,目标程序数据文件就会自动下载到目标器件中。在信息栏中会指示校验芯片ID码,芯片擦除、编程、校验等操作的相关信息,在进度条中会指示当前操作的进度。

④如果需要对目标器件的熔丝位进行相应的配置,则需点击编程主界面“配置熔丝”打开配置熔丝对话框。在“配置熔丝”对话框中,用户可以对芯片加密、系统时钟、上电启动延时时间以及其他一些熔丝位进行配置。

4 有关问题的说明

1)串口ISP编程电缆中监控芯片ATtiny2313使用外部晶振4 MHz,在对其加载监控程序时应对系统时钟熔丝位进行正确的配置。

2)如果目标板上的AVR单片机为ATmaga64/103/128/1281/2561,串口下载编程电缆插头的 MISO、MOSI应分别与目标板单片机的PDO、PDI相连接。

3)在下载编程应用软件中通信参数选择项串行通信端口COM端口编号一定要与图2中新增串口编号相一致。

4)图2中USB转异步串口新增串口的编号可以根据需要进行修改;USB转异步串口可以单独作为普通异步串口使用,但要注意其串行通信电平为TTL电平信号。

5)有些在线编程应用软件既能支持串口下载电缆,又能支持并口下载电缆,用户可以根据需要在编程应用软件中灵活设置[4]。

6)CH341芯片通过SCL和SDA引脚组合配置芯片功能,可将 CH341配置为不同工作方式[2]。

[1]马潮.AVR单片机嵌入式系统原理与应用实践[M].北京:北京航空航天大学出版社,2007.

[2]南京沁恒电子有限公司.USB_SER.PDF[EB/OL].[2011 -04 - 30].http://www.wch.cn/download/list.asp?id=63.2011.

[3]广州双龙电子有限公司.双龙在线下载软件[EB/OL].[2011-04 -28].http://www.sl.com.cn/down/software/1/SLISP_V1716_SU8.rar.2011.

[4]马金祥.利用串口实现AVR单片机ISP功能的一种方法[J].化工自动化及仪表,2009,36(6):78 -81.

猜你喜欢
串口编程单片机
编程,是一种态度
元征X-431实测:奔驰发动机编程
浅谈AB PLC串口跟RFID传感器的通讯应用
编程小能手
纺织机上诞生的编程
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索