历史上的今天
返回首页

历史上的今天

今天是:2024年12月12日(星期四)

正在发生

2019年12月12日 | avr单片机用什么编程?avr单片机编程方式是什么

2019-12-12 来源:elecfans

  本节将详细介绍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所示:

avr单片机用什么编程?avr单片机编程方式是什么

  图2.1 PC机的打印口


  一般来说,PC机并口电路由74LS373(数据锁存器)和74LS240(状态缓冲器)组成。对于LPT1来说,数据锁存器74LS373的I/O地址为378H,该端口称为数据端口,而状态缓冲器74LS240的地址为379H,该端口成为状态端口。其中,数据端口可读可写,而状态端口只可读。根据并行接口的特点制作的AVR下载工具硬件电路简单,配合PC端的下载软件即可完成对AVR单片机的编程。


  既然是通过串行方式编程,则需要使用AVR的SPI串行外设接口。有兴趣的朋友可以学习一下通过SPI接口下载编程的时序图(如图2.2所示)。在这里就不赘述了。

avr单片机用什么编程?avr单片机编程方式是什么

  图2.2 SPI下载编程时序图


  了解了下载编程的时序,我们就可以在PC端编写相应的上位机,通过并口模拟这个时序,利用AVR单片机的SPI接口对其进行编程,当下比较流行的上位机软件是双龙公司http://www.sl.com.cn),目前的版本为1.7.0.16,除了支持利用并口进行ISP编程(AVRISP)外,还支持USBISP,JTAGMKII等方式。如图2.3所示。

avr单片机用什么编程?avr单片机编程方式是什么

  图2.3 双龙ISP编程软件


  从其界面可以看出,SLISP实现了完整的下载功能:配置熔丝位,烧录Flash,烧录EEPROM等。在配置熔丝位的时候要尤其注意与AVR时钟相关的熔丝设置,避免因选择了错误的时钟源而锁死MCU。


  有了现成的上位机软件,那么这个工具的硬件是如何设计的呢?千万不要想得太复杂,既然上位机已经替我们完成了SPI下载时序的模拟和数据的读写,我们只要搭好并口和AVR 硬件SPI接口之间的“桥梁”就可以了。


  目前常见的并口下载线都有一块74HC244(如图2.4所示),该芯片为八缓冲器,三态输出,由目标机电源供电。该芯片有两个输出使能(OE)引脚(低电平有效),这样,我们可以做到在下载时使能输出,而下载完成后,拉高两个OE引脚,使74HC244各缓冲器处于高阻态,相当于拔除了下载线,从而真正实现了在线编程;除此之外,74HC244还有增大并口驱动能力的作用,如果没有74HC244,若AVR的SPI硬件接口上接有负载元件,很有可能导致下载失败,而有了缓冲器,驱动能力变大,就能成功下载程序。并口的引脚定义如图2.4所示。

avr单片机用什么编程?avr单片机编程方式是什么

  图2.4 74HC244和并口DB25引脚定义


  并口和AVR SPI接口的连接方式要符合PC端所使用的上位机对硬件连接的定义。双龙SLISP要求的硬件连接方式如图2.5所示。

avr单片机用什么编程?avr单片机编程方式是什么

  图2.5 并口ISP硬件接口连接
avr单片机用什么编程?avr单片机编程方式是什么

  图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所示。

avr单片机用什么编程?avr单片机编程方式是什么

  图2.7 AVRISP硬件电路原理图


  从硬件电路可以看出,该工具需要的外设较少:电源芯片HT7536一片,Mega8一片,晶振一枚,电阻电容若干,完全可以自制,在AVRISP制作完整资料一文中,马潮老师也给出了固件和上层驱动,把固件烧录入Mega8,安装好上层驱动以后即可使用。制作完成的实物如图2.8所示。

avr单片机用什么编程?avr单片机编程方式是什么

  图2.8 AVRISP实物图


  硬件电路制作完成后,将JP短接,使用其他的编程器(如并口ISP),将10PIN的编程接口插入AVRISP的编程口。编程前注意配置熔丝位:掉电检测电压为2.7V,开启BOD,系统时钟选为高频外部晶体,满幅振荡。如图2.9所示

avr单片机用什么编程?avr单片机编程方式是什么

  图2.9 AVRISP熔丝位设置


  设置好熔丝位,将程序烧录入ATmega8后,将AVRISP的USB口和PC相连,系统会提示发现新硬件,这里以Windows XP SP3为例说明驱动安装方法,如图2.10,图2.11,图2.12所示。注意选择“从列表或指定位置安装”

