您的位置 首页 芯闻

32位精简指令集架构的AT91M42800A的规划与使用

摘要:介绍了ATMEL公司生产的基于32位精简指令集(RISC)架构的单片机AT91M42800A的特点,提出了一种基于AT91M42800A的应用设计方案,给出该设计的硬件原理图,同时针对AT91M

摘要:介绍了ATMEL公司出产的根据32位精简指令集(RISC)架构的单片机AT91M42800A的特色,提出了一种根据AT91M42800A的使用规划方案,给出该规划的硬件原理图,一起针对AT91M42800A的存储器空间分配问题,给出了涣散装载的程序代码举例,从而为根据AT91M42800A的嵌入式体系规划供给了一个思路。 关键词:精简指令集 AT91M42800A 单片机 1 导言 现在,嵌入式产品逐渐占据了PC商场,而其中心部分——处理器的功能则决议了产品的规划和功能。在32位嵌入式处理器中, 由ATMEL 公司出产的AT91系列芯片之一AT91M42800A是根据ARM7TDMI 处理器内核的16/32位微操控器,它除具有ARM处理器的低功耗、低成本、高功能等长处外,还具有十分丰厚的片内资源,特别合适于嵌入式产品的规划开发。 2 AT91M42800A 的根本特性 AT91M42800A选用32位精简指令集(RISC)架构,因而,它既支撑16位Thumb指令集,又支撑32位的Arm指令集。它选用三级流水线结构,可在同一时间内,一条指令在履行,第二条指令在译码,第三条指令在取指,这样,在每个周期都有一条指令在履行,因而,指令履行速度很快。AT91M42800A的根据先进微操控器总线结构(AMBA)的模块化规划办法具有归纳、快速、高功能价格比的特色。该微操控器的内部作业寄存器许多,十分合适实时操控使用。其首要特色如下:

1.gif

