圣龙扬特-AVR电子

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4324|回复: 3
打印 上一主题 下一主题

BASCOM-AVR初级入门教程—第二讲 认识AVR单片机

[复制链接]

67

主题

4

好友

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

UID
2
帖子
343
精华
0
注册时间
2013-2-20
在线时间
368 小时
跳转到指定楼层
楼主
发表于 2013-3-26 19:29:46 |只看该作者 |倒序浏览

第二讲
认识AVR单片机
  
  关于AVR单片机的资料,网上一搜一大堆,这里就不细讲了。
  这里主要介绍一下AVR单片机的基本电路和熔丝位设置,熔丝对于初学者来说可能比较头疼。
  芯片的说明书(DATASHEET)是最好的老师,尤其初学者,一定要多看,反复看,初级问题一般会在上面找到答案。AVR的说明书编得非常详细,多数常用芯片还提供中文版,这也降低了初学者的入门门槛。
  MEGA8MEGA16是比较常用的AVR芯片,本教程主要以这两款芯片为例。

  2.1 外部复位电路

  外部复位由外加于RESET 引脚的低电平产生,按下SW,触发复位动作,MCU重新启动。
  C1的作用是为了稳定可靠,按键按下后电容被迅速放电,按键松开后,通过电阻向电容充电,以保证足够长的复位时间确保稳定复位。
  D1的作用有两个:一是将复位输入的最高电压钳在Vcc+0.5V 左右;二是当断电时,将R1电阻短路,让C1快速放电,下一次来电时,能产生有效的复位。
  实际应用电路中,可以省掉D1C1。若不需要外部复位,SW也可省掉,RESET引脚只接10K电阻到VCCMCU上电后,RESET引脚内部上拉为高电平,悬空不接任何电路,MCU也能正常工作。

  2.2 振荡电路
  AVR系统时钟源可由外部晶体、内部RC振荡器、外部RC振荡器、外部时钟提供,通过配置熔丝位进行选择。
   通常使用外部晶体和内部RC两种方式之一。如果熔丝配置成外部RC或外部时钟,会造成芯片不能通过ISP(串行编程)进行正常编程,这就是所谓的芯片被锁,后面有较详细介绍。

  MEGA系列AVR单片机使用外部晶振时,C1C2这两只电容不接也能正常工作,规范的电路一般还是接上。如果不需要太高精度的时钟,可以使用内部RC振荡,即不需要接任何外围零件。
  当进行串口通讯时,一般需要接适合串口数据传输的特殊频率晶振,比如常用的3.6864MHz7.3728MHz11.0592MHz等。
  下表列出了不同波特率和不同晶振频率下,实际产生的波特率与目标波特率的偏差。一般偏差不超过0.5%是可以接受的,但偏差较大时发送器的抗噪性会降低。特别是需要传输大量数据时,应选择偏差小的波特率和晶振频率组合。
波特率(bps)
3.6864MHz
4.0000MHz
7.3728MHz
8.0000MHz
11.0592MHz
14.7456MHz
16.0000MHz
2400
0.0%
0.2%
0.0%
-0.1%
0.0%
0.0%
0.0%
4800
0.0%
0.2%
0.0%
0.2%
0.0%
0.0%
-0.1%
9600
0.0%
0.2%
0.0%
0.2%
0.0%
0.0%
0.2%
14.4k
0.0%
-0.8%
0.0%
0.6%
0.0%
0.0%
-0.1%
19.2k
0.0%
0.2%
0.0%
0.2%
0.0%
0.0%
0.2%
28.8k
0.0%
2.1%
0.0%
-0.8%
0.0%
0.0%
0.6%
38.4k
0.0%
0.2%
0.0%
0.2%
0.0%
0.0%
0.2%
57.6k
0.0%
-3.5%
0.0%
2.1%
0.0%
0.0%
-0.8%
76.8k
0.0%
-7.0%
0.0%
0.2%
0.0%
0.0%
0.2%
115.2k
0.0%
8.5%
0.0%
-3.5%
0.0%
0.0%
2.1%
230.4k
0.0%
8.5%
0.0%
8.5%
0.0%
0.0%
-3.5%
250k
-7.8%
0.0%
-7.8%
0.0%
-7.8%
5.3%
0.0%
0.5M
-7.8%
0.0%
-7.8%
0.0%
-7.8%
-7.8%
0.0%
1M
-7.8%
0.0%
-7.8%
0.0%

  2.2 ISP下载电路
  2.2.1 ISP是一种通用的程序下载方式,所有AVR单片机都有ISP下载接口。  