avr单片机用什么编程?avr单片机编程方式是什么

  图2.10 AVRISP驱动安装步骤一
avr单片机用什么编程?avr单片机编程方式是什么

  图2.11 AVRISP驱动安装步骤二
avr单片机用什么编程?avr单片机编程方式是什么

  图2.12 AVRISP驱动安装步骤三


  安装好驱动好以后,我们可以在设备管理器中看到名为“USBASP-ISP”这个设备,也就是AVRISP编程器,该设备在“端口(COM和LPT)”分支下,上层驱动将编程器虚拟为一个串口,使用时注意将其串口号的范围更改至“COM1~COM9”中的任意一个,如图2.13所示。因为AVR Studio仅支持这9个串口编程设备。注意不要使用USB HUB(USB集线器)连接AVRISP,否则会造成安装好驱动后,编程器却无法使用的后果。

avr单片机用什么编程?avr单片机编程方式是什么

  图2.13 设备管理器中的USBASP-ISP


  双击这个设备,可以在“端口设置”选项卡中的“高级”选项中修改其串口号。安好驱动,设置好串口以后,我们就可以使用AVR Studio来下载程序了。打开AVR Studio,选择STK500编程方式,选择串口号,如图2.14所示(或点击Tools→Program AVR→Auto Connect)。

avr单片机用什么编程?avr单片机编程方式是什么

  图2.14 使用AVR Studio下载程序


  成功连接后,将弹出如图2.15所示的对话框,注意,上文提到,该工具不能自动调节下载速度,因此,我们要手动修改下载速率,注意下载速度不能超过被编程的AVR芯片的时钟速率的1/4,否则AVR Studio会弹出错误对话框提示你降低编程速度。在下拉菜单中修改好下载速度后,注意点击Write按钮保存设置,然后单击Close退出。

avr单片机用什么编程?avr单片机编程方式是什么

  图2.15 AVRISP下载速率的设置


  设置完成后,单击“Program”选项卡,在“Flash”一栏,浏览到需要下载的*.hex文件,单击Program,即可完成编程操作,速度还是比较快的。

推荐阅读

史海拾趣

Adaptive Networks Inc公司的发展小趣事

对不起,我无法提供关于Adaptive Networks Inc公司发展的故事。

BILIN公司的发展小趣事

首先,需要指出的是,根据我所掌握的信息,并没有名为“BILIN”的公司在电子行业内有显著的发展记录。因此,我无法为你提供关于BILIN公司的5个发展起来的相关故事。可能是你对公司名称存在误解,或者你所指的公司在电子行业中并不广为人知。

然而,我可以为你描述一个知名的电子公司——如华为——的发展故事,作为参考。如果你对特定的公司或行业有更具体的要求,请提供更多信息,以便我能够为你提供更准确的答案。

华为的发展故事之一:技术创新的崛起

华为,作为中国电子行业的佼佼者,其发展历程充满了技术创新和不懈努力的故事。早在上世纪80年代,华为以交换机代理业务起步,逐步积累了通信行业的经验和知识。随着技术的不断进步,华为开始自主研发交换机产品,逐渐在市场上崭露头角。

进入21世纪,华为加大了对研发的投入,不仅推出了多款具有竞争力的通信设备,还开始涉足智能手机领域。通过持续的技术创新和优质的产品,华为逐渐在全球市场上取得了重要地位。

然而,华为的发展并非一帆风顺。在面对国际市场的竞争和贸易壁垒时,华为始终坚持自主创新,加强与国际合作伙伴的合作,努力拓展海外市场。同时,华为还积极投入研发,推出了5G等前沿技术,为全球通信行业的发展做出了重要贡献。

华为的发展故事,不仅是技术创新的崛起,更是中国电子行业不断壮大和走向世界的缩影。通过持续的创新和努力,华为已经成为了全球电子行业的领军企业之一。

请注意,这只是一个示例故事,并非真实关于BILIN公司的故事。如果你需要关于特定公司的信息,请提供准确的公司名称,以便我能够为你提供更准确的内容。

DAPAudio公司的发展小趣事

随着数字化和智能化的快速发展,音频处理行业也面临着巨大的变革。DAPAudio积极应对这一变革,不断推出适应市场需求的新产品和技术。通过与科技公司、高校和研究机构的合作,DAPAudio在人工智能、物联网等新兴领域取得了重要突破,为公司未来的发展奠定了坚实的基础。

