积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> 单片机 >> 应用论文
  相关分类: 相关文章 | 应用论文 | 新产品 | 下载 |
ATmega128的外部并行接口器件扩展应用
 
作者:未知   来源:BDTIC 半导体    点击数:35   更新时间:2008-8-5
您可以添加到网摘 让更多人关注此文章:

    

     ATmega128 片内的RAM有4K字节,这在8位单片机中算佼佼者。因此,设计一般的应用系统,应尽量不采用外部扩展并行器件的设计。这样不仅方便PCB板的设计,减少PCB板的面积,同时也提高了系统的抗干扰性。

   对于必须采用外部并行器件扩展的设计,ATmega128 的PORTA(低8位地址线和8位数据线复用)、PORAC(高8位地址线)口提供了并行扩展接口。尽管并行接口的基本使用原理同一般的单片机相同,但由于ATmega128 的结构上的特点,以及其使用了增强型的并行接口,因此在使用并行扩展接口时还需要仔细的设计。其主要特性有:

*外部并行扩展的地址从0x1100开始;

*使用外部并行扩展时,应将MCUCR寄存器中的SRE位置“1”,允许外部并行扩展;

*可将PORTC口高位不用的地址线释放,作为普通的I/O口使用;

*可设置对不同区域采用不同的读写操作时序(加等待),用于配合扩展使用不同时序操作的外部并行器件。

5.5.1 外部扩展RAM存储器的设计

  下图给出一个外部扩展32K的RAM(6264)的译码参考电路。

ATmega128的外部并行接口器件扩展应用

  图中使用了一片74HC138和与门,与门的输出作为6264的片选信号,其地址空间为0x0000 –0x8FFF。74HC138其它7个引脚输出用于在地址大于0x9000以上空间扩展其它更多的并行接口器件,每根线选通的地址空间为4K。

   由于ATmega128的RAM空间前4352个字节分配给芯片内部的通用寄存器、I/O寄存器和4K字节的内部SRAM,所以外部并行扩展器件的起始地址是从0x1100开始的(见第二章内容)。当MCU在对0X0000-0X10FF范围的SRAM地址空间操作时,实际是对芯片内部的SRAM或寄存器操作,尽管会影响地址总线、数据总线和ALE,但此时 和 不受影响,因此对相应的处在这段地址范围的外部扩展的存储器没有影响。在图5.6的设计中,实际上已经把6264中地址范围在0x0000-0x0FFF的一段存储单元“移”到ATmega128 的RAM地址空间高端0x8000-0x8FFF处。当用户程序对0x8000-0x8FFF寻址操作时,实际是对外部存储器RAM芯片6264的0x0000-0x0FFF操作,即将外部RAM芯片的前4K个单元“移” 到ATmega128的32K地址空间后面了,因此系统总共有36KB可以使用的线形连续RAM。

   当外部扩展RAM的起始地址是从0x1100开始的,即与内部RAM空间连续时,使用ICCAVR或CVAVR编写系统程序前,建议先使用程序生成器来生成一个使用外部扩展RAM的初始化程序作为参考。在程序生成器生成的初始化程序中,会将MCUCR寄存器中的SRE位置“1”(允许使用外部并行接口),还能帮助你正确的选择和设定并产生对不同区域使用不同操作时序的设置语句,以及如何将变量定义在特定的地址空间等。此外,在编译程序前,还要正确设置芯片的编译选项,告诉编译器使用外部RAM,以及大小等,这样编译器会自动的将变量分配到外部RAM空间。

5.5.2 外部扩展并行I/O接口设计

   下图给出一个简单的外部扩展32位数字输入接口的参考电路。ATmega128 外部并行扩展4片74HC373芯片(图中只画出1片),每选通一片74HC373,读入8位数字信号。

