文档库 最新最全的文档下载
当前位置:文档库 › 通过串口给AVR芯片烧录程序

通过串口给AVR芯片烧录程序

通过串口给AVR芯片烧录程序
通过串口给AVR芯片烧录程序

MCU

单片机制作

通过串口给AVR芯片烧录程序

作者/张博

Atmel公司的AVR系列单片机具有高速度、低功耗、ISP在线烧录、BootLoader等功能,受到工程师和学生们的喜爱。

目前AVR系列单片机烧录程序的方法大概有以下三种:使用ISP编程器对芯片进行在线烧录、专业高压编程器烧录、通过JTAG接口使用JTAG仿真器烧录。但是它们都有一个共同的特点:但是总是要借助于其他设备或者编程器,下载稍嫌麻烦,本文笔者给大家介绍如果通过PC机的普通串口给AVR芯片烧录程序,本文以ATMega16为例。

相信大家都用过STC系列的51单片机,STC系列的单片机烧录程序都很简单,只需要通过串口就可以实现程序的烧录。于是就想让AVR的芯片也能实现通过串口就能下载的功能,这样就可以省去购买UsbAsp下载

图1线或者高压编程器的费用,而且使用更加方便。仔细研究AVR的芯片手册,就会发现常用的一些AVR芯片如:ATMega16、ATMega32等都是带有BootLoader功能的,这个BootLoader功能可以读写芯片的整个FLASH存储区,甚至可以改写BootLoader区,而且还有另外一个特点:如果BootLoader功能开启以后,每次复位都会从BootLoader 启动。

于是就有一个大概的思路了,可以给AVR的芯片写一个BootLoader的串口通信程序,每次复位以后BootLoader 区的程序就会得到运行,运行以后首先检测是否有烧录请求,如果有就更新FLASH中的程序,如果没有烧录请求,则执行FLASH中原有的程序。经过几天的努力这个通过串口给ATMega16烧录程序的固件和上位机终于完成了。下

65 2012.01

图3图4

硬件部分实际上就是一个具有串口通信功能的最小系

3.使用方法

烧录软件使用WinAvr中的avrdude程序。这也是一个开源项目。由于avrdude一个控制台程序,操作起来比较麻烦,于是另外写了一个应用程序AvrSelfProgram.exe来调

USB转串口芯片介绍

pl2303原理应用 PL2303符合USB1.1标准,价格3RMB.

2 CP2102/CP2103简介 SiliconLaboratories公司推出的USB接口与RS232接口转换器CP2102/CP2103是一款高度集成的USB-UART桥接器,提供一个使用最小化元件和PCB空间来实现RS232转换USB的简便解决方案。如图1所示,CP2102/CP2103包含了一个USB功能控制器、USB收发器、振荡器和带有全部调制解调器控制信号的异步串行数据总线(UA RT), 采用5 mm×5 mm MLP-28的封装。 CP2102/CP2103作为USB/RS232双向转换器,一方面可以从丰机接收USB数据并将其转换为RS232信息流格式发送给外设;另一方面可从RS232外设接收数据转换为USB数据格式传送至主机,其中包括控制和握手信号。

2.1 USB功能控制器和收发器 2.2异步串行数据总线(UART)接口 CP2102/CP2103UART接口包括TX (发送)和RX(接收)数据信号以及RTS、CTS、DSR、DTR、DCD和RI控制信号。UART支持RTS/CTS、DSR/DTR和X-On /X-Off握手。 通过编程设置UART,支持各种数据格式和波特率。在PC机的COM端口编程设置UART的数据格式和波特率。表1 为其数据格式和波特率。 2.3 内部EEPROM CP2102/CP2103内部集成有1个EEPROM,用于存储由设备制造商定义的USB 供应商ID、产品ID、产品说明、电源参数、器件版本号和器件序列号等信息。USB配置数据的定义是可选的。如果EEPROM没有被OEM的数据占用,则采用表1所示的默认配置数据。注意,对于可能使用多个基于CP2102/CP2103连接到同一PC机的OEM应用来说,则需要专用的序列号。 内部EEPROM是通过USB编程设置的,允许OEM的USB配置数据和序列号可以在出厂和测试时直接写入系统板上的CP2102/CP2103。Cygnal提供了一个专门为C P2102/CP2103的内部EEP-ROM编程设置工具,同时还提供免费的驱动WindowsDLL格式的程序库。这个程序库可将。EEP-ROM编程步骤集成到OEM在制造中进行流水线式测试和序列号的管理的自定义软件中。EEP-ROM的写寿命的典型值为100000次,数据保持时间为100年。为了防止更改USB描述符,应将其锁定。 2.4其他功能 CP2103除上述功能外也可实现RS485接口与USB接口转换功能,CP2103支持4个可按照控制信息定义的GPIO引脚。 3 典型应用电路 3.1 硬件电路设计

AVR studio 中断、计时器程序

本程序应用了外部中断1、0,定时器中断0, 初始显示变量uname(100000), 按下中断1显示内容减1,中断0加1,定时器每隔一秒加1 显示子函数A VR_display; 频率1M A口接数码管段选 B口接数码管位选 */ #include #include volatile unsigned long Ex_i; //定时器用的变量 volatile unsigned long uname=100000;//初始显示内容 /*=====0-9=====A-G=====*/ unsigned char table[17]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff}; //共阳极数码管的段码0 1 2 3 4 5 6 7 8 9 A B C D E F /*0-7*/ unsigned char num[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //共阳极数码管的wei码0 1 2 3 4 5 6 7 8 void init_avrinter();//外部中断初始化 void init_avrtimer0();//计数器0初始化 void delay(unsigned int x);//延时函数 void AVR_display(unsigned long nnn);//显示函数 int main() //主程序 { DDRA=0xff; //设置方向寄存器为输出 DDRB=0xff; DDRD=0xff; PORTD=0xff; init_avrinter(); init_avrtimer0(); while(1) { A VR_display(uname); } } void init_avrinter()//外部中断初始化 { sei(); //开总中断