ISP下载线成本低廉,制作简单,可以使用ISP编程软件通过ISP下载线对AVR单片机进行读写操作。

  大部分AVRISP接口使用SCKMOSIMISO引脚,Ttiny13/24/2313Mega48/88/16Mega8/16/32/162Mega8515/8535等。少部分而使用SCKPDIPDO引脚,如Mega64/128/1281等。对应引脚如下表所示。
ISP
Mega8
Mega128
MISO
MISO
PDO
VCC
VCC
VCC
SCK
SCK
SCK
MOSI
MOSI
PDI
RESET
RESET
RESET
GND
GND
GND




  2.2.2 下载线种类很多,只简单讲一下最常用的两种,并口和USBASP下载线。并口下载线顾名思义接电脑的并口(打印口),制作简单,价格便宜,可用SLISP软件(双龙)进行操作。USBASP下载线是一位德国人开发的,接电脑的USB口,用一片Mega8做控制芯片,使用方便,可用PROGISP软件(智峰)进行操作。

  

AVR ISP并口下载线电路
AVR ISP简易并口下载线电路

USBASP官方电路图

  USBASP为开源项目,从官方网站上可以下载所有资料。注意的一点是电路中的D1D2稳压二极管不能省略,USB数据传输线电气电平为3.3V,若省略,可能造成电脑不能正确识别USBASP设备
  BASCOM-AVR支持很多种下载工具,其中包括并口和USBASP下载线,帮助里有详细说明。当在BASCOM集成环境里下载程序时,需设置<Option>-<Programmer>。如果使用并口下载线,Programmer选择STK200/300,使用USBASP时选择USBASP选项(BASCOM-AVR 1.11.9.6以后版本支持USBASP)。

  2.3 AVR单片机熔丝设置
  2.3.1 熔丝位是AVR单片机比较独到的特征,在每一种型号的AVR单片机内部都有一些特定含义的熔丝位,其特性表现为多次擦写的E²PROM。用户通过配置(编程)这些熔丝位,可以设置AVR的一些特性,参数以及I/O配置等,也可对片内运行代码锁定(加密)。对于初学者来说,AVR的熔丝位是“高深莫测”,稍不注意,单片机就“锁死”了。  
  每个熔丝位有两种状态,已编程(Programmed)和未编程(Unprogrammed)。熔丝位状态为“0”时表示已编程(Programmed),状态为“1”时表示未编程(Unprogrammed)。

  通过设置单个或者组合熔丝位来配置AVR单片机特性。以Mega8为例。
  BODLEVEL    BOD电平选择       12.7V 04.0V
  RSTDISBL      禁用或允许PC6作为外部复位引脚 1:允许 0:禁用
  SPIEN          SPI下载允许    1SPI下载禁止 0SPI下载使能
  EESAVE     擦除芯片时保留EEPROM数据  1:不保留;0:保留
  SUT1SUT0   2个熔丝位选择复位启动时间
  CKDEL3~0   这4个熔丝位选择单片机的时钟源
  熔丝位的详细解释及其代表的意义,请仔细阅读DATASHEET,上面有非常详尽的说明。

  2.3.2 “锁死”AVR芯片,就是配置的熔丝位使单片机状态与所处的运用环境不一致,使之不能正常工作或进行程序下载。
  常见的几种熔丝设置不当“锁死”芯片情况:
   SPIEN设置为1,即禁止ISP下载。一些ISP软件将此位设为不可编辑。
   RSTDISBL设置为0,即禁止外部RESET复位,将RESET复位脚用作I/O使用(PC6)。按照ISP下载时序,需要将RESET拉低进入编程模式,将此引脚设置为I/O后,已失去了RESET功能,因而无法进行ISP下载。
  ③ CKDEL3~0设置为0000,即配置为外部时钟。初学者往往弄不清外部时钟和外部晶振,外部时钟能够自主为单片机提供时钟脉冲,例如有源晶振,外部晶振一般指无源振荡晶体。若此项设置为外部时钟而锁了芯片,可将XTAL1脚接有源晶振、信号发生器、或者用其它关单片机产生的振荡源,写回熔丝位。
  ④ CKDEL3~0设置为0101011001111000,即配置为外部RC。这种情况需要搭个简单的RC电路进行解锁,频率可以通过方程f = 1/(3RC) 进行粗略估计,电容C 至少要22pF
  ⑤ CKDEL3~0设置为1001,即配置为外部低频晶振,如32.768KHz手表晶振。在这个低速率下,ISP下载线一般不能正常工作,造成对芯片无法再读写。
  所谓的“锁死”,只是对于普通ISP编程操作而言,使用高压编程,可以任意配置熔丝,不存在锁死的问题。
  笔者设计的AVR高压并行、高压串行编程器,可以对MEGATINY系列单片机进行任意编程。经过断断续续的改进,具备了比较完善的功能,已有很多AVR单片机爱好者使用。AVR高压并行编程器、可脱机高压并行编程器的制作资料已经公布,也有很多AVR单片机爱好者自行制作,反映很好。
  高压并行http://www.avrbase.com/forum.php?mod=viewthread&tid=212
  高压串行http://www.avrbase.com/forum.php?mod=viewthread&tid=189

  
