SRAM 数据存储器 ATmega128 支持两种不同的SRAM 配置,如Table 1 所示。 Figure 9 说明了ATmega128 的SRAM 存储器是如何组织的。 ATmega128是一个复杂的微处理器,其支持的外设要比预留的64个I/O(通过IN/OUT指令访问) 所能支持的要多。对于扩展的I/O 空间$60 - $FF,只能使用ST/STS/STD 和LD/LDS/LDD 指令。当ATmega128 工作于ATmega103 兼容模式时,扩展的I/O 将无法访问。 在普通模式下,前4352 个数据地址包含寄存器文件, I/O 存储器,扩展的I/O 存储器以 及内部数据SRAM。起始的32 个地址为寄存器文件,然后是64 个I/O 存储器,接着是 160 个扩展的I/O 存储器,最后是4096 字节的内部数据SRAM。 在ATmega103 兼容模式下,前4096 个数据地址包含寄存器文件, I/O 存储器以及内部 数据SRAM。起始的32 个地址为寄存器文件,然后是64 个I/O 存储器,最后是4000 字 节的内部数据SRAM。 ATmega128 还可以访问直到64K的外部数据SRAM。其起始紧跟在内部SRAM之后。 在 普通模式下,寄存器文件、I/O 存储器、扩展的I/O 存储器以及内部数据SRAM 占据了低 4352字节;而在ATmega103兼容模式下占据了4096字节(没有扩展I/O)。因此,在使用外 部存储器时普通模式只能有61184 字节, ATmega103 兼容模式只能有61440 字节。具 体请参见 P 23“ 外部存储器接口” 。 当访问SRAM 的地址超出内部SRAM 的地址时, MCU 将对外部SRAM 寻址(指令相 同)。访问内部SRAM 时读/ 写锁存信号(PG0 和PG1) 无效。若要访问外部SRAM,必 须置位MCUCR 的SRE。 访问外部SRAM 比访问内部的要多一个时钟周期,这意味着LD、ST、LDS、STS、 LDD、STD、PUSH 和POP 指令将多一个时钟周期。如果堆栈放置于外部SRAM,则中 断和函数调用将花费额外的三个时钟周期。如果外部SRAM 接口使用了1、2、3 个等待 周期,则访问周期将相应增加2、3、4 个时钟周期;中断和子程序调用的开销则增加5、 7、9 个时钟周期。 数据寻址模式分为5 种:直接寻址,带偏移量的间接寻址,间接寻址,预减的间接寻址, 以及后加的间接寻址。寄存器R26 到R31 为间接寻址的指针寄存器。 直接寻址访问整个数据空间。 带偏移量的间接寻址模式寻址到Y、Z 指针给定地址附近的63 个地址。 带预减和后加的间接寻址模式要用到X、Y、Z 指针。 32个通用寄存器,64个I/O寄存器,4096字节的SRAM可以被所有的寻址模式所访问。寄 存器文件说明见P 9“ 通用寄存器文件” 。 数据存储器访问时间 本节说明访问内部存储器的时序。如Figure 10 所示,内部数据SRAM 访问时间为两个clkCPU 时钟。 |
以上资料参考马潮老师的中文手册,由微雪电子整理并发布,转载请注明出处:www.waveshare.net,否则追究相应责任!