ATmega64 SRAM数据存储器
2021-11-12 来源:eefocus
SRAM 数据存储器
ATmega64 支持两种配置的SRAM 数据存储器,见Table 1。
Figure 9 给出了ATmega64 SRAM 空间的组织结构。
ATmega64并行单元超过 64个,对于0x60 - 0xFF的扩展I/O空间,只能使用ST/STS/STD 与LD/LDS/LDD 指令。在ATmega103 兼容模式下,不存在扩展I/O 空间。
前4,352 个数据存储器包括了寄存器文件、I/O 存储器及内部数据SRAM。起始的32 个 地址为寄存器文件接着的64 个地址为标准I/O 存储器, 160 个扩展 I/O 存储器, 4,096 字节的内部数据SRAM。
ATmega103 兼容模式下, 前4,096 个数据存储器包括了寄存器文件、I/O存储器及内部数 据SRAM。起始的32 个地址为寄存器文件接着的64 个地址为标准I/O 存储器,4,000 字 节的内部数据SRAM。
ATmega64还有可选外部数据SRAM。该SRAM在64K地址空间中,位于内部SRAM地址 后。在普通模式下,前4,352 字节包括寄存器文件、I/O、扩展I/O 及内部SRAM ;而在 ATmega103兼容模式下,前4,096字节中没有扩展I/O,因此当使用64KB (65,536 字节)外 部存储器时,普通模式有61,184 字节的外部存储器,而ATmega103 兼容模式有61,440 字节的外部存储器。详见P24“ 外部存储器接口” 。
当访问SRAM存储器地址超出内部数据存储器空间时,使用相同的指令对外部数据SRAM 进行访问。当访问内部数据存储器时,读/ 写选通引脚(PG0 与PG1) 静止。设置 MCUCR 寄存器的SRE 位可使能外部SRAM。
访问外部SRAM 时,每字节比访问内部SRAM 多一个时钟周期。即指令LD、ST、LDS、 STS、 LDD、 STD、 PUSH及POP 多一个时钟周期。若堆栈位于外部SRAM,则中断、子 程序调用及返回需要增加三个时钟周期,因为有2 字节程序计数器推入与弹出且外部存储 器访问不能使用内部流水线访问。当外部SRAM 接口处于等待状态时,根据其处于一、 二、三等待状态,一个字节的访问分别有二、三、四个额外时钟周期;中断、子程序调 用、返回则需五、七、九个时钟周期。
数据存储器的寻址方式分为5 种:直接寻址、带偏移量的间接寻址、间接寻址、带预减量 的间接寻址和带后增量的间接寻址。寄存器文件中的寄存器R26 到R31 为间接寻址的指 针寄存器。
直接寻址范围可达整个数据区。
带偏移量的间接寻址模式能够寻址到由寄存器Y 和 Z 给定的基址附近的63 个地址。
在自动预减和后加的间接寻址模式中,寄存器X、Y 和Z 自动增加或减少。
ATmega64 的全部32 个通用寄存器、64 个I/O寄存器、160 扩展 I/O 寄存器 及4,096 个字 节的内部数据SRAM 可以通过所有上述的寻址模式进行访问。寄存器文件的描述见P10“ 通用寄存器文件” 。
数据存储器访问时间
本节说明访问内部存储器的时序。如Figure 10 所示,内部数据SRAM 访问时间为两个clkCPU 时钟。