2.3.3 MEGA1632等芯片的JTAGEN熔丝位。经常有初学者问:我的MEGA16坏了,PC口不好用。这个问题往往是因为JTAGEN熔丝位。一些AVR单片机具备JTAG 接口,可以通过JTAG 接口对FlashEEPROM、熔丝位和锁定位进行编程,可以仿真调试程序,接口使用TMSTCKTDITDO引脚。M16的这4个引脚在PORTC口上,芯片出厂默认为JTAG使能,即JTAGEN熔丝位为0,引脚作为JTAG端口,所以无法进行I/O控制。将JTAGEN熔丝位为1时,禁止JTAG使能,这4个引脚就可以作为普通I/O使用了。
  加密位是为了保护芯片内的程序代码而设置,并行和串行方式无法读出加密芯片内的正确数据。加密位写入后,再进行写操作无效,只有执行擦除芯片操作,加密位才能恢复为1

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

回复

使用道具 举报

1

主题

0

好友

86

积分

初级会员

Rank: 2

UID
304
帖子
22
精华
0
注册时间
2013-3-18
在线时间
8 小时
沙发
发表于 2013-4-4 16:56:06 |只看该作者
老大的帖,顶一下
回复

使用道具 举报

3

主题

0

好友

3058

积分

版主

Rank: 7Rank: 7Rank: 7

UID
9
帖子
9
精华
0
注册时间
2013-2-26
在线时间
3 小时
板凳
发表于 2013-4-29 18:31:14 |只看该作者
百年一遇的好帖。。。群里问低级问题的朋友建议都到这个帖子来看看。
回复

使用道具 举报

0

主题

0

好友

19

积分

新手上路

Rank: 1

UID
552
帖子
2
精华
0
注册时间
2013-12-2
在线时间
1 小时
地板
发表于 2014-1-4 20:51:10 |只看该作者
很好的网站,顶。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|圣龙扬特-AVR电子 ( 鲁ICP备05022832号 )

GMT+8, 2024-12-22 12:12 , Processed in 0.229843 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部