1引言如今随着信息产业的飞速发展,以微处理器为核心的嵌入式系统正在智能化仪表、实时控制系统等方面发挥着巨大的作用。在许多实际应用中经常面临的问题是需要支持大容量的数据存储功能。但是采用常规扩展外部数据存储器的方法,需要大量的地址总线和数据总线引脚,因而在访问外部数据存储器时,其容量受到微处理器地址总线和数据总线数量的极大限制。由于单片机的引脚数都相对较少,没有足够多的引脚用作外部数据存储器的地址总
1 引 言
如今随着信息产业的飞速发展,以微处理器为核心的嵌入式系统正在智能化仪表、实时控制系统等方面发挥着巨大的作用。在许多实际应用中经常面临的问题是需要支持大容量的数据存储功能。但是采用常规扩展外部数据存储器的方法,需要大量的地址总线和数据总线引脚,因而在访问外部数据存储器时,其容量受到微处理器地址总线和数据总线数量的极大限制。由于单片机的引脚数都相对较少,没有足够多的引脚用作外部数据存储器的地址总线,为了解决这一矛盾,本文以MSP430F12X2[1]单片机和AT45DB081[2]芯片为例,介绍了一种利用串行外设接口(SPI)扩展大容量数据存储器的方法。并给出初始化以及数据读写操作子程序。
2 硬件简介
MSP43 F12X20是一款超低功耗的混合信号控制器,具有16位RISC结构,有着丰富的片内外设,主要包括有看门狗、定时器、比较器、硬件乘法器、液晶驱动器、ADC、I/O端口、串口(USART)等,还集成有64 kB的FLASHROM和2 kB的RAM。其功能强大,应用场合广泛。特别适合应用于智能仪表、智能化家用电器、电池供电的便携式设备等产品中。相对于其他单片机MSP430 F12X2还具有以下特点:
(1)MSP430F12X2内部预设了JTAG模块,他使得每一个单片机芯片都具有完整的在线调试功能,而不必使用较复杂的仿真调试工具; (2)MSP430F12X2中的FLASH在线编程技术可以完成除了采用外部编程器进行烧写外,用户可以利用自己的程序修改FLASH内容,且不需要外加编程电压;
(3)MSP430F12X2中的BOOTSTRAP技术使芯片具有片内的BOOT ROM,可以实现程序代码的下载和上载。
AT45DB081是Atreel公司推出的工作电压为2.7~3.6 v,可在系统可重复擦写并兼容SPI的FLASH数据存储器。内部有4 096页、每页264个字节,共计8 MB的主存储器容量以及2个264字节的SRAM数据缓存器。支持在系统重复编程,不需要较高的编程电压,只需要芯片的工作电压2.7~3.6 V就可以完成对FLASH的读写操作。AT45DB081通过一个三线接口(包含串行输入SI、串行输出SO、串行时钟SCK)在片选信号的配合下进行访问。这种串行接口FLAS[{存储器十分适用于要求存储量大而引脚资源较少、电源电压低和低功耗的应用领域。
3 硬件原理图
MSP430F12X2与AT45DB081的硬件连接原理图如图1所示。
图1中将MSP430F12X2的P3.1,P3.2和P3.3引脚配置为SPI的MOSI(主出从人)、MISO(主出从入)CLK(串行时钟)和信号线,分别与AT、45DB081的串行输入、串行输出和时钟引脚相连。将P2.0,P2.1,P2.2与AT45DB081的芯片片选、复位和忙闲状态引脚相连。由于RDY/BUSY为漏极开路,因而需加上拉电阻输出[2]。