如果说51是单片机的始祖,那么说AVR是把单片机演绎到极致的舞者一点都不为过!曾几何时,AVR单片机风靡全球,在国内业界和高校中也是鹤立鸡群的佼佼者。时至今日,8位AVR单片机依然活跃在医疗、工控等等各大行业中。虽然它依然有点贵,新推出的超级单片机AVR XMEGA的价格甚至比某些M4核心的芯片有过之而无不及;虽然它一如既往地高冷,寥寥却足够实用的资料也不像某些厂商的芯片一样铺天盖地,但是它依然赢得了一大批拥簇!原因就在于,其超强的稳定性、低功耗、安全性等一系列优异的性能。
前几天从爱板网拿到了一块“古董级”的开发板 – ATMEL AVR USB EVALUATION KIT(AT90USBKEY2),内心很是狂喜,因为它代表着一个时期,和一段美妙的回忆。还有,我对AVR的一种情结。
首先来一睹它的风采!
外包装->
侧面图->
内部牛皮纸包装->
里面装有两个牛皮纸小盒子->
小盒一装着开发板->
小盒二装有配件->
层层包装下的内部实物合影->
开发板高清图->
开发板长度比银行卡略长,但宽度只有银行卡一半的大小,可谓非常精巧。然后包装确是外三层里三层,可以说非常舍得“下血本”。最外城的机器人白盒包装,辨识度非常之高,一看便知是爱特梅尔出品,包装丝毫不比市面上的手机包装盒档次低!
先简单地介绍一下AT90USB1287这款MCU的配置和特性,
AT90USB1287特性
1、 高性能、低功耗8位AVR处理器
2、 高效精简指令集
-135条汇编指令,大部分为单周期执行
-32个8位通用工作寄存器组
-全静态操作
-在16M频率时能达到16MIPS的数据吞吐量
-片上2周期乘法器
3、 不可变程序存储器和数据存储器
-128K Bytes在系统自编程FLASH
-高达10万次的写入、擦除寿命
-独立的锁定为控制可选的代码启动区
-复位后,可以通过片上的硬件启动在系统编程
-真正的边读边写操作
-所有支持的部件都通过缺省的USB Bootloader预烧录
-4K Bytes EEPROM,十万次写入、擦除寿命
-支持高达64K Bytes外部存储器扩展
-软件可以通过锁定为来进行编程锁定
4、JTAG标准接口
-JTAG边界扫描能力
- 可扩展的片上调试支持
-可以通过JTAG烧录FLASH、EEPROM、熔丝位、锁定位
5、 USB2.0全速/低速设备、OTG
-完全遵从USB2.0协议
-遵从USB2.0 OTG V1.0附加协议
-12Mbit/s(全速)、1.5Mbit/s(低速)数据传输速度
6、USB全速/低速设备模块支持数据传输完成中断
-端点0用于控制传输,能达到64字节
-6个可编程端点用来BULK传输、中断传输、同步传输
-在双沿模式下端点长度最大可配置为256字节
-832字节完全独立的USB端点RAM,用以端点内存分配
-连接、挂起中断
-上电USB总线复位
-48MHz用以全速USB总线操作
-微处理器可以请求USB断开连接
7、支持HNP、SRP协议,双角色设备
提供HNP、SRP软件执行的状态和控制信号
提供HNP、SRP可编程时序
8、 外设特点
-两个八位定时器带有独立的分频器、比较模式
-两个十六位定时器带有独立的分频器、比较模式、捕获模式
-带独立振荡器的实时计数器
-四个八位的PWM通道
-六个PWM通道可编程2 – 16分辨率
-输出比较模块
-8通道10位AD转换
-可编程同步/异步串口
-主从SPI串行接口
-以字节位基本单位的两线串行接口
-可编程看门狗,带片上独立振荡器
-引脚中断和唤醒
9、 微处理器特性
-上电复位、可编程掉电检测
-内部可校准振荡器
-外部、内部中断源
-六种休眠模式: IDLE模式、ADC减噪模式、省电模式、掉电模式、待机模式、扩展待机模式
10、 IO和封装
-48个可编程IO
-TQFP64、QFN64
11、2.7 – 5.5V操作电压
12、最大频率
-2.7V为8MHz
-4.5V以上为16MHz
Atmel 开发板推荐:
- SAMD20开发套件 一款基于SMART SAM D20QTouch演示高性能的电容式触摸支持外设触摸控制器的开发板。
- ATSAM4E-XPRO评估套件 一款用来评估ATSAM4E16E微控制器并且支持Atmel Studio集成同时也提供了更多的外设。
- ATSAM3U评估套件 一款具有高速480Mbps的USB+ PHY的32位ARM Cortex M3闪存微控制器的评估套件。
接着介绍一下如何玩转这块迷你开发板,开发板的硬件功能分区图如下,
首先,拿出配件里面的AB(MiNi)型USB先将开发板与PC连接起来,连接成功后,驱动程序会自动安装直到成功;
开发板出厂时,自带了固件,将板子模拟成了一个大容量存储设备,也就是我们经常使用的U盘;
打开磁盘,查看里面的内容,可以发现与开发板相关的大部分资料都在里边,另外需要的资料,我们可以直接到爱特梅尔官网中去检索,这一点必须点个赞,因为这对于AVR的初学者是一种很大的便利!
我们也可以烧录里面的HID固件,烧录成功之后,开发板会模拟成一个鼠标,我们可以像鼠标一样执行单击、双击、右键操作,非常有趣。
开发板的固件更新,推荐使用爱特梅尔官方FLIP工具,我使用的是从官网下载的3.4.7版
如何让进入开发板BootLoader模式呢?方法是,首先按住开发板RST按键,然后按住HWB按键,随后依次松开RST和HWB。注意按键的先后顺序,首次使用时,需要安装相应的驱动程序
安装成功之后,可以在“设备管理器”中查看到AT90USB128这个设备。
运行FLIP工具,选择芯片型号
接着,打开USB
选择HEX文件,可以是官方固件或者自己的程序生成的HEX
最后,烧录和运行
至此,是不是迫切想要自己写一个程序然后烧录到开发板呢?接下来,就以一个流水灯的程序简单演示一下,
开发板指示灯部分的原理图如下:
运行AS6.2,敲入以下的代码,并且编译生成HEX文件
#include <asf.h>
#define LED1 IOPORT_CREATE_PIN(PORTD,4)
#define LED2 IOPORT_CREATE_PIN(PORTD,5)
#define LED3 IOPORT_CREATE_PIN(PORTD,6)
#define LED4 IOPORT_CREATE_PIN(PORTD,7)
#define LED1_ON ioport_set_pin_high(LED1)
#define LED1_OFF ioport_set_pin_low(LED1)
#define LED2_ON ioport_set_pin_high(LED2)
#define LED2_OFF ioport_set_pin_low(LED2)
#define LED3_ON ioport_set_pin_high(LED3)
#define LED3_OFF ioport_set_pin_low(LED3)
#define LED4_ON ioport_set_pin_high(LED4)
#define LED4_OFF ioport_set_pin_low(LED4)
void mydelayms_1M(uint32_t n)
{
uint32_t i,j;
for(i = 0;i < n;i++) {
for(j = 0;j < 100;j++) {
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
}
}
}
int main (void)
{
/* Insert system clock initialization code here (sysclk_init()). */
board_init();
ioport_set_pin_dir(LED1,IOPORT_DIR_OUTPUT);
ioport_set_pin_dir(LED2,IOPORT_DIR_OUTPUT);
ioport_set_pin_dir(LED3,IOPORT_DIR_OUTPUT);
ioport_set_pin_dir(LED4,IOPORT_DIR_OUTPUT);
while(true) {
LED1_ON;
mydelayms_1M(200);
LED1_OFF;
mydelayms_1M(200);
LED2_ON;
mydelayms_1M(200);
LED2_OFF;
mydelayms_1M(200);
LED3_ON;
mydelayms_1M(200);
LED3_OFF;
mydelayms_1M(200);
LED4_ON;
mydelayms_1M(200);
LED4_OFF;
mydelayms_1M(200);
}
/* Insert application code here, after the board has been initialized. */
}
按照之前的步骤,将HEX烧录到开发板中,开发板运行效果图如下,
总结
由于AT90USB系列的AVR寄存器不算太多,因此大部分片内资源的操作爱特梅尔官方并没有独立做出其配套的程序库。我们可以自己建立库,不过AVR的寄存器不多,使用直接操作寄存器的方法也更为简单高效。另外,开发板将IO口几乎全部引出,但是并没有焊接上插针,这一点对不爱拿烙铁的懒人们来说是一个小小的遗憾。
想要评测AVR这样一个Mini开发板并不是一件容易的事情,可以说的非常之多,但却又不知从何说起。由于时间和篇幅所限,本文以提纲挈领的方式进行了概论和介绍一些重要操作。
Atmel 开发板推荐:
- SAMD20开发套件 一款基于SMART SAM D20QTouch演示高性能的电容式触摸支持外设触摸控制器的开发板。
- ATSAM4E-XPRO评估套件 一款用来评估ATSAM4E16E微控制器并且支持Atmel Studio集成同时也提供了更多的外设。
- ATSAM3U评估套件 一款具有高速480Mbps的USB+ PHY的32位ARM Cortex M3闪存微控制器的评估套件。
原创申明:本文为爱板网原创,谢绝转载!
如果说51是单片机的始祖,那么说AVR是把单片机演绎到极致的舞者一点都不为过!曾几何时,AVR单片机风靡全球,在国内业界和高校中也是鹤立鸡群的佼佼者。时至今日,8位AVR单片机依然活跃在医疗、工控等等各大行业中。虽然它依然有点贵,新推出的超级单片机AVR XMEGA的价格甚至比某些M4核心的芯片有过之而无不及;虽然它一如既往地高冷,寥寥却足够实用的资料也不像某些厂商的芯片一样铺天盖地,但是它依然赢得了一大批拥簇!原因就在于,其超强的稳定性、低功耗、安全性等一系列优异的性能。
前几天从爱板网拿到了一块“古董级”的开发板 – ATMEL AVR USB EVALUATION KIT(AT90USBKEY2),内心很是狂喜,因为它代表着一个时期,和一段美妙的回忆。还有,我对AVR的一种情结。
首先来一睹它的风采!
外包装->
侧面图->
内部牛皮纸包装->
里面装有两个牛皮纸小盒子->
小盒一装着开发板->
小盒二装有配件->
层层包装下的内部实物合影->
开发板高清图->
开发板长度比银行卡略长,但宽度只有银行卡一半的大小,可谓非常精巧。然后包装确是外三层里三层,可以说非常舍得“下血本”。最外城的机器人白盒包装,辨识度非常之高,一看便知是爱特梅尔出品,包装丝毫不比市面上的手机包装盒档次低!
先简单地介绍一下AT90USB1287这款MCU的配置和特性,
AT90USB1287特性
1、 高性能、低功耗8位AVR处理器
2、 高效精简指令集
-135条汇编指令,大部分为单周期执行
-32个8位通用工作寄存器组
-全静态操作
-在16M频率时能达到16MIPS的数据吞吐量
-片上2周期乘法器
3、 不可变程序存储器和数据存储器
-128K Bytes在系统自编程FLASH
-高达10万次的写入、擦除寿命
-独立的锁定为控制可选的代码启动区
-复位后,可以通过片上的硬件启动在系统编程
-真正的边读边写操作
-所有支持的部件都通过缺省的USB Bootloader预烧录
-4K Bytes EEPROM,十万次写入、擦除寿命
-支持高达64K Bytes外部存储器扩展
-软件可以通过锁定为来进行编程锁定
4、JTAG标准接口
-JTAG边界扫描能力
- 可扩展的片上调试支持
-可以通过JTAG烧录FLASH、EEPROM、熔丝位、锁定位
5、 USB2.0全速/低速设备、OTG
-完全遵从USB2.0协议
-遵从USB2.0 OTG V1.0附加协议
-12Mbit/s(全速)、1.5Mbit/s(低速)数据传输速度
6、USB全速/低速设备模块支持数据传输完成中断
-端点0用于控制传输,能达到64字节
-6个可编程端点用来BULK传输、中断传输、同步传输
-在双沿模式下端点长度最大可配置为256字节
-832字节完全独立的USB端点RAM,用以端点内存分配
-连接、挂起中断
-上电USB总线复位
-48MHz用以全速USB总线操作
-微处理器可以请求USB断开连接
7、支持HNP、SRP协议,双角色设备
提供HNP、SRP软件执行的状态和控制信号
提供HNP、SRP可编程时序
8、 外设特点
-两个八位定时器带有独立的分频器、比较模式
-两个十六位定时器带有独立的分频器、比较模式、捕获模式
-带独立振荡器的实时计数器
-四个八位的PWM通道
-六个PWM通道可编程2 – 16分辨率
-输出比较模块
-8通道10位AD转换
-可编程同步/异步串口
-主从SPI串行接口
-以字节位基本单位的两线串行接口
-可编程看门狗,带片上独立振荡器
-引脚中断和唤醒
9、 微处理器特性
-上电复位、可编程掉电检测
-内部可校准振荡器
-外部、内部中断源
-六种休眠模式: IDLE模式、ADC减噪模式、省电模式、掉电模式、待机模式、扩展待机模式
10、 IO和封装
-48个可编程IO
-TQFP64、QFN64
11、2.7 – 5.5V操作电压
12、最大频率
-2.7V为8MHz
-4.5V以上为16MHz
Atmel 开发板推荐:
- SAMD20开发套件 一款基于SMART SAM D20QTouch演示高性能的电容式触摸支持外设触摸控制器的开发板。
- ATSAM4E-XPRO评估套件 一款用来评估ATSAM4E16E微控制器并且支持Atmel Studio集成同时也提供了更多的外设。
- ATSAM3U评估套件 一款具有高速480Mbps的USB+ PHY的32位ARM Cortex M3闪存微控制器的评估套件。