●内核电压和锁相环电压为2.7~3.6V, I/O口操作电压为2.7~5.5V; ●内部带有8kB静态RAM; ●具有彻底可编程外部总线接口(EBI),且多达8个片选,寻址空间很大; ●内含8通道外设数据操控器(PDC); ●带有54个可编程I/O口; ●内含6通道16位守时/计数器; ●具有2个通用串行异步接纳/发送器(USART)和2个主/从SPI接口; ●内含3个体系守时器; ●时钟可由32768 Hz 晶体和内部锁相环(PLL)电路发生,最高可编程至33MHz,也可由外部时钟信号供给; ●内置嵌入式在线仿真电路(Embedded %&&&&&%E)可经过JTAG口对AT91M42800A进行测验。 3 根本组成体系 由AT91M42800A构成的最根本的体系至少应包含以下几个部分: (1)程序存储器(ROM) 因为AT91M42800A 内部没有ROM,因而,有必要外扩一片程序存储器。应当留意的是:AT91M42800A的8位总线和16位总线的FLASH接法不同,详细接法如图1所示。 (2)数据存储器RAM 假如规划的体系比较复杂,数据比较多,当单片机内部8kB SRAM不能满足要求时,还要外扩一片数据存储器。AT91M42800A能够支撑两种“写”办法,但对8位数据总线和16位数据总线的操作也是不同的,因而,关于不同的存储器,其接法不同。关于8位总线的存储器,只需接D0~D7,将D8~D15悬空,并将其地址线对接,而单片机的NWE/NWR0接到存储器的NWE上。关于16位总线的存储器,则将其数据线对接,A1~A17接存储器的A0~A16,并将其NWE/NWR0接存储器的NWE,NUB/NWR1接存储器的NUB,NLB/A0接存储器的NLB。外扩的RAM 的接法与外扩FLASH的接法相似。 (3)时钟发生电路 AT91M42800A的时钟既能够外接晶体,也可外接时钟信号。当外接晶体时,因为其内带振荡电路,因而,外接32.768 kHz 的晶体后,可发生慢时钟(SLCK)。因为SLCK频率低,所以体系的功耗也很低。若想进步体系的作业频率,则可经过PLLA或PLLB对其倍频,以到达所要求的作业频率。假如所需频率不能经过PLL倍频得到,则可由外接时钟信号来供给。当外接时钟信号时,可直接把时钟信号接到XIN引脚上,XOUT引脚悬空。 (4)显现电路 显现电路可选用数码管显现或液晶显现,因为液晶显现的功耗低,故常选用这种显现办法。该规划选用的液晶显现模块为LCM103。 (5)电源及复位电路 AT91M42800A内部带有看门狗(WatchDog)电路,也能够外加WatchDog电路。本文中的比如选用的便是外加WatchDog电路的接法,所选用的器材是MAXIM公司出产的MAX6316LUK29CY。 4 典型使用 因为单片机AT91M42800A具有低功耗、高功能、片内资源丰厚、寻址空间大等长处,所以合适现场总线产品的开发,其扼要硬件原理图如图2所示。图中只给出首要器材的首要引脚接法,电源电路及其它引脚限于篇幅图中未画,读者在实践的规划过程中可自行设定。 图2 现场总线开发实例 5 存储器空间分配 在本规划中,因为ARM7TDMI处理器的地址空间十分大(可达4G字节)。因而,在重映射前,可将地址最低的4MB分配给内部存储器,最高的4M 分配给内部外设,其他中心的地址空间(从0x00400000到0xFFFCFFFF)留给外部扩展的设备,这部分设备可由AT91M42800A 的八个片选来挑选。笔者挑选的AT91M42800A开发环境为ADS1.1,因为在实践的嵌入式体系中,ADS1.1供给的缺省存储器映射不能满足要求,而用户的方针硬件有多个存储器设备,且坐落不同的方位,如上例中,AT91M42800A的四个片选分别给了外扩FLASH、外扩的RAM、以及FB3050的内部寄存器片选和存储器片选,因而需求经过Scat-ter 文本文件来指定一段代码或数据在加载和运行时在存储器的不同方位,这个文本文件在命令行中由-scatter开关指定。在arm linker菜单的output 子菜单下有link type一项。link type 选项中,只需挑选 scatter,并指定scatter.scf 文件的存储方位就能够了。鄙人面的比如中,FLASH中的代码和数据存储在0x04000000开端的、长度为32kB的地址空间中。 因为Start. s:汇编引导程序代码在履行重映射后,中断向量表将寄存在内部RAM中,其地址规模为0x00000000到0x00000018,因而,用于寄存数据的实践地址是从0x00000020开端的。寄存在外扩RAM中的代码放在ext_ram.c中,以下相似。上例的scatter 文本文件代码如下: FLASH 0x04000000 0x8000 { FLASH 0x04000000 0x8000 { Start.o (Reset, +First) * (+RO) } RAM ON CHIP 0x0020 0x2000 { *(+RW,+ZI) } RAM OFF CHIP 0x8000000 0x40000 { ext ram.o(+RW,+ZI) } FB3050 SEND 0x30000000 0x00ff { sendbuf.o(+RW,+ZI) } FB3050 RECEIVE 0x30004000 0x00ff { receive buf.o+RW+ZI } } 6 调试关键 在规划调试过程中,AT91M42800A还有几个特别的引脚需求特别留意。 BMS:此引脚用来挑选引导存储器的数据宽度,假如引导存储器是8位的,应将其上拉,而假如为16位则要下拉。 NTRI:此引脚用来挑选三态形式。假如要进入三态形式,应使NTRI引脚在NRST上升沿到来之前坚持10个慢时钟周期的低电平,不然,则应将NTRI上拉。 NWAIT:此引脚在调试AT91M42800A时,应将其上拉,不然,体系将进入等候状况。 MODE0、MODE1:这两个引脚用来挑选AT91M42800A的4种操作形式,当形式改动时,有必要进行复位才干有用。其设置办法如表1所列。 表1 操作形式设置 MODE0 MODE1 操 作 模 式 0 0 通用形式(时钟由片上振荡电路发生) 0 1 鸿沟扫描形式 1 0 通用形式(时钟由外时钟信号经过XIN引脚) 1 1 保存7 结束语 AT91M42800A是一款处理才能十分强、功能价格比十分高的嵌入式微操控器,它具有32位处理器的处理才能,但却只要16位处理器的价格。它丰厚的片上资源和强壮的扩展才能为嵌入式体系的开发规划供给了很大灵活性。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/xinwen/281229.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部