ATmega128的外部并行接口器件扩展应用

   4片74HC373的选通信号由一片74HC00产生,选通地址分别为:0x2100、0x2200、0x2400、0x2800(或0x3100、0x3200、0x3400、0x3800)。注意,系统没有扩展外部的RAM,因此地址空间0x0000-0x10FF为片内SRAM,而空间范围在0x1100-0x20FF的一段为空地址,4个74HC373的选通地址也是不连续的。在这个设计中,ATmega128的高位地址线A6、A7没有使用,可以释放作为普通的I/O线使用。

   下面是在ICCAVR环境下的应用例程。

#define ext_PORT1 (*(volatile unsigned char *)0x2100)
#define ext_PORT2 (*(volatile unsigned char *)0x2200)
#define ext_PORT3 (*(volatile unsigned char *)0x2400)
#define ext_PORT4 (*(volatile unsigned char *)0x2800)

void main(void)
{
   unsigned char DATA;
   MCUCR = 0x80; // 允许外部并行扩展接口
   XMCRA = 0x00; // external memory
   XMCRB = 0x02; // 释放PC7,PC6,作为通用I/O引脚使用
   DDRC = 0xff; // PC7,PC6用于输出,(不影响PC0-PC5地址线)
   PORTC = 0x00; // PC7,PC6输出0,(不影响PC0-PC5地址线)

  DATA = ext_PORT1; //读取外部抗战接口1的数据到变量DATA中
   If (ext_PORT3) PORTC |= 0x80; //外部接口3不为0时,PC7输出1
     ………
}

  程序中的4句#define使用了ICCAVR的强制指针变量的方式,在RAM绝对地址空间0x2100、0x2200、0x24000、x2800处定义了变量ext_PORT1~extPORT4,在程序中就可以方便的使用这4个变量对外部4个扩展口操作了。由于没有用到高位地址线PC7、PC6寻址和译码,程序中将起释放,作为普通的I/O口使用,也充分利用了ATmega128 的特点。

   在这个设计中,由于实际上并没有外部的扩展RAM,所以在编译程序前,要注意正确设置芯片的编译选项,告诉编译器不使用外部RAM,防止编译器将其它的变量分配到外部RAM空间中。

   在CVAVR环境中,在RAM绝对地址空间0x2100、0x2200、0x24000、x2800处定义变量ext_PORT1~extPORT4应使用CVAVR的专用变量定义语句:

   unsigned char ext_PORT1 @0x2100,ext_PORT1 @0x2100,ext_PORT1 @0x2100,ext_PORT1 @0x2100;

   在编译程序前,也要注意正确设置芯片的编译选项,告诉编译器不使用外部RAM,防止编译器将其它的变量分配到外部RAM空间中。



相关文章
· 单片机4×4矩阵式键盘的课程设计[31]
· 基于单片机的数字正弦机研制[47]
· 图形LCD模块ACM19264ASB的汉字显示[14]
· 基于单片机的康复仪研究[27]
· 基于单片机的康复仪研究[17]
热门评论排行
·VHDL设计中电路简化问题的
·江苏嵌入式Linux教育培训
·锐极LINUX驱动培训班定于
·基于实时操作系统μC/OS-
·ARM处理器应用开发4步骤

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
各种冲值卡批发销售!独家特价!
特价销售GPS车载导航系统!
数字电视批发销售!你想不到的价格!
品牌相机批发销售!你想不到的价格!
品牌手机批发销售!你想不到的价格!
笔记本电脑批发销售!你想不到的价格!
那一年我做了鸭子2
那一年我做了鸭子1
等你十年(下)
等你十年(上)
 
热门下载 [更多]
 
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
[ ] 实用电源电路集锦
 
论坛新帖 [更多]
 
新店开业,部分开发板&元器件特...
[原创]VB编程RS232串口...
红外摄像机控制故障分析与处理方...
红外防水摄像机在智能视频监控中...
步进电机不用驱动芯片能驱动吗?...
我要选一块双串口,带AD的单片...
[分享]运放和功放的区别是什么...
4×4矩阵式键盘的课程设计...
做过高速信号滤波的高手帮忙...
做视频信号放大器,各位有什么好...

 
赞助商 [更多]
 


ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网