RS-232多串口扩展器件SP2538及其应用

RS-232多串口扩展器件SP2538及其应用摘要:SP2538是采用低功耗CMOS工艺生产的专用串行口(RS232)扩展芯片,它可将单片机或DSP等原有的单UART串口扩展至5个全双工UART口,从而解决了此类器件串口太少的问题。文中介绍了SP2538的性能特点,引脚功能及应用方法,并以单片机为例给出了多串口扩展的硬件电路及相应的通信程序。关键词:RS-232;串口扩展;单片机;SP25381概述SP2538是专用低功耗串行口扩展芯片,该芯片主要是为解决当前基于UART串口通信的外围智能模块及器件较多,而单片机或DSP原有的UART串口又过少的问题而推出的。利用该器件可将现有单片机或DSP的单串口扩展至5个全双工串口。与其它具有多串口的单片机或串口扩展方案相比,采用SP2538实现的多串口扩展方案,具有扩展串口数量多、对扩展单片机的软硬件资源占用少、使用方法简单、待扩展串口可实现较高的波特率、成本低廉、性价比高等优点。同时,它还具有如下特点:●可将单UART串口扩展为5个UART串口;●工作速率范围宽,5个子串口可产生2400bps~9600bps之间的任意波特率;●可全双工工作,母串口和所有子串口都支持全双工UART传输模式;●工作电源电压范围宽:3.3V~5.5V;●典型工作电流为4.6mA(子串口速率为9600bps、VCC为3.3V时); ●资源占用少,除占用上位机原有串行口中断外,不占用任何中断资源;●具有节电模式,进入节电模式后,其典型静态电流约8μA;●上位机发送数据可自动唤醒;●输出误差小,所有子串口的输出波特率误差均小于0.08%;●误码率低于10-9(所有串行口数据输入波特率误差小于等于±2%);●接收范围宽,波特率误差小于2.5%时,子串口即可完全正确接收;母串口的接收范围更宽,并可自适应56000bps和57600bps两种标准波特率(fosc—in为20.0MHz时);●可用上位机进行监控,并具有上电复位和看门狗监控输出,适用于没有看门狗或需要更多重监控的高可靠上位机程序监控系统。2引脚功能SP2538具有双列直插DIP及双列贴片SOIC两种封装形式。后缀为SP2538xxH的复位时输出高电平而后缀为SP2538xxL的复位时输出低电平,可分别适用高、低电平复位的单片机。图1给出了DIP封装高电平复位SP2538DPH的外形及引脚排列图,各引脚的功能说明列于表1。[!--empirenews.page--]表1 SP2538引脚说明引脚名称引脚编号引脚类型引脚描述TX5~TX01、3、5、7、9、14Output 串口5~串口0数据发送(连接上位机RX口)RX5~RX02、4、6、8、10、13Input串口5~串口0数据接收(连接上位机TX口)VCC111- - -电源1(逻辑电路电源)+RST12Output复位控制输出(适用于高电平复位的MCU)VCC215- - -电源2(时钟电路电源)GND16- - -电源地OSCI17Input时钟输入(用于波特率发生器等)OSCO18Output时钟输出ADRI0~ADRI219~21Input母串口(RX5)数据接收地址0~2ADRO0~ADRO222~24Output母串口(RX5)数据发送地址0~23应用说明3.1母串口收发数据过程与时序(1)上位机接收来自母串口的数据上位机从母串口接收到一个字节数据后,会立即读取SP2538的输出地址ADRO2~ADRO0(编码方式为:8-4-2-1码),然后根据输出地址的编码即可判断接收到的数据来自哪个子串口,上位机接收来自母串口的数据时序如图2所示。(2)上位机向母串口发送数据发送数据时,上位机首先通过串口写入欲发送数据的子串口号,即先由上位机的串口发送数据地址ADRI2~ADRI0(编码方式:8-4-2-1码),然后将欲发送的数据由上位机串口发出。需要注意的是:母串口的波特率是子串口的6倍,即上位机在连续向母串口发送6个字节的时间内,子串口才能发送完一个字节。上位机向母串口发送数据的时序如图3所示。表2列出了SP2538的操作时限要求。表2 SP2538操作时限时限内容说明最小值典型值最大值Tpwr-up上电复位延时150ms……Treset芯片指令复位时间……50μsTwdt-rst看门狗溢出复位脉冲宽度80ms……Taddr-in数据接收地址保持时间10ns……Twake-up芯片唤醒延时……9msTaddr-hold数据发送地址保持时间(2/fosc-in)ms……Twdt-over看门狗溢出周期800ms……3.2其它说明母串口和所有子串口内部均具

AVR单片机教程13—第十三课 ATMEAG16L的外部中断编程实践