C.K TOOLS公司的发展小趣事

随着电子行业的快速发展,不同企业对生产工具的需求也日益多样化。C.K TOOLS敏锐地捕捉到了这一市场变化,开始提供定制化服务。他们根据客户的具体需求,量身定制工具,满足电子制造过程中的特殊需求。这种定制化服务不仅提高了客户的生产效率,也进一步巩固了C.K TOOLS在电子行业中的地位。

Baneasa SA公司的发展小趣事

Baneasa SA公司成立之初,便专注于电子元器件的研发与生产。公司凭借创始团队的技术积累和市场洞察力,成功开发出一款高性能的半导体芯片,迅速在行业内崭露头角。这款芯片以其出色的稳定性和可靠性赢得了市场的广泛认可,为Baneasa SA的发展奠定了坚实的基础。

浙江东亚电子(DongYa)公司的发展小趣事

浙江东亚电子自成立以来,一直致力于技术创新和研发。公司拥有一支由50余名技术研发人员组成的专业团队,不断开发新产品和解决方案,以满足市场需求。这些创新产品不仅在国内外市场上获得了广泛认可,还为公司在新能源、通讯和军工等领域树立了良好的品牌形象。

问答坊 | AI 解惑

请问后缀为PCB的文件用什么软件打开呢

请问后缀为PCB的文件用什么软件打开呢请问后缀为PCB的文件用什么软件打开呢 谢谢了…

查看全部问答>

程序滤波(很多信号采集实用)

1、限幅滤波法(又称程序判断滤波法)     A、方法:         根据经验判断,确定两次采样允许的最大偏差值(设为A)         每次检测到新值时判断:    &n ...…

查看全部问答>

寻觅高手解答

设备标准: Linux version 2.4.17-uC-pre5 (root@dhome) (gcc version 2.95.3 20010315 (release)(ColdFire patches - 20010318 from http://fiddes.net/coldfire/)(uClinux XIP and shared lib patches from http://www.snapgear.com/)) #2 ?? 4?? ...…

查看全部问答>

诚招WINCE软件工程师(北京)

1、软件工程或计算机软件相关专业,本科以上学历,英语四级以上。   2、熟练掌握C++及MFC编程,有3年以上基于EVC系统的开发经验。   公司地址:北京市海淀区西三旗 如有意者,可将简历发送至:hj3850@163.com 亦可来电 ...…

查看全部问答>

5438与仿真器终于连上了

可以连上,必须把JTAG口RST脚上的电容拿掉,但又碰到了新问题:在线仿真5438时速度极慢,下载操作需1分钟左右,执行一个单步需十几秒,执行一次复位需半分钟,运算结果倒是正确的。iar是4.20.1版,操作系统是vista,仿真器是USB型的LSD-FET430UIF, ...…

查看全部问答>

Lm3S811 PLL 设置倍频到 50Mhz 之后,为什么实际只有37.5Mhz 呢?

Lm3S811 PLL 设置倍频到 50Mhz 之后,为什么实际只有37.5Mhz 呢?   SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |SYSCTL_XTAL_6MHZ);//UART 初始化SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);SysCtlPeripheral ...…

查看全部问答>

急求助:Linux无法从NFlash(K9F1208U0A)启动

自己开了一个ARM架构板, CPU: S5PC100, SDRAM: K4T1G164QQ(两颗),Nand flash: K9F1208U0A。现在系统能从SD卡启动,对FLASH擦除操作后返回OK,但将SD卡取后,从FLASH启动串口不出现任何信息。有没有人知道是哪里出了问题,急求大家的帮助,不甚 ...…

查看全部问答>

学习心得

看了视频教程,了解MSP430单片机主要侧重低功耗,应用于好多产品,像电能表,远传抄表等。这使我想起以前面试过一家电能表公司,就是用MSP430开发的。MSP430单片机是16位单片机,在常用的几类单片机中,像51,PIC,AVR,MSP430,FRESCALL,只有MSP430全 ...…

查看全部问答>

CCS使用

在使用CCS的时候,出现下图的提示,这是什么原因啊?要怎样解决呢? ,…

查看全部问答>

求介绍一款支持G.711压缩标准的语音芯片,能将语音数字化!

最近做项目用到支持G.711标准的语音压缩芯片,并且要求录音时间不小于30S,我算了一下这个要求芯片的存储空间至少是64KB*30=1920KB,大于2M的就可以。因为小弟接触的比较少,在网上也没有搜到,故求大神帮助! …

查看全部问答>