自已动手制作AVR仿真器
- 格式:doc
- 大小:485.50 KB
- 文档页数:5
本文只是简单介绍一下初学者如何用Proteus 6 Professional来仿真AVR 单片机,至于Proteus 6 Professional 的其他功能在这里暂不做介绍,有兴趣的请参看Proteus 6 Professional的英文帮助文档。
一、Proteus 6 Professional 简介Proteus 6 Professional的窗口界面:先简单介绍各部分的作用:1.原理图编辑窗口(The Editing Window):顾名思义,它是用来绘制原理图的。
注意,这个窗口是没有滚动条的,你可用预览窗口来改变原理图的可视范围。
同时,它的操作是不同于常用的WINDOWS应用程序的,正确的操作是:中键放缩原理图;左键放置元件;右键选择元件;双击右键删除元件;先右键后左键编辑元件属性;先右键后左键拖动元件;连线用左键,删除用右键。
2.预览窗口(The Overview Window):它可显示两个内容,一个是:当你在元件列表中选择一个元件时,它会显示该元件的预览图;另一个是,当你的鼠标焦点落在原理图编辑窗口时(即放置元件到原理图编辑窗口后或在原理图编辑窗口中点击鼠标后),它会显示整张原理图的缩略图,并会显示一个绿色的方框,绿色的方框里面的内容就是当前原理图窗口中显示的内容,因此,你可用鼠标在它上面点击来改变绿色的方框的位置,从而改变原理图的可视范围。
3.模型选择工具栏(Mode Selector Toolbar):主要模型(Main Modes):1* 选择元件(components)(默认选择的)2* 放置连接点(交叉点)3* 标签(用总线时用到)4* 文本5* 用于绘制总线6* 用于放置子电路7* 用于即时编辑元件(用法:先单击该图标再单击要修改的元件)配件(Gadgets):1* 终端接口(terminals),有VCC、地、输出、输入等接口2* 器件引脚3* 仿真图表(graph)4* 录音机5* 信号发生器(generators)6* 电压探针7* 电流探针8* 虚拟仪表,有示波器等2D图形(2D Graphics):这个不想介绍了。
AVR仿真调试方法---AVR Studio与Proteus联合仿真调试2010-09-01 09:19转载自hyper99最终编辑hyper99一.WinAVR生成相应文件只需要安装WinAVR。
会生成相应文件,下载到目标板中运行。
也可以把生成的elf或cof文件引入到Proteus中进行软件与硬件的仿真,单可单步调试。
1.制作makefile文件(1)运行mfile, 弹出窗口;(2)填入目标文件名称,TARGET = test(3)选择Atmega128 CPU(4)选择调试文件格式为DEBUG = dwarf-2(5)保存到与本文件同一目录中,保存文件名为makefile2.运行make all**有1个运行错误,找不到timer_enable_int(_BV(TOIE0))查找AVR目录,在D:\WinAVR-20100110\avr\include\compat\deprecated.h 中有这个函数定义,在头中加入这个.h文件。
3. 在本目录中,make all通过!***可以生成makefile文件;可能生成cof,elf,hex,bin文件。
***hex或bin用AVRISP工具下载到目标板中就可以全速运行了。
***目标板CPU中加入了bootloader会更好,AVRISP都不要了,只用PC机一个串口,就下载目标程序到目标板了。
(见其它工程)***也可以把生成的文件cof引用Proteus中进行软件与硬件的仿真,可单步执行。
***如果有硬件目标板;如果不需要单步调试,只用这个就可以了,以下内容都可以不看了。
二.AVR Studio中仿真需要安装两个程序:WinAVR和AVR Studio。
可以只用AVR Studio而不用WinAVR的mfile, 但要安装WinAVR, AVR Studio 能找到WinAVR就可以,XP下已经自动完成。
1.软件模拟仿真:在AVR Studio中自己的目录中建立工程,工程名为test,(1)选择GCC AVR,(2)选择AVR Simulator(选择Debug/Select Platform and Device/选择AVR Simulator).(3)选择ATmega128,(4)设置时钟(5)编译 Build all仿真运行,OK!***只能从PC机上运行,仿真.c文件的运行,通过看AVR端口和AVR寄存器了解运行状态。
AVRJTAGICE仿真器使用说明
首先,我们需要准备一台计算机和AVR JTAG ICE 仿真器。
将仿真器
插入计算机的USB接口,并确保计算机已安装了AVR Studio软件,这是
一款用于AVR 微控制器开发的集成开发环境(IDE)。
接下来,我们将目标设备与AVRJTAGICE仿真器连接起来。
首先,在
目标设备上找到JTAG接口的引脚,通常为4个或5个引脚,并将仿真器
的JTAG线连接到目标设备的JTAG接口上。
然后,将仿真器的USB线连接
到计算机的USB接口上。
现在,我们打开AVR Studio软件,并创建一个新的项目。
选择正确
的目标设备,并确保使用JTAG作为调试接口。
AVR Studio会自动检测到
连接的AVR JTAG ICE 仿真器,并在界面上显示连接状态。
在仿真调试模式下,我们可以通过设置断点、单步执行、查看变量值
等方式进行调试。
AVR Studio提供了丰富的调试功能,如查看寄存器、
查看存储器、查看端口状态等。
我们可以根据需要使用这些功能进行调试,以发现和修复程序中的错误。
在进行仿真调试时,还可以使用"Watch"功能监视变量的值。
通过添
加变量到监视列表中,我们可以随时查看变量的当前值,并在程序执行过
程中观察变量的变化情况。
当调试完成后,我们可以通过点击"Stop Debugging"按钮退出仿真调
试模式。
在退出之前,我们可以选择保存当前的仿真调试结果,以便日后
查看和分析。
AVR教程(4):AVRStudio仿真调试快速入门发布: 2010-1-10 12:30 | 作者: tiankai | 来源: 电子园AVR单片机学习专区AVRStudio仿真调试快速入门[p=30, 2, left]● AVRStudio的安装到ATMEL 官方: .atmel./dyn/products/tools_card.asp?tool_id=2725 下载安装。
● AVRStudio之建立、打开相关调试文件--使用汇编语言,软件仿真若使用汇编语言进行源代码的编写,由于AVRSTUDIO自带ASM编译器,可以直接建立、打开。
[/p][p=30, 2, left][/p][p=30, 2,left][/p]接着,进行代码编写,之后按进行编译。
--使用ICCAVR,软件仿真若使用C进行编写,由于AVRSTUDIO不带C编译器,所以需要打开相应的调试文件。
打开*.COF(使用ICCAVR编译器编写源代码)或*.D90文件(使用IAR编译器编写源代码)。
这类文件与您需要调试的*.C文件所处同一文件夹。
下面以ICCAVR为例,进行介绍。
接着,保存*.aps文件,改文件将记录目标芯片、文件路径等信息。
在打开项目文件的时候,如下图:选择“AVR Simulator”,右边选择实际使用的器件型号,之后点击“Finish”即可进行软件仿真。
选择完成后,即可进行仿真调试了。
[p=30, 2, left]--使用JTAGICE仿真器,硬件仿真与软件仿真不同的是:在打开项目文件的时候,如下图:选择“JTAG ICE”,其它的步骤与软件仿真一致,见上。
[/p]--使用JTAG ICE mkII仿真器,硬件仿真与软件仿真不同的是:在打开项目文件的时候,如下图:选择“JTAG ICE”,其它的步骤与软件仿真一致,见上。
● AVRStudio之调试程序下面简单介绍使用AVRStudio进行仿真调试调试控制栏调试控制栏可以控制程序的执行状态,所有的调试控制都可以由菜单,快捷键和调试工具栏实现。
软件用的是ICCV7 for AVR 和AVR studio 4
在ICCAVR中,建好工程,加载好文件,需要软件仿真,在编译之前,所做工作如下:1.设置Compiler Options ,点击,出现如下图,对应设置好红箭头指向位置;
2. 设置ICCAVR Application Builder【M32】,点击出现如下图,对应红箭头设置:
3,编译
注意事项:
第1、2步设置后会出现这类文件,可不矛理会;没设置好是无法进软件仿真的;
4. 打开AVR Studio 弹出如下对话框:
点击打开;
按第3步操作后,文件夹会自动生成*.cof 文件,找到*.cof 文件,打开
自动弹出对应文件夹
点击保存;出现如下框,对应设置好AVR Simulator 软件仿真和单片机型号(此外是软件仿真)
此处是硬件仿真:JTAG ICE
点击完成;出现如下框儿:
注意事项:
1.看到上图红箭头,设置好晶振如下: Debug---AVR Simulator
在如下红箭头处设置,晶振
2.要查看变量的变化:
选中变量,右击,如下图(此个查看PA1),点击Add Watch:”PA1”
出现如下图:
Watch(快捷键是Alt+1)是如下图标:。
32[SNAIL MK2 DEMO ]通过此篇教程,我们可以在很短时间内自己动手制作一块Snail MK2 Demo 下载器以用于AVR32的程序下载。
目录1 Snail MK2 Demo制作准备工作 (2)1.1下载器原理 (2)1.2 器件准备 (2)2 电源和最小系统焊接 (5)2.1 最小系统的焊接 (6)2.2 ISP端口和复位电路 (7)2.3 电源部分 (8)2.4 最小系统测试 (8)3 USB转串口及JTAG端口焊接 (10)3.1 USB转串口部分的焊接 (10)3.2 JTAG下载端口 (11)3.3 焊接完成后的检查 (11)4 下载器固件烧写 (12)4.1 线路连接和驱动安装 (12)4.2 固件烧写 (16)5 下载器配置和测试 (17)5.1 下载器配置 (17)5.2 下载器测试 (19)1AVR32作为爱特梅尔公司推出的新型32位架构的单片机,以低功耗,高性能,高代码密度,完整的单周期指令结构和DSP核指令特点得到广大厂商和单片机爱好者的热烈追捧。
学习AVR32单片机开发也是时下嵌入式学习非常热闹的科目。
而一款好的AVR32下载仿真器就是学习的得力助手。
爱特梅尔公司为了配合AVR32的发布,推出了自家的AVR mkII下载器。
但该下载器其高昂的价格让广大AVR32爱好者望而却步。
不过,现在请跟者小编来学习制作一款与AVR mkII功能相媲美的AVR32下载器——Snail MK2 Demo。
通过自己动手制作该下载器我们能以很低的成本来实现AVR mkII的大部分功能,只需要几步,我们就能拥有属于自己的AVR32下载器!1 Snail MK2 Demo制作准备工作1.1下载器原理图1-1 下载器原理图由上图我们知道一个Snail MK2 Demo下载器主要组成部分包括一个USB转RS232部分和一个通讯中转部分。
电源部分为下载端和负责通讯中转的ATmega32单片机供电,USB转RS232部分负责将电脑的USB接口转成RS232接口,通讯中转部分负责为AVR32芯片的JTAG接口与电脑建立数据连接。
手头没有现成的编程器又没有一定的基础知识来自制怎么办?对于一个初学51单片机朋友是个棘手的问题。
各个电子网站几乎都有编程器卖,但是其价格都在100以上,而且还要加上邮费(快递20元左右),让初学者犹豫着该不该买一台呢,或许买了也是三分钟热度,几天就不玩了。
别担心,我们可以自制,成本可控制在50元以内。
本人当初也没有编程器,于是就自制了一台Pgm89v31(电路还是不给大家看了,怕吓着还没开始动手的初学者,有兴趣的可以按那个名字自己查),大家不用怕,我们不是做这个,简单的还在后头。
因为当时不知道AT89S系列单片机可以ISP(下面要介绍的,不用急!)编程,所以就做了一台Pgm89v31。
我不建议大家做这个,因为大家可能没那个心思做这个,况且,有一块集成电路不好卖(74hc299在无锡没的卖,是我好不容易在常熟的熟人那买到的)由于教学与实际科技的发展有一定的滞后性,所以大多数初学者不知道有AT89S系列单片机,只知道书上的A T89C51这种ATMEL公司已停产多年的传统单片机,不过这种单片机还是市场占有率最高的51系列单片机(随便逛家电子零件商店都有的卖A T89C51),因为它的库存量实在是大。
那么AT89S51和A T89C51有什么区别呢,其实大家只要认为它们是同一型号就可以了,没必要知道的很详细,因为A T89S51是AT89C51的升级产品,A T89S完全兼容AT89C的功能。
只是可靠性方面多加了看门狗电路,编程方法也改了,就是用ISP方式。
我简略介绍一下所谓ISP编程就是编程器(下面要介绍)与单片机的连线只要有5根线,就可以实现编程了。
而AT89C51要并行编程,连线至少要15根以上(具体没去数),且还需12V的编程电压(A T89S51不用考虑这个问题)。
讲到这里大家一定都对AT89S系列的单片机有较大的好感,那么它们的价格是否相差很多呢?是贵还是便宜呢?大家不禁要问这句。
我告诉大家好消息,单片机价格只会随着它的普及越来越便宜,AT89S比AT89C还要便宜1~2元钱呢!下面我来介绍ISP编程的制作方法,首先要找来元器件,电脑并行插口一个(母的),74HC244一个,电阻一个,电容一个,细导线若干。
简单方便自制的几个AVR/51 ISP编程器(下载线)AVR单片机有许多优点,我也是个忠实支持者,是从51过度到AVR的,中途还学PIC,初学51时买了学习板,液晶屏等不少东西,有经验后,学AVR时就从自制的下载线开始了,注意,这只是个开始,简单的东西总存在着一些局限性,但对于初学者来说,这可是个非常有用的东西,有了它就可以开始学习AVR单片机,甚至是一些开发了,这些编程器都是出自网上流传的,虽然我也不是很清楚出自那位高人,但感谢原作者.以下分享我的自制经验.1.由于AVR的编程方式有并行高压和串行ISP (In System Program 在系统编程)方式,高压并行编程能修复一些错误的配置位,但这并不常用,因为并行通信其布线会较多,不便于在成品中预留编程接口,也不便自制,而串行的ISP是基于SPI(Serial Peripheral interface)通信方式的,SPI通信时只需三根数据线, 分别是SCK,MISO,MOSI,再加上VCC,GND,Reset共需6根线,而VCC是可选的,用于向目标芯片供电,或由目标板反供电给编程器.那么设计目标板时,最少只要保留6根线,以后就可随时烧写,升级芯片上的程序了.而无需将芯片取下.这是ISP方式的最大特点,具体6根线连到那个引脚,不同型号不一样,要看芯片引脚定义图,例如ATtiny2313引脚定义如下:至于编程接头,尽可能以官方的10针接口为准,也可像我一样自定义一个6针的,因为我更喜欢水晶头,其实都是排列不同而已,只要再制作一条线进行转换就什么都搞定了.2.基于并口的ISP下载线,我最初也是自制了这款,这种下载线可以下载AVR全系列和AT89S系列51单片机,成本较低,不过需要PC机有并行口,许多笔记本电脑现在都没有并口了,比较麻烦,市场上卖的USB转并口,大都是用于打印机的,无法使用.以上是原理图,74HC244是用于信号的隔离驱动的,它从目标板经4148供电,由于ISP编程器只有4根是信号线,实际上我用了74HC125取代74HC244,以减小体积和引脚焊点数.下面是我使用的原理图,和成品图片:元件全装在内部,整体就很美观了,注意下载线不宜过长,最好50cm以内,PC上位机软件很多都可以支持的像双龙的SLISP,PonyProg2000(但51的型号很少,2.0a 版中也只有两个),智峰的progisp试过都成功烧写和效验.不足是烧写速度偏慢,综合来说还算满意.如果首次不成功,可能是软件设置问题,双龙的几乎不用(或说是不能)作什么设置,PonyProg200和Progisp或许需要设置一下才能把它使用得更好,比如Ponyprog用直接IO方式要比API方式快些,而Progisp它的端口引脚是可以自定义的,如果不同,把它设为和原理图一样不可以了.否则根本就用不了.3.基于串口的ISP下载线.,因为之前还在用51做些板子,初看这电路时,觉得由于reset在默认上拉,认为不适合51系列(51是高电平复位),并且更重要的是ponyprog2000的器件列表也没 89s52这型号,所以一直没去做过.但如果只对AVR编程来说,这个也是非常好用的.其中6,7端口必须直连,Ponyprog程序用来检测是否插入此接口,制作完成后试过还可以,速度和并口的差不多,只是必须要用PC机上的物理串口,用USB转串口的就无法使用.我起初觉得可能是驱动能力问题,曾用74HC125对它隔离驱动,花了时间却不成功,用示波器观察四条线的时序,发现原来是USB转串口线有问题,它的SCK(7脚),输出像随机的方波,而从物理串口出来的SCK时序,其频率在20K 左右,并连续稳定,如下图,这也许是USB转串口芯片的问题,才20K频率,难道被当燥声给滤掉了??请有了解的朋友请帮我分析一下,但这条转换线是好的,目前正在用它为ARM系统进行通迅,下载都很正常,芯片型号没打开看,驱动名称是Prolific USB-to-Serial Comm Port.有WHQL的,应该没问题,下面是我的原理图(我参考并口那个画的),实物,与波形.示波器测量时是直接测量转接口,未接下载线,通道1(绿)是物理串口的,通道2(黄)就是USB转串口的,已用示波器量了9个脚,不会错的,由于目前在学ARM9系统,已对这些问题放低了,对它有研究的朋友请告诉小弟,解决这小点问题,可以把它当USB的编程器用了!此线直接插到物理串口上,仍然可用.4.当制作完成这样简单的编程器后,就可以开始学习AVR或8051单片机了,熟悉后可以制作一个USB接口的编程器,USBASP,它内部是用一块ATMega8单片机来模似USB时序的,所以制作它的前提是至少需要一个编程器,例如上面的,将程序写入单片机中.这最好是在熟悉AVR的情况下制作.我是根据网上的公板图自己重画了这张原理图,来方便自己制作.晶振必须为12MHz,否则不可能完成USB时序的模似,单片机可以用低压版的ATMega8L 8PU超频使用,USB的数据线上的电压是3.3V,最高不超过3.6伏,那两个稳压管也就必须是3.6伏的,至于其它元件,其取值有些偏差影响也不大,JP1跳线是强制低速工作的,比如烧写那些有内部有RC振荡的单片机,首次使用就可能要用低速模式,因为其默认就是使用1M的内部振荡.由于USB供电已足够使用,JP5通常保持断开就可以了,JP3只在烧写或更新此编程器固件时使用,平时必须断开,整个电路其实很少东西,JP2连接USB线,或USB公头时要注意顺序不要搞错,上面这个PCB是专为万用板,有人叫洞洞板画的,并且4个LED位置是焊插针的,用来引出到外壳,这个单片机是直插的,建议不要焊上去,而是使用IC插座,当把电路做完,用表量一下确认无误后,插入USB口,此时PC端应该提示为无法识别的USB设备,不必理会,接着开始烧写固件,先短接JP3,再用另一个编程器通过编程口将程序写入Mega8单片机.此过程和平时烧写目标板是一样的.确认成功烧写和效验后,接着烧写熔丝位,这步主要就是设置单片机为外部晶振工作模式,设置熔丝时要小心,如果点错的话,先点恢复默认,再去修改.否则后果难以意料.下面分别是Ponyprog,progisp和SLISP的熔丝设置界面:注意不要设错,完成后将JP3取下,拔下并重插USB,如无意外,你会看到发现新硬件这样的提示,然后装USB驱动,就算大功告成了.至于软件目前就智峰的Progisp支持得比较好.因为经常用,最好是搞外壳保护它,我是在壳体店买的小盒,总之都是小问题了.那个低速开关我是用另一个8脚的单片机.实现按键检测,电平求反输出,和将状态保存到片内EEPROM进行记忆来实现的自锁开关,因为这是我后来扩展的,并且是用了PIC的12F629单片机,这些用AVR单片机(如Tiny13)实现都很简单,就不多说了,不过想它反应得好些要下些功夫,或者是直接用机械的自锁开关来实现.至此,可以慢慢享受自己的成果所带来的乐趣了.USBASP制作资料已打包,有兴趣的朋友可下载学习研究:(用浏览器打开,单线程下载)/self.aspx/.Public/MCU/u sbasp.rar。
自已动手制作AVR仿真器
JtagICE 是一款经典的仿真器。
它支持的芯片清单为:ATmega128, ATmega128L,
ATmega16, ATmega162, ATmega162V, ATmega165, ATmega165V, ATmega169, ATmeg a169V,
ATmega16L, ATmega32, ATmega323, ATmega323L, ATmega32L, ATmega64, ATmega64 L 。
虽然它不支持Mega8/48/88/168等较新的常用芯片,但却无损它的实用性。
我们可以用这款JtagICE仿真Mega16芯片进行开发,开发成功后,才移植到M8/48/88/168上。
只要开发时留意一下,移植并不会有困难。
使用贴面IC的效果图:
但使用贴面IC一个不好的地方是,芯片无法拆下来(如果我们要重新烧录芯片的ROM,能拆下来就方便多了)。
所以,这个活动,我们推荐使用DIP40封装的Mega16. 以下是红日制作的实物图:
网上关于自制Jtag的线路有许多种。
红日根据搜集到的资料,设计出本文介绍的最简易、制作最容易的JTAG。
RS232接口是用分立件制作,就地取材,简单可靠.
本线路的J1双排十针座,既可以做Jtag,又可以做ISP(通过跳针JP1控制)。
JP1跳针短路时,J1用作ISP下载,方便更新本Jtag的ROM。
J1 跳针开路时,用作JTAG.
如果你有232芯片,可以按以下线路代替上面的分立件RS232部分:
烧录文件:
按以上的硬件制作好PCB后,检查焊接无误,就可以进行烧录了。
烧录的方法有很多,我(armok)推荐的一个方法是:将M16芯片从JTAG板上拆下来,放到普通的带ISP口的实验板,使用SL-ISP1.32 软件,将本文附录所带的将AVR Studio 4.10 Rom 烧
录文件中的flash.rom 及epprom.rom 直接烧入到Jtag ATmega16 就可以了。