—————————————————————————— 第十三课ATMEAG16L的外部中断编程实践 本教程节选自周兴华老师《手把手教你学AVR单片机C程序设计》教程,如需转载,请注明出处!读者可通过当当网、淘宝网等网站购买本教程,如需购买配书 实验器材,可登陆周兴华单片机培训中心网购部自助购买! Atmega16L具有多达20个中断源,这里我们进行外部中断的实验,其它的等到介绍到相关内容时可进行适当的实验。 1.外部中断0 外部中断0由引脚INT0(PIND2)触发。如果INT0引脚按照MCUCR寄存器中的ISC01、ISC00设置的方式发生跳变,则不管是否lNT0中断使能,INT0中断标志位INTF0都将置位。如果SREG 寄存 器的全局中断位I和通用中断控制寄存器GICR中的INT0中断使能位INT0置位,则单片机培训开始 执行中断程序。在进入中断服务程序时,INTF0被硬件清零。必须指出,不管INT0(PIND2)引脚 方向位设置如何,只要INT0引脚发生规定的跳变,都会触发中断。中断标志位INTF0只在满足发生 中断的条件时置位,一旦条件变化,INTF0被硬件清零。向INTF0位写“1”也会对其清零。 2.外部中断1 外部中断0由引脚INT1(PIND3)触发。如果INT1引脚按照MCUCR寄存器中的ISC11、ISC10设置的方式发生跳变,则不管是否lNT1中断使能,INT1中断标志位INTF1都将置位。如果SREG 寄存 器的全局中断位I和通用中断控制寄存器GICR中的INT1中断使能位INT1置位,则开始执行中断程 序。在进入中断服务程序时,INTF1被硬件清零。必须指出,不管INT1(PIND3)引脚方向位设置 如何,只要INT1引脚发生规定的跳变,FPGA培训都会触发中断。中断标志位INTF1只在满足发生 中断的条件时置位,一旦条件变化,INTF1被硬件清零。向INTF1位写“1”也会对其清零。 3.外部中断2 外部中断2由引脚INT2(PINB2)触发。如果INT2引脚按照MCUCR寄存器中的ISC2设置的方式发生跳变,则不管是否lNT2中断使能,INT2中断标志位INTF2都将置位。如果SREG 寄存器的全局 中断位I和通用中断控制寄存器GICR中的INT2中断使能位INT2置位,则开始执行中断程序。在进 入中断服务程序时,INTF2被硬件清零。必须指出,不管INT2(PINB2)引脚方向位设置如何,只 要INT2引脚发生规定的跳变,都会触发中断。中断标志位INTF2只在满足发生中断的条件时置位, 一旦条件变化,INTF2被硬件清零。向INTF1位写“1”也会对其清零。 8.2.1 INT1中断实验

串口电平转换芯片数据手册SP3222_3232E

DESCRIPTION s Meets true EIA/TIA-232-F Standards from a +3.0V to +5.5V power supply s 235KBps Transmission Rate Under Load s 1μA Low-Power Shutdown with Receivers Active (SP3222E ) s Interoperable with RS-232 down to +2.7V power source s Enhanced ESD Specifications: ±15kV Human Body Model ±15kV IEC1000-4-2 Air Discharge ±8kV IEC1000-4-2 Contact Discharge The SP3222E/3232E series is an RS-232 transceiver solution intended for portable or hand-held applications such as notebook or palmtop computers. The SP3222E/3232E series has a high-efficiency, charge-pump power supply that requires only 0.1μF capacitors in 3.3V operation. This charge pump allows the SP3222E/3232E series to deliver true RS-232performance from a single power supply ranging from +3.3V to +5.0V. The SP3222E/3232E are 2-driver/2-receiver devices. This series is ideal for portable or hand-held applications such as notebook or palmtop computers. The ESD tolerance of the SP3222E/3232E devices are over ±15kV for both Human Body Model and IEC1000-4-2 Air discharge test methods. The SP3222E device has a low-power shutdown mode where the devices' driver outputs and charge pumps are disabled. During shutdown, the supply current falls to less than 1μA. SELECTION TABLE L E D O M s e i l p p u S r e w o P 232-S R s r D e v i r 232-S R s r e v i e c e R l a n r e t x E s t n e n o p m o C n w o d t u h S L T T a S -3e t t f o .o N s n i P 2223P S V 5.5+o t V 0.3+224s e Y s e Y 02,812 323P S V 5.5+o t V 0.3+2 2 4 o N o N 6 1

串口扩展,uart扩展,串口扩展485接口

串口扩展方案 基于VK3366的串口扩展串口方案 二、技术领域 电子信息 通信工程 三、现有技术的技术方案 3.1 软件模拟法: 可根据串行通讯的传送格式,利用定时器和主机的I/O口来模拟串行通讯的时序,以达到扩展串口的目的。接收过程中需要检测起始位,这可以使用查询方式或者在端口具有中断功能的主机中也可以使用端口的中断进行处理。接收和发送过程中,对定时的处理既可以使用查询方式也可以使用定时器中断方式。为了确保数据的正确性,在接收过程中可以在检测异步传输的起始信号处加上一些防干扰处理,如果是无线传输系统,在接收每个位时可以采用多次采样。对于有线系统来说,1次采样就够了,软件模拟串口还是有它自身的一些不足,面临着采样速度比较慢,采样方式还是不如硬件采样方式准确,抗干扰能力也差很多。 3.2基于TL16C554的串行口扩展 TL16C554是TI公司生产的4通道异步收发器集成芯片。对TL16C554串行通道的控制,是通过对控制寄存器LCR、IER、DLL、DLM、MCR和FCR编程来实现的。这些控制字决定字符长度、停止位的个数、奇偶校验、波特率以及调制解调器接口。控制寄存器可以任意顺序写入,但是IER必须最后一个写入,因为它控制中断使能,如果后面还需要调整数据格式,波特率这些就比较困难,操作也不够灵活。串行通道内的波特率发生器(BRG)允许时钟除以1至65535之间的任意数,BRG根据其不同的三种通用频率中的一种来决定标准波特率。 3.3 基于GM8123/25系列芯片的串行口扩展 GM8123/25系列串口扩展芯片可以全硬件实现串口扩展,通讯格式可设置,并与标准串口通讯格式兼容。GM8125可扩展5个标准串口,通过外部引脚选

