ATmegal28 SRAM数据存储器
发表:2023-08-29 12:06:16 阅读:54

ATmegal 28支持两种不同的SRAM配置,如表2—1所列。

图2—9是数据存储器映象,说明了ATmegal 28的SRAM存储器是如何组织的。ATmegal28是一个复杂的微处理器,其支持的外设要比预留的64个I/O(通过IN/OUT指令访问)所能支持的要多。对于扩展的I/O空间$60~$FF,只能使用ST/STS/STD和LD/LDS/fLDD指令。当ATmegal 28工作于ATmegal 03兼容模式时,扩展的I/O将无法访问。

在普通模式下,前4 352个数据地址包含寄存器文件、I/O存储器、扩展的I/O存储器以及内部数据SRAM。起始的3 2个地址为寄存器文件,然后是64个I/O存储器,接着是1 60个扩展的I/0存储器,最后是4 096字节的内部数据SRAM。在ATmegal03兼容模式下,前4 096个数据地址包含寄存器文件、I/o存储器以及内部数据SRAM。起始的32个地址为寄存器文件,然后是64个I/O存储器,最后是4 000字节的内部数据SRAM。

ATmega l28还可以访问直到64 KB的外部数据SRAM,其起始紧跟在内部SRAM之后。在普通模式下,寄存器文件、I/O存储器、扩展的I/o存储器以及内部数据SRAM占据了低4 352字节;而在ATmegal 03兼容模式下占据了4 096字节(没有扩展I/O)。因此,在使用外部存储器时普通模式只能有61 184字节,ATmegal03兼容模式只能有61 440字节。

当访问SRAM的地址超出内部SRAM的地址时,MCU将对外部SRAM寻址.两者指令相同。访问内部SRAM时读/写锁存信号(PG0和PGl)无效。若要访问外部SRAM,必须置位MCUCR的SRE。

访问外部SRAM比访问内部的要多一个时钟周期,这意味着LD、ST、LDS、STS、LDD、STD、PUSH和POP指令将多一个时钟周期。如果堆栈放置于外部SRAM.则中断和函数调用将花费额外的3个时钟周期。如果外部SRAM接口使用了1、2、3个等待周期.则访问周期将相应增加2、3、4个时钟周期,中断和子程序调用的开销则增加5、7、9个时钟周期。

数据寻址模式分为5种:直接寻址、带偏移量的间接寻址、间接寻址、预减的间接寻址以及后加的间接寻址。寄存器R26~-R3 1为间接寻址的指针寄存器。直接寻址访问整个数据空间。带偏移量的间接寻址模式寻址到Y、Z指针给定地址附近的63个地址。带预减和后加的间接寻址模式要用到X、Y、Z指针。32个通用寄存器、64个I/O寄存器、4 096字节的SRAM可以被所有的寻址模式Ni;S Iu7。

电子街推荐阅读:

AVR内核的结构 

微控制器MCU

指令执行时序 

AVR复位和中断处理 

ATmegal28系统内可编程的Flash程序存储器