基于MSP430F12x2的SPI数据存储器扩展分析

发布者:Bby1978最新更新时间:2018-04-02 来源: eefocus关键字:MSP430F12x2  SPI  数据存储器 手机看文章 扫描二维码
随时随地手机看文章

    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]。

    4 AT45DB081的操作及操作码

    对AT45DB021B的操作是由主机发出的指令控制,一个有效的指令在

    的下降沿开始,包括一个8位的操作码和要进行操作的页地址和缓冲区地址的位置。表1列出了AT45DB021B的主要的操作方式和对应的操作码。

    (1) 状态存储器

    他是AT45DB021B内的一个8位的只读存储器,用于指示其工作状况,如表2所示,BIT7用于显示AT45DB021B的状态,BIT7位=1时,说明AT45DB021B不忙,可以对其进行指令操作,BIT7位=0时,指示AT45DB021B忙,可以通过检测BIT7位实时了解AT45DB021B的状态。BIT6 COMP用于显示主存储器页面与缓存器进行数据比较的结果,当比较结果匹配COMP=0,否则COMP=1。

    (2) 通过缓冲存储器对主存储器写操作

    命令码为:操作码5位保留码10位页地址码9位页内起始地址码,其中操作码为82H时,数据通过缓冲存储器1向主存储器写,为85H时,数据通过缓冲存储器2向主存储器写操作。

    (3) 主存储器页读

    主存储器页读指令可以对1024页中的任意页进行读操作,命令码为:8位操作码,5位保留码,10位页地址码,9位页内起始地址码,32位无关码;操作码为52H或D2H,5位保留码用于对片子的上下兼容,10位页地址码用于确定对主存储器的哪一页进行操作,9位页内起始地址码来确定页内操作的起始地址,后32为无关码用来配合时序。当 为0时,主机向器件的SCK引脚发送时钟信号,引导操作码和地址从SI引脚写入器件,当最后一位写入后的下一个时钟周期,页内数据将从SO引脚输出。

    5 软件流程及读写程序

    MSP430F12X2单片机对AT45DB081进行初始化以及数据读写操作的软件流程图如图2所示。图2中系统初始化包括系统时钟初始化、将P3.1,P3.2和P3.3引脚配置为SPI接口,设置SPI特殊状态寄存器和复位数据存储器。

    单片机通过P2.2读取AT45DB081的忙闲状态引脚来判断存储器是否空闲,若P2.2为1表示存储器空闲,否则表示存储器忙。当存储器空闲时通过P2.0引脚输出0作为存储器的片选信号。选中存储器后可以参照表1,通过SPI发送命令字完成对AT45DB081的相应读写操作。对AT45DB081进行初始化以及数据读写操作的子程序[3]如下。

    6 结 语

    本文的创新意义在于在占用:MSP430F12X2单片机引脚数极少的情况下实现了大容量外部存储器的扩展方法,使得单片机在扩展外部数据存储器中改并行访问为串行访问,不再需要大量的地址和数据总线引脚。这种方法同样可推广到其他带有SPI接口的微处理器。在数据采集,智能仪表中都具有很强的实用意义。

关键字:MSP430F12x2  SPI  数据存储器 引用地址:基于MSP430F12x2的SPI数据存储器扩展分析

上一篇:基于单片机的对车体平台的倾斜状态进行自动显示的操作
下一篇:基于STC12C5A60S2 单片机的植物智能精确补光系统研制

推荐阅读最新更新时间:2024-03-16 15:58

