本节将详细介绍avr单片机的流行编程方式,并略述其工作原理,旨在让avr爱好者根据自己的需要选择或制作恰当的编程工具。下面我们一起来看看avr单片机编程方式讲解。
1、avr单片机用什么编程?
avr单片机是1997年由atmel公司研发出的增强型内置flash的risc(reduced instruction set cpu) 精简指令集高速8位单片机。可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。avr单片机是 atmel 公司 1997 年推出的 risc 单片机。risc(精简指令系统计算机)是相对于cisc(复杂指令系统计算机)而言的。risc 并非只是简单地去减少指令,而是通过使计算机的结构更加简单合理而提高运算速度的。
对于初学者,建议使用icc avr.用icc编辑了工程文件,然后在下载并在线仿真调试时,要用avr studio。jtag仿真器,作为avr最小系统版和电脑的串口的链接点,能做到在线仿真和下载程序。这是常用的组合。
2、avr编程方式介绍
本节将详细介绍avr单片机的流行编程方式,并略述其工作原理,分析其优缺点,旨在让avr爱好者根据自己的需要选择或制作恰当的编程工具。
2.1 stk200/300并口isp编程方式
这是比较常用的编程方式,目前大多台式机都有打印口(并口),如图2-1所示:
图2.1 pc机的打印口
一般来说,pc机并口电路由74ls373(数据锁存器)和74ls240(状态缓冲器)组成。对于lpt1来说,数据锁存器74ls373的i/o地址为378h,该端口称为数据端口,而状态缓冲器74ls240的地址为379h,该端口成为状态端口。其中,数据端口可读可写,而状态端口只可读。根据并行接口的特点制作的avr下载工具硬件电路简单,配合pc端的下载软件即可完成对avr单片机的编程。
既然是通过串行方式编程,则需要使用avr的spi串行外设接口。有兴趣的朋友可以学习一下通过spi接口下载编程的时序图(如图2.2所示)。在这里就不赘述了。
图2.2 spi下载编程时序图
了解了下载编程的时序,我们就可以在pc端编写相应的上位机,通过并口模拟这个时序,利用avr单片机的spi接口对其进行编程,当下比较流行的上位机软件是双龙公司http://www.sl.com.cn),目前的版本为1.7.0.16,除了支持利用并口进行isp编程(avrisp)外,还支持usbisp,jtagmkii等方式。如图2.3所示。
图2.3 双龙isp编程软件
从其界面可以看出,slisp实现了完整的下载功能:配置熔丝位,烧录flash,烧录eeprom等。在配置熔丝位的时候要尤其注意与avr时钟相关的熔丝设置,避免因选择了错误的时钟源而锁死mcu。
有了现成的上位机软件,那么这个工具的硬件是如何设计的呢?千万不要想得太复杂,既然上位机已经替我们完成了spi下载时序的模拟和数据的读写,我们只要搭好并口和avr 硬件spi接口之间的“桥梁”就可以了。
目前常见的并口下载线都有一块74hc244(如图2.4所示),该芯片为八缓冲器,三态输出,由目标机电源供电。该芯片有两个输出使能(oe)引脚(低电平有效),这样,我们可以做到在下载时使能输出,而下载完成后,拉高两个oe引脚,使74hc244各缓冲器处于高阻态,相当于拔除了下载线,从而真正实现了在线编程;除此之外,74hc244还有增大并口驱动能力的作用,如果没有74hc244,若avr的spi硬件接口上接有负载元件,很有可能导致下载失败,而有了缓冲器,驱动能力变大,就能成功下载程序。并口的引脚定义如图2.4所示。
图2.4 74hc244和并口db25引脚定义
并口和avr spi接口的连接方式要符合pc端所使用的上位机对硬件连接的定义。双龙slisp要求的硬件连接方式如图2.5所示。
图2.5 并口isp硬件接口连接
图2.6 并口isp编程器硬件原理图
注意,硬件图中使用并口的pin4和pin5作为74hc244的使能信号,以达到编程完成后隔离avr和下载器的目的。
stk200/stk300是atmel公司早期推出的一种烧写程序的方式,故而支持的avr型号比较少,烧录速度也比较低,且不支持avr studio;此外,随着笔记本的普及和usb技术的发展,pc并口的使用频率越来越低,所以,此类烧录方法将会最终退出历史舞台。不过,由于其硬件电路简单,编程方式实现容易,至今仍有很多avr爱好者使用该方式。
2.2 stk500/avrisp编程方式
stk500是atmel最推荐的编程方式,由于采用了atmel官方的stk500固件,该类编程工具可以烧写全系列的avr,烧写速度相对并口isp方式来说要快不少,并且,基于stk500烧录方式的编程工具支持avr studio。在这里,我们介绍国外avr发烧友制作的一款基于atmega8和stk500烧写方式的编程工具。
在our avr论坛上,马潮老师有一篇帖子详细说明了该工具的制作,并提供了全部资料,有兴趣的朋友可以访问avrisp制作完整资料以获得更多信息。该工具不支持basecom avr,iccavr,codevisionavr直接下载,而并口isp则可以,这不能不说是一个遗憾。基于stk500的这款编程工具只支持avr studio,并且编程下载速度无法自动调节,但是,时下的大多笔记本都没有并口,所以这还是一个比较好的方案。此外,该工具需要在系统中安装上层驱动,有xp和vista的驱动。经测试,能够完美支持。注意,大家要安装微软原版的,未经阉割的操作系统,否则可能造成安装了驱动文件,但编程工具无法使用。
该编程工具的硬件电路图如图2.7所示。
图2.7 avrisp硬件电路原理图
从硬件电路可以看出,该工具需要的外设较少:电源芯片ht7536一片,mega8一片,晶振一枚,电阻电容若干,完全可以自制,在avrisp制作完整资料一文中,马潮老师也给出了固件和上层驱动,把固件烧录入mega8,安装好上层驱动以后即可使用。制作完成的实物如图2.8所示。
图2.8 avrisp实物图
硬件电路制作完成后,将jp短接,使用其他的编程器(如并口isp),将10pin的编程接口插入avrisp的编程口。编程前注意配置熔丝位:掉电检测电压为2.7v,开启bod,系统时钟选为高频外部晶体,满幅振荡。如图2.9所示
图2.9 avrisp熔丝位设置
设置好熔丝位,将程序烧录入atmega8后,将avrisp的usb口和pc相连,系统会提示发现新硬件,这里以windows xp sp3为例说明驱动安装方法,如图2.10,图2.11,图2.12所示。注意选择“从列表或指定位置安装”
图2.10 avrisp驱动安装步骤一
图2.11 avrisp驱动安装步骤二
图2.12 avrisp驱动安装步骤三
安装好驱动好以后,我们可以在设备管理器中看到名为“usbasp-isp”这个设备,也就是avrisp编程器,该设备在“端口(com和lpt)”分支下,上层驱动将编程器虚拟为一个串口,使用时注意将其串口号的范围更改至“com1~com9”中的任意一个,如图2.13所示。因为avr studio仅支持这9个串口编程设备。注意不要使用usb hub(usb集线器)连接avrisp,否则会造成安装好驱动后,编程器却无法使用的后果。
图2.13 设备管理器中的usbasp-isp
双击这个设备,可以在“端口设置”选项卡中的“高级”选项中修改其串口号。安好驱动,设置好串口以后,我们就可以使用avr studio来下载程序了。打开avr studio,选择stk500编程方式,选择串口号,如图2.14所示(或点击tools→program avr→auto connect)。
图2.14 使用avr studio下载程序
成功连接后,将弹出如图2.15所示的对话框,注意,上文提到,该工具不能自动调节下载速度,因此,我们要手动修改下载速率,注意下载速度不能超过被编程的avr芯片的时钟速率的1/4,否则avr studio会弹出错误对话框提示你降低编程速度。在下拉菜单中修改好下载速度后,注意点击write按钮保存设置,然后单击close退出。
图2.15 avrisp下载速率的设置
设置完成后,单击“program”选项卡,在“flash”一栏,浏览到需要下载的*.hex文件,单击program,即可完成编程操作,速度还是比较快的。
面对种种挑战,广东手机厂商如何快速解决技术掣肘?
缺陷检测系统是怎么用于材料领域的呢
充满变数的2016年科技业趋势预测
韩国12月芯片出货量同比增长113.7%
使用MOS管的双向电平转换电路设计
avr单片机用什么编程?avr单片机编程方式是什么
扒一扒华为路由 A1 畅享版,如何做到便宜好用
MiniLED将进入高速发展阶段 各大厂商相继布局
空中客车将展出最新的A320空客飞行空间全尺寸客舱模型
区块链将改善老年人退休储蓄的方式
用于便携式远程痕量生物标志物检测的自供电传感装置
Mu6 Ring空气耳机:黑科技加持,不入耳的“运动”耳机
FPGA代码经验 case,casez,casex语句
局部放电检测难度大、风险高?FLIR Si124让你安全准确检测
从类型/原理/特点及应用四个方面论述温度传感器
本周看点:三星赔偿苹果5.38亿美元 小米正式进军意大利
选用颗粒专用热值仪化验颗粒燃料发热量,轻松实现零误差
压敏电阻在整流电路中的作用
顺络电子5G基础元器件产品已实现部分批量供货
紫外LED知识汇总