AVR单片机WinAVR及Proteus仿真外部中断

本文主要以AVR单片机atmega48的外部中断的在Proteus上仿真的例子介绍AVR单片机C 语言开发环境WinAVR的使用(如何包含头文件,如何写中断服务程序,如何配置编译产生hex文件),及其在Proteus上的仿真实现(如何建立仿真图,载入hex文件进行仿真) 本例子完全为PC上软件仿真所以不涉及硬件,其全部所需软件清单如下: WinAVR、Proteus、atmega48_Datasheet 软件的下载安装,请参考网上其他教程,有很多,很容易的。 atmega48单片机的数据手册网上中英文的版本也都可以下载到。 下图是笔者所使用的软件截图,不同版本可能稍有差异,但基本不影响使用。 下面我将在假设您已经安装好2个软件(当然目前您不需要知道它们是怎么用的),并且对单片机和C语言有基本了解的基础上进行例程的演示。 let's begin。 首先要明确我们要完成的功能:单片机开始工作后,点亮LED灯1S,灭掉LED灯1S,如此循环3次,然后单片机进入无限循环,等待外部按键button按下,LED等再次点亮,当再次按下button时,LED等灭掉,如此循环。

接着画出要实现这个功能的电路,以便后续仿真。 先在桌面建一个文件夹Hello_AVR,如图。 打开软件,这个图标。 在软件界面上,右键Place->Component->From Libraries 在Keywords里面输入atmega48,选择一个32PIN管脚的单片机放到图上

同样的方法,放置一个LED灯,一个button,电阻,电容。

放置POWER和GND

图完成,在文件夹Hello_AVR下新建文件夹Sim,保存在这里 这里用PB0管脚来驱动LED灯,查阅芯片的数据手册或直接从图中可以知道,外部中断0(INT0)在PD2管脚。而且Proteus的好处是,这里我们给单片机画电源的麻烦也可以省去。 接下来要做的就是看数据手册和建立工程,编程,编译的事了。 打开Programmers Notepad File->New->Project新建工程Hello_AVR,保存到Hello_AVR文件夹

UART多串口扩展器SP2349及其应用_王鹏

东北电力学院学报 第24卷第6期 Journal Of Northeast China Vol.24,No.6 2004年12月Institute Of Electric Power Engineering Dec.,2004 文章编号:1005-2992(2004)06-0071-03 UART多串口扩展器SP2349及其应用 王 鹏,佟 科,李贻涛 (东北电力学院电力工程,吉林吉林132012) 摘 要:为了满足数字化及智能化要求,目前以单片机为核心的智能化测控系统及电子产品应当具 备网络通信功能,而普通单片机仅有单个U AR T,远不能满足联网后同时和外部器件用U ART通信的 要求。SP2349是一种新颖的串口扩展器件,可将8位、16位、32位单片机的一个高波特率的UA RT扩 展为3个U ART,解决了普通单片机UA RT串口太少的问题,以很低的成本扩展了系统的功能。给出 该器件的主要特性、引脚说明及应用说明,并以A T89C52单片机为例给出多串口扩展应用电路及相应 程序框图。 关 键 词:串口扩展;单片机 中图分类号:T N492 文献标识码:A 当前,以单片机为核心构成的智能化测控系统及电子产品不断涌现,为了满足数字化及智能化要求,许多外围电路功能模块、部件、器件及传感器也具备了UART串口通信功能。而现阶段的8位、16位、32位单片机却大部分仅提供一个UART串口,这样就很难满足系统中一方面要与具有UART功能的串口部件通信,另一方面又要与上位机通信的要求。利用SP2349多串口扩展器,可很好地解决此问题。 1 工作特性 SP2349是采用低功耗CMOS工艺设计的UART多串口扩展芯片。该器件可将一个高波特率的UA RT串口扩展为3个较高波特率的UART串口,从而为系统需要多个串口时提供了很好的解决方案。该器件的主要特性如下: (1)不必购买学习新的开发工具利用原有仿真器和编程器即可; (2)使用简单采用独创的所见即所得的设置方法设置芯片的所有工作模式; (3)占用资源少不占用宝贵的外部中断资源仅复用已有的串口中断资源; (4)接口简单仅占用单片机4条输入/输出控制线I/O; (5)睡眠功能降低系统功耗提高系统抗干扰性能; (6)子串口波特率最高可达115.2kbps; (7)可由软件设置子串口波特率三个子串口波特率可独立软件设置; (8)可由软件关闭一个子串口另外一个子串口波特率可加倍; (9)可由软件设置为10位或11位数据格式用于奇偶效验或多机通信; (10)看门狗输出取代上位机外挂的看门狗监控IC大幅降低生产成本; (11)宽工作速率75Bps~115.2kbps; (12)可节电模式进入节电模式后典型静态电流约0.5μA; 收稿日期:2004-10-14 作者简介:王 鹏(1954-),男,东北电力学院电力工程系,高级工程师.

avr睡眠模式(包涵源程序)

AVR单片机电源管理及睡眠模式应用实例(含源代码) AVR单片机电源管理及睡眠模式应用实例(含源代码) /*********************************************** **** AVR 电源管理_睡眠模式范例 *** **** *** **** 作者: HJJourAVR *** **** 编译器:WINAVR20050214 *** **** *** ***********************************************/ /* 本程序简单的示范了如何令AVR ATMEGA16进入睡眠状态及唤醒 电源管理及睡眠模式的介绍 进入最低耗电的掉电模式 关闭各种模块 外部中断唤醒 M16掉电模式的耗电情况(看门狗关闭),时钟为内部RC 1MHz 0.9uA@Vcc=5.0V [手册的图表约为1.1uA] 0.3uA@Vcc=3.3V [手册的图表约为0.4uA] //测量的数字万用表是FLUKE 15B,分辨率0.1uA 这个程序需要MCU进入休眠状态,为实现最低功耗,JTAG接口会被关闭,只能通过LED的变化来观察程序的运行。 这个实验里面,用STK500(AVRISP) ISP下载线来烧录更方便。 熔丝位设置 1 关断BOD功能 BODEN=1 2 如果用ISP方式烧录,就可以完全关闭JTAG口了 OCEEN=1,JTAGEN=1 */ #include #include #include #include //时钟定为内部RC 1MHz,F_CPU=1000000 也可以采用其他时钟 #include /* sleep.h里面定义的常数,对应各种睡眠模式 #define SLEEP_MODE_IDLE 0 空闲模式 #define SLEEP_MODE_ADC _BV(SM0) ADC 噪声抑制模式

AVR单片机外部中断0、1、2详解

AVR单片机外部中断0、1、2 详解 中断基本包含: 1.中断源 2.中断向量(中断入口地址) 3.中断优先级 4.中断函数 除此之外,在单片机中,中断的执行或者中断的触发必 须符合以下的规则:中断触发|执行= 全局中断使能位AND 中断源使能位AND 中断源标志位 单片机内部中断的触发必须完成,全局中断使能,中断 源使能,中断源标志位置一等条件。除此之外,如果是 外部中断0,1,2(INT0,1,2),必须设置引脚触发的规则。最后呢,就是需要在程序里建立处理中断的中断 函数。 在编程的时候的步骤大致如下:(无视INT2) 1. 初始化PD2,PD3 为输入状态。DDRD|=BIT(2)|BIT(3); 2. 设置INT0,1 引脚触发的规则,实验中为低电平触发。MCUCR=0xF0; 3. 设置INT0,1 中断源使能位为逻辑1。 GICR|BIT(7)|BIT(6); 4. 清除INT0,1 的中断标志位(软件写入,逻辑1 为清

除)。GIFR|=BIT(7);BIT(6); 5. 全局中断允许位使能。SREG|=BIT(7); 6. 编辑中断处理函数。 /*ATmega16提供3个外部中断,分别由INT0、INT1和INT2引脚触发。 需要注意的是,如果将ATmega16设置为允许外部中断,则即使把INT0、INT1和INT2引脚 设置为输出方式,外部中断仍然会被触发。外部中断可选择采用上升沿触发、下降沿触发和 低电平触发(INT2中断只能采用沿触发方式。 */ #include; #include; #include "smg.h" /*1.状态寄存器SREG bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 I T H S V N Z C I:全局中断使能位。 在I置位后,单独的中断使能由不同的中断寄存器控制。若I为0,则禁止中断。 MCU 控制寄存器- MCUCR MCU 控制寄存器包含中断

USB转串口常用芯片

USB转串口常用三种芯片FT232、PL2303、CH340使用体会emouse原创文章,转载请注明出处https://www.wendangku.net/doc/d517459181.html,/emouse/ 现在笔记本上很少带有串口了,而串口又是做电子设计必备的通讯接口之一,好在USB转串口比较方便,市面上常用的USB转串口芯片有很多,最常见的有FT232、PL2303、CH340三种,这三种我分别说一下,同时整理一下他们的驱动程序,网上找驱动程序的很多,也有很多人发布,找驱动程序当然要去官网找了,这样才最可靠。我下面给出的驱动程序都来自官网,在页面上可以下载到不同系统的驱动。三个常用的芯片稳定程度和价格是一致的,FT232>CH340>PL2303,PL2303用的最多,因为最便宜,国内很多开发板板子上,包括USB转串口线用的都是这种芯片,几元钱一片,电路也简单,做简单的串口应用可以,但是做嵌入式开发如使用超级终端波特率在115200时就有可能出现延迟等现象。CH340是南京沁恒的芯片,做的还不错,对于普通应用完全能够满足。最好的是FT232稳定、可靠,在很多USB转串口的下载线、编程器中使用的都是这一种。 下面是整理的驱动下载地址。 FT232,支持XP WIN7等,自己在下载页面找。 https://www.wendangku.net/doc/d517459181.html,/Drivers/VCP.htm PL2303,此页面包括XP WIN7 WinCE等众多驱动。 https://www.wendangku.net/doc/d517459181.html,/eng/downloads.asp?ID=31 CH340,包括XP Win7 32位64位 https://www.wendangku.net/doc/d517459181.html,/product/usb/ch340.asp https://www.wendangku.net/doc/d517459181.html,/download/list.asp?id=65

AVR学习总结

目录 中断学习 (2) E2PROM学习 (3) 时钟系统及时钟源的学习 (5) 系统复位学习 (5) I/O端口的学习 (6)

中断学习 中断的过程:CPU 检测中断的产生(总是在每条指令的最后检测中断请求),然后响应中断,进入中断服务函数处理。 CPU 检测到中断并不是立即响应,而是有条件的: 1. 设立中断请求触发器 2. 设立中断屏蔽触发器 3. 总中断是开放的 4. CPU 现行指令结束后执行中断 Mega 有20个中断源,包括3个外部中断(int0、int1、int2)和18个内部中断。 与中断有关的寄存器: GIFR 通用中断标志寄存器: GIFR : 产生中断时由CPU 自动置1,响应后自动置0。 GICR 通用中断控制寄存器: GICR : 位7—5为外部中断0、1、2使能,该位置1且全局中断使能置1即响应外部中断。 位4—0与外部中断无关,为中断向量标号的选择有关。 SREG 状态寄存器: SREG : 全局中断使能标志位,置1时使能全局中断(asm (”SEI ”)),响应后应使其置0(asm (”CLI ”))。 MCUCR 单片机控制寄存器: MCUCR : Bit7—4 Bit1、0

MCUCSR 单片机控制和状态寄存器: MCUCSR : 外部中断2触发方式设置:Bit6写0为下降沿触发,Bit6写1为上升沿触发。 外部中断的初始化可以为以下步骤: 1. 设置外部中断的触发方式(0、1时设置MCUCR ;2时设置MCUCSR )。 2. (清零GIFR 寄存器对应的位,此步骤可省略。另外,此寄存器可用来做可读寄存器, 通过判断完成一些操作)。 3. 打开对应外部中断的控制位(GICR )。 4. 打开全局中断使能为I (SREG )。 5. 写中断服务函数。格式为: #pragma interrupt_handler … 阴影标注部分是必须的,func1是函数名,vector number 是中断向量标号,在头文件中定义的向量号一般前加 ”iv_中断源名称”,宏定义相当于直接使用向量号,但用起来意义明显。 注意:外部中断源的引脚一定要设置成输入作为中断检测的输入接口,而且一定要设置成带上拉电阻的方式(DDRD=0x00,PORTD=0xFF ),否则PD 端口一直为低电平就会一直触发中断。 在ICCA VR 中可以用Wizard 来生成服务程序,一个很简单的工具。只需对生成代码做简单的修改即能完成相应的功能,节省的代码的书写,同时提高了编程的效率。 E 2 PROM 学习 Mega16有512Bytes 的E 2PROM ,用户可以通过操作其控制寄存器来实现对其读写即对E 2PROM 各存储单元的访问。 与E 2PROM 有关的寄存器: EEAR 地址寄存器(分为两个字节EEARH 、EEARL ): EEARH : EEARL : E 2PROM 的初值无定义,因此必须为其赋一个确定的数值。 EEDR 数据寄存器: EEDR :

常用USB转串口芯片介绍

常用USB转串口芯片介绍2009年08月18日星期二 16:05 2009-06-25 08:08 原理应用pl2303 3RMB. 标准,价格USB1.1符合PL2303. 2 CP2102CP2103/简介桥接器,提供一个使用最小化元USB-UART CP2103是一款高度集成的RS232接口转换器CP2102/公司推出的Silicon LaboratoriesUSB 接口与收发器、振荡器和带有全部调功能控制器、USB/CP2103包含了一个USBUSBPCB空间来实现RS232转换的简便解决方案。如图1所示,CP2102件和

-28的封装。mm×5 mm MLP5 制解调器控制信号的异步串行数据总线(UART),采用 信息流格式发送给外设;另一方面可从RS232双向转换器,一方面可以从丰机接收USB数据并将其转换为作为CP2102/CP2103USB/RS232 数据格式传送至主机,其中包括控制和握手信号。 RS232外设接收数据转换为USB 2.1 USB功能控制器和收发器 接口异步串行数据总线(UART) 2.2 CP2102/CP2103UART接口包括TX (发送)和RX(接收)数据信号以及RTS、CTS、DSR、DTR、DCD和RI控制信号。UART支持RTS/CTS、DSR/DTR和X-On/X-Off 握手。 通过编程设置UART,支持各种数据格式和波特率。在PC机的COM端口编程设置UART的数据格式和波特率。表1为其数据格式和波特率。 EEPROM内部2.3 、产品说明、电源参数、器件版本号和器件内部集成有ID1USB个供应商CP2102/EEPROMCP2103、产品,用于存储由设备制造商定义的ID所示的默认配置数据。注意,对于可能使用多个基1EEPROM没有被OEM的数据占用,则采用表序列号等信息。USB配置数据的定义是可选的。如果应用来说,则需要专用的序列号。

AD9850芯片原理及使用方法总结

AD9850芯片原理及使用方法总结 DDS专用芯片电路广泛的应用于各个领域,其中以AD公司的产品比较有代表性。如AD7008、AD9850、AD9851、AD9852、AD9854、AD9858等。其系统时钟频率从30MHz到300MHz不等,其中的AD9858系统时钟更是达到了1GHz。这些芯片还具有调制功能,如AD7008可以产生正交调制信号,AD9852可以产生FSK(频移键控)、PSK(相移键控)、线性调频以及幅度调制的信号。这些芯片集成度高,内部都集成了D/A转换器,精度最高可达12bit,同时都采用了一些优化设计来提高性能。如这些芯片中大多采用了流水技术,通过流水技术的使用,提高了相位累加器的工作频率,从而使得DDS芯片的输出频率可以进一步提高。 一、AD9850简介 AD9850是美国AD公司采用先进的DDS技术,1996年推出的高集成度DDS频率合成器,采用CMOS工艺,其功耗在3. 3V供电时仅为155mW,扩展工业级温度范围为- 40~80℃,采用28脚SSOP表面封装形式。它内部包括可编程DDS系统、高性能DAC及高速比较器,能实现全数字编程控制的频率合成器和时钟发生器。接上精密时钟源,AD9850可产生一个频谱纯净、频率和相位都可编程控制的模拟正弦波输出。此正弦波可以直接作为信号源输出或者送入AD9850的高速比较器从而得到方波输出。AD9850接口控制简单,可以用8位并行口或串行口直接输入频率、相位等控制数据。32位频率控制字,在125MHz时钟下,输出频率分辨率为0.029Hz,频率范围为0.1Hz~40MHz,幅值范围为0.2~1V。其引脚排列如图1所示,各引脚定义如下: D0~D7(4-1,28-25):控制字并行输入,给内部寄存器装入 40 位控制数据,其中D7可做串行输入 DGND(5、24):数字地 DVDD(6、23):为内部数字电路提供电源(3.3V或5V) W-CLK(7):控制字装入时钟,用于加载并行/串行的频率/相位控制字,上升沿有效 FQ-UD(8):频率更新控制信号,时钟上升沿确认输入数据有效 FREFCLOCK(9):外部参考时钟(有源晶振)输入, 最高125MHz AGND(10、19):模拟地 AVDD(11、18):为内部模拟电路提供电源(5V), 可与数字电源共用 Rset(12):外接电阻,决定器件输出电流大小, 典型值为3.9K QOUT(13):内部比较器正向输出端(方波) QOUT(14):内部比较器反向输出端(方波) VINN(15):内部比较器的负向输入端 VINP(16):内部比较器的正向输入端 DACBL(17):内部DAC外接参考电压端,可悬空 IOUTB(20):“互补”DAC 输出

常用USB转串口芯片介绍

常用USB转串口芯片介绍 2009年08月18日星期二 16:05 2009-06-25 08:08 pl2303原理应用

PL2303符合USB1.1标准,价格3RMB. 2 CP2102/CP2103简介 Silicon Laboratories公司推出的USB接口与RS232接口转换器CP2102/CP2103是一款高度集成的USB-UART桥接器,提供一个使用最小化元件和PCB空间来实现RS232转换USB的简便解决方案。如图1所示,CP2102/CP2103包含了一个USB功能控制器、USB收发器、振荡器和带有全部调制解调

器控制信号的异步串行数据总线(UART),采用5 mm×5 mm MLP-28的封装。 CP2102/CP2103作为USB/RS232双向转换器,一方面可以从丰机接收USB数据并将其转换为RS232信息流格式发送给外设;另一方面可从RS232外设接收数据转换为USB数据格式传送至主机,其中包括控制和握手信号。 2.1 USB功能控制器和收发器 2.2 异步串行数据总线(UART)接口

CP2102/CP2103 UART接口包括TX (发送)和RX(接收)数据信号以及RTS、CTS、DSR、DTR、DCD和RI控制信号。UART支持RTS/CTS、DSR/DTR和X-On/X-Off握手。 通过编程设置UART,支持各种数据格式和波特率。在PC机的COM端口编程设置UART的数据 格式和波特率。表1为其数据格式和波特率。 2.3 内部EEPROM CP2102/CP2103内部集成有1个EEPROM,用于存储由设备制造商定义的USB供应商ID、产品ID、产品说明、电源参数、器件版本号和器件序列号等信息。USB配置数据的定义是可选的。如果EEPROM没有被OEM的数据占用,则采用表1所示的默认配置数据。注意,对于可能使用多个基于CP2102/CP2103连接到同一PC机的OEM应用来说,则需要专用的序列号。 内部EEPROM是通过USB编程设置的,允许OEM的USB配置数据和序列号可以在出厂和测试时直接写入系统板上的CP2102/CP2103。Cygnal提供了一个专门为CP2102/CP2103的内部EEP-ROM编程设置工具,同时还提供免费的驱动Windows DLL格式的程序库。这个程序库可将。EEP-ROM编程步骤集成到OEM在制造中进行流水线式测试和序列号的管理的自定义软件中。EEP-ROM的写寿命的典型值为100 000次,数据保持时间为100年。为了防止更改USB描述符,应将其锁定。 2.4 其他功能 CP2103除上述功能外也可实现RS485接口与USB接口转换功能,CP2103支持4个可按照控制信息定义的GPIO引脚。 3 典型应用电路 3.1 硬件电路设计 原设备的RS232接口仅用TXD/RXD 2个引脚信号和地3条线。单片机8031与RS232接口间的电平驱动采用Maxim公司的MAX202CPE,而采用光电耦合器6N137实现隔离。 采用CP2102改造的接口应用电路如图2所示。该电路已通过制板和软硬件调试,完全可靠。串口扩展,仪需2~3只外部去耦电容器,REGIN端需加0.1μF与1.0μF并联的去耦电容。CP2102 的供电电源由计算机的USB接口提供,再连接3只保护管以便于使用。该电路仅使用CP2102的UART 总线上TXD/RXD 2个引脚,其余悬空。单片机可直接识别CP2102的UART总线上信号,为确保数据收

AVR单片机中断

AVR单片机中断应用设计要点 四川侯鑫

AVR的中断源较多,尤其是AT-mega128,一共有35个外部及内部中断源。通常。Flash 程序存储器空间的最低位置(0×0000~0×0045)定义为复位和中断向量空间。在中断向量表中,处于低地址的中断向量所对应的中断拥有高优先级。所以,系统复位RESET优先级最高。 一、中断设计注意事项1.具备Bootloader功能的AVR。其中断向量区可以在Flash程序存储器空间最低位置和Bootloader区的头部来回迁移,这主要用于配合Bootloadel程序的应用。如果不使用Bootloadel-功能。 一般不使用中断向量区迁移。 2.Flash较小的AVR芯片。其一个中断向量占据1个字的空间。用于放置一条相对转移RJMP指令(范围-2k~+2k字),跳到中断服务程序。对于不使用的中断。在中断向量区中应放置1条中断返回指令RETI。以增强程序的抗干扰性。 3.ATmega128的Flash空间为64k字节,因此它的一个中断向量占据2个字的空间。用于放置一条绝对转移JMP指令(指令长度为2个字)。跳到中断服务程序。对于不使用的中断。 在中断向量区中应连续放置2条中断返回指令RETI,以增强程序的抗干扰性。当使用汇编语言编写系统程序时应注意。 4.当MCU响应一个中断时.其硬件系统会自动将中断返回地址压入系统堆栈。并关闭全局中断响应(硬件将中断标志I位清0).清除该中断的中断标志位;执行中断返回指令RETI 时,硬件会先允许全局中断响应(硬件将中断标志I位置1),然后从系统堆栈中弹出返回地址到程序计数器PC中,继续执行被中断的程序。除此之外,MCU的硬件没有对中断保护做其他处理。 5.在编写中断服务程序时。首先要编写中断现场保护程序。如保护MCU的状态寄存器等。在中断返回之前,不要忘记恢复中断现场。 6.如果设置和允许外部中断响应。 即使是外部INT0~INT7引脚设置为输出。在引脚上的电平变化也会触发外部中断发生。这一特性提供了使用软件产生中断的途径。 7.外部中断可选择采用上升沿触发、下降沿触发、电平变化(由高变低或由低变高)和低电平触发等方式,无外部高电平触发方式。具体触发方式由外部中断控制寄存器EICRA(INT3:0)和EICRB(INT7:4)决定。 8.选择外部低电平方式触发中断时应注意:(1)引脚上的低电平必须一直保持到当前一条指令执行完成后才能触发中断。(2)低电平中断并不置位中断标志位。即外部低电平中断的触发不是由于中断标志位引起的,而是外部引脚上电平取反后直接触发中断(需要开放全局中断允许)。因此,在使用低电平触发方式时,中断请求将一直保持到引脚上的低电平消失为

USB转串口芯片介绍

pl2303原理应用 PL2303符合USB1.1标准,价格3RMB.

2 CP2102/CP2103简介 Silicon Laboratories公司推出的USB接口与RS232接口转换器CP2102/CP2103是一款高度集成的USB-UART桥接器,提供一个使用最小化元件和PCB空间来实现RS232转换USB的简便解决方案。如图1所示,CP2102/CP2103包含了一个USB功能控制器、USB 收发器、振荡器和带有全部调制解调器控制信号的异步串行数据总线(UART), 采用5 mm×5 mm MLP-28的封装。 CP2102/CP2103作为USB/RS232双向转换器,一方面可以从丰机接收USB数据并将其转换为RS232信息流格式发送给外设;另一方面可从RS232外设接收数据转换为USB 数据格式传送至主机,其中包括控制和握手信号。 2.1 USB功能控制器和收发器

2.2 异步串行数据总线(UART)接口 CP2102/CP2103 UART接口包括TX (发送)和RX(接收)数据信号以及RTS、CTS、DSR、DTR、DCD和RI控制信号。UART支持RTS/CTS、DSR/DTR和X-On/X-Off 握手。 通过编程设置UART,支持各种数据格式和波特率。在PC机的COM端口编程设置UART的数据格式和波特率。表1 为其数据格式和波特率。 2.3 内部EEPROM CP2102/CP2103内部集成有1个EEPROM,用于存储由设备制造商定义的USB 供应商ID、产品ID、产品说明、电源参数、器件版本号和器件序列号等信息。USB配置数据的定义是可选的。如果EEPROM没有被OEM的数据占用,则采用表1所示的默认配置数据。注意,对于可能使用多个基于CP2102/CP2103连接到同一PC机的OEM应用来说,则需要专用的序列号。 内部EEPROM是通过USB编程设置的,允许OEM的USB配置数据和序列号可以在出厂和测试时直接写入系统板上的CP2102/CP2103。Cygnal提供了一个专门为CP2102/CP2103的内部EEP-ROM编程设置工具,同时还提供免费的驱动Windows DLL格式的程序库。这个程序库可将。EEP-ROM编程步骤集成到OEM在制造中进行流水线式测试和序列号的管理的自定义软件中。EEP-ROM的写寿命的典型值为100 000次,数据保持时间为100年。为了防止更改USB描述符,应将其锁定。 2.4 其他功能 CP2103除上述功能外也可实现RS485接口与USB接口转换功能,CP2103支持4个可按照控制信息定义的GPIO引脚。 3 典型应用电路 3.1 硬件电路设计 原设备的RS232接口仅用TXD/RXD 2个引脚信号和地3条线。单片机8031与

相关文档