【51单片机快速入门指南】5.1:SPI与DS1302时钟芯片
普中51-单核-A2 STC89C52 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 硬知识 摘自《普中 51 单片机开发攻略》、《DS1302中文手册》。 DS1302 简介 DS1302 是 DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和 31 字节静态 RAM,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、周、月、年的信息,每月的天数和闰年的天数可自动调整。时钟操作可通过AM/PM 指示决定采用 24 或 12 小时格式。DS1302 与 单片机之间能简单地采用同步串行
[单片机]
【51单片机快速入门指南】5.1:<font color='red'>SPI</font>与DS1302时钟芯片
PIC32 SPI简介(主/从模式)
SPI串行同步接口(有时钟脉冲) 串行外设接口(Serial Peripheral Interface,SPI)模块是用于同外部外设和其他单片机器件进行通信的同步串行接口。这些外设可以是串行EEPROM、移位寄存器、显示驱动器和模数转换器 (ADC)或音频编解码器。 SPIx 串行接口由以下四个引脚组成:(可由引脚的映射确定四个引脚) SDIx:串行数据输入 SDOx:串行数据输出 SCKx:移位时钟输入或输出 SSx:低动态功耗从选择或帧同步I/O 脉冲 主模式下SPI 模块的工作原理如下所述: 一句话概括:数据由用户写入SPIxbuf然后装入SPIXTXB发送缓冲区移入移位寄存器SPIxSR,仅当存在待发送数据时
[单片机]
PIC32 <font color='red'>SPI</font>简介(主/从模式)
STM32入门开发: 介绍SPI总线、读写W25Q64(FLASH)(硬件+模拟时序)
一、环境介绍 编程软件: keil5 操作系统: win10 MCU型号: STM32F103ZET6 STM32编程方式: 寄存器开发 (方便程序移植到其他单片机) SPI总线: STM32本身支持SPI硬件时序,本文示例代码里同时采用模拟时序和硬件时序两种方式读写W25Q64。 模拟时序更加方便移植到其他单片机,更加方便学习理解SPI时序,通用性更高,不分MCU; 硬件时序效率更高,每个MCU配置方法不同,依赖MCU硬件本身支持。 存储器件: 采用华邦W25Q64 flash存储芯片。 W25Q64这类似的Flash存储芯片在单片机里、嵌入式系统里还是比较常见,可以用来存储图片数据、字库数据、音
[单片机]
STM32入门开发: 介绍<font color='red'>SPI</font>总线、读写W25Q64(FLASH)(硬件+模拟时序)
STM32之SPI_CR1寄存器的SSM, SSI位理解
近日调试STM32的SPI程序,现在记录下自己的一点小理解。 STM32之SPI_CR1寄存器的SSM, SSI位理解 SSM位,启用或禁止软件从设备选择。SSM置位时,NSS输入引脚的电平将被SSI的值代替。 SSI位,在SSM=1时有意义,决定NSS引脚上的电平,NSS引脚上的IO值将忽略。 NSS输入分为硬件输入和软件控制输入两种模式。NSS有内部和外部引脚。当NSS是软件控制输入模式时,NSS的内部引脚和外部引脚断开。内部引脚通过SPI_CR1寄存器的SSI位来驱动,外部引脚留作他用(可以作为GPIO驱动从设备的片选信号)。 当SSM位置位使能时,启用软件从设备选择,也就是软件控制输入模式。外
[单片机]
SPI实验W25Qxx讲解
W25Q64 是华邦公司推出的大容量SPI FLASH 产品,W25Q64 的容量为 64Mb,W25Q128的容量为128Mb。 W25Q64 的擦写周期多达 10W 次,具有 20 年的数据保存期限,支持电压为 2.7~3.6V。 一。 程序配置过程 二。 硬件连接 三。SPI底层函数讲解 首先是初始化函数 //以下是SPI模块的初始化代码,配置成主机模式,访问SD Card/W25Q64/NRF24L01 //SPI口初始化 //这里针是对SPI2的初始化 //MISO根据手册要设置成上拉输入或浮空输入,根据经验设置成推挽复用也可以,所以这里全部设置成推挽复用功能。 void SPI2_Init(void) { G
[单片机]
<font color='red'>SPI</font>实验W25Qxx讲解
SPI驱动的移植
为了使用SPI 驱动,必须在配置Linux 编译选项时,开启相应的SPI 选项,如下所示 - Device Drivers - SPI support SPI support *** SPI Master Controller Drivers *** -*- Bitbanging SPI master * Samsung S3C24XX series SPI Samsung S3C24XX series SPI by GPIO *** SPI Protocol Masters *** SPI EEPROMs from most vendors
[单片机]
STM32的SPI接口、cubeMX软件配置SPI接口和分析SPI相关代码
本文主要介绍STM32的SPI接口、cubeMX软件配置SPI接口和分析SPI相关代码。 STM32之SPI简介: SPI协议【Serial Peripheral Interface】 串行外围设备接口,是一种高速全双工的通信总线。主要用在MCU与FLASHADCLCD等模块之间的通信。 SPI信号线 SPI 共包含 4 条总线。 SS(Slave Select):片选信号线,当有多个SPI 设备与 MCU 相连时,每个设备的这个片选信号线是与 MCU 单独的引脚相连的,而其他的 SCK、MOSI、MISO 线则为多个设备并联到相同的 SPI 总线上,低电平有效。 SCK (Serial Clock):时钟信号线,由主通信设备
[单片机]
STM32的<font color='red'>SPI</font>接口、cubeMX软件配置<font color='red'>SPI</font>接口和分析<font color='red'>SPI</font>相关代码
基于SPI方式DSP外部E2PROM接口设计
   0 引 言   近年来,随着DSP技术的普及、高性能DSP芯片的出现,DSP已越来越多地被广大的工程师所接受,并越来越广泛地被应用于各个领域,例如:语音处理、图像处理、模式识别及工业控制等,并且已日益显示出其巨大的优越性。DSP是利用专门或通用的数字信号处理芯片,以数字计算的方法对信号进行处理,具有处理速度快、灵活、精确、抗干扰能力强、体积小及可靠性高等优点,满足了对信号快速、精确、实时处理及控制的要求。   在语音处理、图像处理、模式识别及工业控制中,少不了对必要的数据进行存储保护。如果存储在内外RAM之中,掉电数据就丢失,起不到保护数据的作用;存储在FLASH中,由于对FLASH进行数据写入时,要先进行擦除操作,然后
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved