WinAVR和AVR Studio
1楼
1. 获得必须的软件
请从Atmel官方获得最新版本的AVR Studio
请从WinAVR官方获得最新版本的WinAVR
注意:WinAVR和AVR Studio是2个不同的软件,前者是开源项目,不属于Atmel所有,后者是Atmel版权所有的。
2. 安装步骤
1)安装WinAVR
2)安装AVR Studio
3)安装AVR Studio的Service Pack(如果有的话)
3. 新建测试工程
1)启动AVR Studio
2)选择"New Project"
3)"Project type"里选择"AVR GCC",单击"Location"旁的按钮,选择工程保存位置(这里假设为C:\),避免路径中有中文,
在"Project name:"里填入工程名test01,把"Create initial file"的钩去除,把"Create folder "钩上,
单击"Next>>"
4)"Debug platform:"里选择"AVR Simulator","Device:"里选择"Atmega128",单击"Finish"
5)菜单File->New File,建立空白文档,复制以下代码到该文档中(注意:最后一个“}”下面还有一个空行):
#include "avr/io.h"
int main(void)
{
while(1);
}
6)菜单File->Save,在“另存为”对话框里选择工程保存的路径下工程名命名的文件夹下(这里假设为C:\test01\),
你会看到已经有一个test01.aps文件存在了,那是AVR Studio的工程文件。“文件名”里填入“main.c”,保存。
7)在"AVR GCC"工程管理窗格内的"Source Files"上单击右键,右键菜单里选择"Add Existi ng Source File(s)...",
在"Add Source File"里选择刚刚建立的main.c文件。会看到工程管理窗格内的"Source Files"下多了个main.c文件。
8)菜单Project->Configuration Oprions,在"General"下(默认就是),确认"Use External Ma keFile"没有钩上,
"Frequency:"填入频率“8000000”,"Optimiztion"选择"-00",确认"Create Hex File"已经钩上,
然后单击确定(请勿修改其它设置)
9)菜单Build->ReBuild All,编译工程。如果操作正确,应该没有警告和错误。
10)菜单Debug->Start Debugging,顺利的话,软件仿真已经启动。
11)至此,测试工程已成功。可以在工程保存目录下看到一个default文件夹,打开后有test 01.elf(AVR Studio的支持的仿真调试文件格式之一),
test01.hex(烧写时要用的文件)
4. 给新手的建议:
如果书中/资料中以命令行方式编译文件,请跳过这些例子中的命令行操作,改为用AVR S tudio新建工程来编译。
如果有Makefile方面的讲解,也请跳过。因为这些讲解可能太过于简略,而难以理解。
1)不要去用WinAVR带的mfile所产生的Makefile文件,只使用AVR Studio菜单Project-> Configuration Oprions来配置工程,
(不要钩上"Use External MakeFile")
2)工程保存路径中不要有中文名,即只在英文名文件夹下(包括其上各级文件夹也是英文)
3)始终使用Build->ReBuild All,编译工程
4)新建工程时,工程名不要用Makefile(不论何种大小写组合)
5)新建工程时,不要钩上"Create initial file"
6)不要修改"Output File"里的文件名
7)现在,中断程序是以ISR(...)方式声明的,书和资料可能落后于WinAVR的更改,
请随时通过开始菜单里WinAVR下的avr-libc Manual [WinAVR]查看目前WinAVR的各种函数和头文件说明
5. 进一步学习:
当你比较熟悉用AVR Studio完成你的工程编译过程后,可以考虑学习Makefile:
https://www.360docs.net/doc/225094396.html,如果对产品有兴趣的可以点击此链接
注:本简介以ATMega48为例进行介绍。
1、连接好设备后,打开AVR Studio软件,选择Tools菜单栏->Program AVR ->"Connect"选项。
2、在左边选择"JTAGICE mkII",在右边选择"Auto"(或具体的COM口),然后点击"Connect"进行联机。
3、主面板简介
正常联机后,将弹出如上窗口:
●Device and Signature Bytes
Device里面选择好对应的芯片类型,后面的Erase Device可以擦除芯片。
Signature Bytes,芯片型号标识位,点右边的Read读按钮可以读出芯片内的ID。如果在编程面板里面选的芯片型号与读出的芯片型号对应,下面会提示Signature matches selected device,如果不匹配会出现WARNING: Signature does not match selected device。
●Programming Mode and Target Settings
左边的下拉框:注意这里选择:ISP mode,表示用的ISP编程模式。
右边的Settings:编程速率设定,这里可以读写编程器内ISP编程的速率。注意速率一定要小于芯片时钟频率的1/4,否则无法正确编程。
注:USB AVR JTAGICE XPII同时支持JTAG下载与ISP下载,您可根据此下拉框选择
●状态指示区
4、编辑面板简介
●Device
Erase Device Before Program:编程前先擦除芯片,建议选上,如果不选芯片内部残留的程序可能会对新的程序造成干扰。
Verity Device After Program:下载完毕后校验程序内容,建议选上。
●Flash
Input HEX File:找到要写的hex文件格式为*.hex。
Program:点此按钮,将会把Input HEX File对应文件下载到芯片中去,如果路径有错误或者文件格式不正确会有提示报警。
Verify:校验命令,用于检测芯片内程序是否和文件中的一致。
Read:读命令,此命令可以读出未加密芯片内的程序,自动弹出一个对话框提示保存。
●EEPROM
Input HEX File:找到要写的hex文件格式为*.eep。
Program、Verify、Read:请参见Flash部分。
●ELF Production File Format
ELF文件,它可以包括Flash、EEPROM、熔丝位、锁定位等信息。
5、熔丝位设置面板简介
特别注意:
(1)配置熔丝位有一定的危险性,可能锁死芯片,在不知道具体在做什么操作之前,请不要急于动手。(2)熔丝位状态显示框,显示芯片的各个熔丝位的详细状况,AVR的熔丝位打勾表示0,表示启用该选项;取消表示1,表示不启用该选项。
(3)为了安全起见,在ISP模式下,SPIEN熔丝是不允许编程的,所以,当使用ISP进行编程时,复选框不可选。
(4)芯片锁死的主要原因是设错熔丝位,主要有两种情况:
1)JTAGEN和SPIEN两个熔丝位都为1(不打勾),不能再进行编程,此时只能用高压并行编程或者有源晶振恢复。
2)将熔丝位选择了外部晶振或外部RC振荡,而没有接外部晶振或外部RC振荡,或者外接的振荡频率不匹配,导致芯片不能工作,这种情况,需要外挂相应晶体才能再次操作芯片,用户应尽量记起当时设错熔丝的情况,比如错误设置成了外部3-8M晶振,那么外挂一个3-8M晶振即可进行相应操作。
当然还有其它方面的原因导致芯片锁死,在此处不再一一赘述。
下面对窗口信息进行注解:
●熔丝位状态表(上面部分)
每个熔丝位代表的意思请参见芯片的PDF
状态设置说明:
●熔丝位状态表(下面部分)
HIGH、LOW:它们的值是由上面熔丝位的状态决定
●下面的设置部分
Auto Read:会自动读一次,并刷新主窗口的熔丝状态,建议选上。
Smart Warning:在对一些特殊的具有一定危险性的熔丝位进行编程时会弹出警告信息,建议选上。Verity after program:写完程序后会进行校验一次,确保正确写入,建议选中。
Program:编程
Verify:校验
Read:读取
正确的配置熔丝的方法是先读取,修改需要修改的地方,再编程。
6、锁定位设置面板简介
特别注意:
(1)通过编程锁定位,允许用户对AVR芯片内数据进行加密,不同的锁定位对应不同的加密保护程度,加密位共有三位,每位的数越大加密程度越高,否则越低。
(2)被加密后的芯片依然可以读出熔丝位和加密位的情况,一旦试图对加密位进行修改,芯片内的程序将会被修改或擦除,不能再使用。
(3)加密位可以通过编程界面的芯片擦除功能擦除到初始状态,使得芯片可以重复使用。
(4)锁定位编程界面有与熔丝位编程界面相同的选项和操作按钮,功能类似,不再赘述。
下面对窗口信息进行注解:
●锁定位状态表(上面部分)
每个锁定位代表的意思请参见芯片的PDF
●锁定位状态表(下面部分)
LOCKBIT:它的值是由上面锁定位的状态决定
7、高级设置面板简介
●Oscillator Calibration Byte
Calibrate for frequency:内部RC振荡校准,这里选择不同的频率,点Read,可以读出对应的频率下的校准值。选择将校准值写到Flash还是EEPROM,点击Write,即可完成对应频率下的内部RC振荡校准。
说明:写入到flash区域的校准字芯片启动时自动读取并校准RC振荡,如果写到EEPROM中,需要程序中进行处理。
8、硬件设置面板简介
●Voltages
VTarget:目标板电压
ARef:模拟参考电压
AREF 1:如果存在AREF1,那么这里可以读取到模拟参考电压
●Clock Generator
时钟生成器,在AVRISP模式下不可用,在STK500或STK600模式下可设置输出某个设定的频率。
●Firmware Upgrade
"Upgrade"按钮为可用状态时,可以点击它进入自动升级。
9、硬件信息面板简介
●Hardware and Firmware Revision
硬件信息及固件程序版本信息,用于了解编程器信息,无功能作用。
10、自动烧写面板简介
特别注意:
(1)自动烧写面板用于批量烧写,程序会记录上次进行批处理的各个选项,一旦设置好之后,可以连续进行烧写。
(2)请慎用本功能,在不知情的情况下使用本功能,锁死芯片的几率将大大增加。
(3)自动处理:擦除芯片、检测芯片ID号、写flash、写EEPROM、写熔丝位、写锁定位以及他们对应的校验,一次完成,状态栏会显示正在进行的操作。
(4)所有的操作需要在前面对应的面板设置好,比如选择好下载的HEX及EEPROM文件,选好熔丝位,选好锁定位,写好内部RC校正位等。请一定确保各个选项正确,特别是熔丝需要格外小心,可以先在每个面板里面进行操作确认没有问题再进行批处理操作。
(5)在进行批处理之前,请先在高级选项里面设置好通讯速率,确保速率小于晶振的四分之一,否则会出错。
(6)可以选中右边的Log to file选项从而记录操作日志。
如果对这套开发工具有兴趣的朋友可以点击此链
接https://www.360docs.net/doc/225094396.html,/Shop/USB_AVR_JTAG_ICE_XPII.htm https://www.360docs.net/doc/225094396.html,