问:我想使用AVR 单片机中的Mega 系列,有哪些开发工具支持这种
单片机?
答AVR 单片机中的Mega 系列有一套完善的开发工具
评估/编程板
ATMEL 的 STK500(980 元/套)起步工具包是适用于开发Atmega103 芯片的对芯片的编程是
通过在系统编程(ISP)接口完成的
广州天河双龙电子有限公司的四合一SL-AVR 仿真开发实验器(680 元/套);SL-OKAVR 开发
实验评估板(380 元/套);SL-AVRL 通用下载编程(ISP)电缆线(180 元/套)
仿真器
ATMEL 的ATICE30 可适用于实时仿真
C 编译器:
所有的C 编译器均已在ATMEL 网站上有关第三方工具供应商的网页上列出
ATMEL 公司在它的网站:http://www.atmel.com 上还提供了许多自由软件它们可用于对AVR
单片机的程序进行汇编和模拟这些软件可以自由下载
上述产品也可通过ATMEL 授权的地区分销商和销售代理获得
IccAVR C 编译器在中国大陆独家代理是广州天河双龙电子有限公司(推广价1380 元/套), 天河
双龙电子有限公司还做了很多底层软件模块,建立了库文件libslavr.a 及头文件slavr.h, 有
LED,LCD,I2C 总线及键扫等模块, IccAVR C 编译器新版本已增加单总线,UART 等模块
问:有哪些支持AVR 的起步工具包
答STK100,SL-AVR,SL-OKAVR,SL-AVRL 支持AVR 的Tiny 系列单片机
STK200,SL-AVR,SL-OKAVR,SL-AVRL 支持AVR 单片机即AT90S 系列
STK300,SL-AVR,SL-OKAVR,SL-AVRL 还支持AVR 的Mega103 单片机.
STK500,SL-AVR,SL-OKAVR,SL-AVRL 还支持AVR 的Mega103 单片机
所有的起步工具包都包括按钮LED 指示灯RS232 通信接口I/O 口通过分布在PCB 板边
沿的连接插头可以使用STK200/300 起步工具包还有一条在线编程ISP 电缆它可用以对AVR
芯片编程STK300 还提供了AVR 应用程序生成器可用来生成外围设备的初始化代码
SL-AVR 是专门为配合双龙公司主编的<
版而研制的四合一开发实验器有6 位LED 数码管, 2*16 的 LCD 显示器, 17 键的键盘,通用
DIP 插座,LED 发光二极管,网络电阻,步进电机驱动电路;音响器,配AT90S8515,有RS232 通信接口,
在线编程ISP 电缆及<<双龙AVR 电子书>>光盘,有大量应用实验程序和强大的开发软件凡购
<
折优惠(544 元/套);可供选购件:4.5V二相六线步进电机(30 元/只);5V 开关电源(40 元/只);16X16 点阵
汉字显示模块,包括汉字库组成软件及应用例子(90 元/套)
SL-OKAVR有通用DIP 插座,LED 发光二极管作I/O 状态显示,音响器,配AT90S1200,有RS232
通信接口, 在线编程ISP 电缆及<<双龙AVR 电子书>>光盘,有大量应用实验程序和强大的开发
软件
SL-AVRL 适合AVR 开发高手及经济条件较差者AVR 初学者, 有RS232 通信接口, 在线编程
ISP 电缆及<<双龙AVR 电子书>>光盘,有大量应用实验程序和强大的开发软件
问: 即使看门狗没有使用我也有时在AVR Studio 调试软件的状态
栏中看到“WDT reset” WDT 复位的信息这是为什么?
答当目标器件运行在较高的频率大于6 MHZ)时来自扁平电缆FPC 电缆的噪声信号可能
错误地触发WDT 复位检测电路这对程序的仿真和执行没有影响它们不会由于噪声的原因而产
生复位噪声仅仅影响AVR Studio 调试软件的信息处理在这种情况下不要理睬这个信息当目
标器件运行在较低的频率小于或等于4 MHZ 时应该不会出现这个问题
问: 我刚买了一台ICE 200 仿真器在使用不同的芯片和不同的时
间运行诊断程序时都是失败的而其它一切正常这是什么原因?
答在ICE200 仿真器的第一批产品中是一个固件监控程序的问题而导致这个现象这个
现象可以通过升级新版本的监控程序来修正当使用2.02 版或更高版本的AVR Studio 软件时
AVRStudio 将读取固件版本并检查这个问题如果你的ICE200 需要升级它会引导你完成升级处
理这个检查工作只有在装载应用程序时才能被执行而当运行诊断程序时是不被启动的如果你
首先尝试运行诊断程序诊断仿真器诊断程序不会检查固件版本并且可能诊断失败如果你碰巧有
这种情况不要理睬诊断失败而直接去装载应用程序这时你将可以升级ICE200 的监控程序在
升级后再回过来运行诊断程序诊断结果应该全部是正确了(注现在销售的ICE200 已没有这个
问题了)
问:如何检查我的AVR 仿真器的版本号?
答在仿真器被连接的时候打开AVR Studio 程序选择菜单中Help->About->Info 来获得你的仿真
器的有关信息AT90ICEPRO 在1.20 之前的版本和ATmegaICE 在1.11 之前的版本是不能被AVR
Studio 软件检测到的较新的版本已经有了而且可以从Atmel 网站自由下载.
问:程序在仿真器或单片机中不工作,而在模拟器中看来工作很正
常这是什么原因?
答这是堆栈指针设置中的常见问题对所有带SRAM 的AVR 单片机堆栈指针必须设置在SRAM
最后的地址
在汇编程序中这样做是正确的
ldi R16 low(RAMEND) 装载堆栈指针的低字节到R16
out SPL R16 输出这个数值到堆栈指针寄存器
ldi R16 high(RAMEND) 装载堆栈指针的高字节到R16
out SPH R16 如果AVR 的SRAM 小于256 字节就将这行注释掉
在C 程序中堆栈指针是在启动代码中自动设置的注意链接文件(XCL 文件)定义了堆栈指
针的位置请参考应用笔记AVR032 ---- C 编译器的链接文件”
问:从哪里我能找到完整的AVR 指令集?
答指令集在Atmel 的网站的Products->AVR 8 bit RISC->Datasheets 下面的网页上或者直接连接
http://www. atmel.com/atmel/products/prod200.htm网页; <
3 AVR 指令速查表
问:当开始做一个使用AVR 单片机的新项目时最常见最共同问
题有哪些?
答最常见最共同的错误是忘记对不带硬件堆栈的芯片设置堆栈指针对AT90S8515 单片机上
这样做是妥当的
LDI R16 low(RAMEND)
OUT SPL R16
LDI R16 high(RAMEND)
OUT SPH R16
注在ATMEL 的汇编语言源程序中经常将R16 寄存器用temp 符号来代替
另一个常见的错误是将端口作为输出使用时忘记设置端口在AVR 单片机中设置端口作为
输出使用是通过写一个1 到数据方向寄存器(DDR)中完成的比如设置端口PORTB输出高电
平
LDI R16 0xFF 装载十六进制数FF 到寄存器R16
OUT DDRB R16 设置端口 PORTB作为输出使用
OUT PORTB R16 设置端口 PORTB输出高电平
使用AVR 汇编器时第三个常见的错误是在使用装载程序存储器(LPM)指令时指向了程序存
贮器中错误的地址AVR 的程序存贮器是组织成字16 bit 的形式而LPM 指令是读取字节8
bit LPM 指令可以读16 位字的高位字节或低位字节中的任意一个因为这个原因必须将16 位
的程序存贮器地址分解成两个指向你所希望装入的字节的地址
这些是在应用笔记102---- 块拷贝例程中的描述。