AMetal平台如何快速实现SPI Flash功能

发布者:EEWorld资讯最新更新时间:2019-07-18 来源: EEWORLD作者: ZLG立功科技·致远电子关键字:AMetal  SPI  Flash 手机看文章 扫描二维码
随时随地手机看文章

摘要:SPI NOR Flash是一种片外扩展存储器,可用来存储图片、字库等大量数据,其种类繁多,应用广泛,用户每次使用时都需耗费大量时间阅读相关的手册。如何快速实现类似的相关功能呢?下文做详细介绍。

 

由于SPI NOR Flash种类繁多,我们每次使用SPI NOR Flash时,都耗费许多时间在阅读相关的手册上。AMetal助你快速实现Flash功能!即使不阅读Flash芯片手册,也能顺利使用,可以把专注力投入到应用优化和算法中,提升产品质量。

 

AMetal平台提供了IS25xx、MX25xx等系列SPI NOR Flash的组件,提供初始化函数及丰富的功能接口。

 

本次介绍所使用的SPI NOR Flash为:IS25LP064A。IS25LP064A是ISSI的其中一款存储芯片,采用SOIC封装,50MHz正常读取,DTR高达66MHz,超过100000次擦除,具有高灵活性和高性能。该器件可通过4线SPI接口访问,支持SPI模式0和模式3。该芯片可编程页大小为256Bytes,可选择的擦除方式为:扇区擦除、块擦除、整片擦除。

 

使用之前,必须先完成该芯片的初始化,初始化IS25xx的函数如图1所示,完成初始化后为设备的驱动函数提供实例化句柄。

 

 

图1  IS25xx初始化接口函数

 

  1. am_is25xx_dev_t为IS25xx的设备实例,为整个外设驱动提供必要的内存空间,用户只需要使用设备结构体类型定义一个变量即可;

 

  1. am_is25xx_devinfo_t为IS25xx的设备信息,包括使用的SPI模式、SPI片选引脚、使用的SPI速率以及器件型号,用户按实际使用进行配置即可正常工作;

 

  1. IS25初始化函数中am_spi_handle_t为主机MCU的SPI初始化,AMetal平台支持的MCU提供了标准化的SPI接口函数及初始化函数,实际使用时,通常只需根据实际情况配置SPI使用的引脚,提供SPI标准服务句柄。

 

  1. IS25实例初始化函数为:

 

 

在硬件连接一致的情况下,可直接调用IS25xx实例初始化函数完成SPI Flash的初始化:

 

am_is25xx_handle_t is25xx_handle = am_microport_flash_is25xx_inst_init(void);

 

SPI Flash比较特殊,在写入数据之前必须确保相应的地址单元已经被擦除,因此除了读、写函数外,还有一个擦除函数。IS25功能接口函数如图2所示。

 

 

图2  IS25xx功能接口函数

 

  1. 擦除

 

擦除就是将数据全部重置为0xFF,即所有存储单元的位设置为1。擦除操作不能直接擦除某个单一地址单元,擦除的最小单元是扇区,IS25一个扇区大小为4KB,即每次只能擦除单个或多个扇区。擦除函数原型为:

 

int am_is25xx_erase(am_is25xx_handle_t handle, uint32_t addr, uint32_t len);

 

其中,handle为IS25xx的实例句柄,addr为待擦除区域的首地址,由于擦除的最小单元为扇区,因此该地址必须为某个扇区的起始地址,len为擦除长度,必须为扇区大小的整数倍。返回AM_OK,说明擦除成功;

 

  1. 写入数据

 

在写入数据前,必须确保写入地址已被擦除。即需要变为0的位清0,写入操作无法将0变为1。从指定的起始地址开始写入一段数据的函数原型为:

 

int am_is25xx_write(am_is25xx_handle_t handle, uint32_t addr, uint8_t *p_buf, uint32_t len);

 

其中,addr为待写入区域的首地址,只要确保addr之后的区域已经经过擦除,则可以从该芯片中任一存储地址开始写入,len为写入数据长度。返回AM_OK,说明写入数据成功;

 

  1. 读取数据

 

从指定的起始地址开始读取一段数据的函数原型为:

 

int am_is25xx_read(am_is25xx_handle_t handle, uint32_t addr, uint8_t *p_buf, uint32_t len);

 

其中,addr为待读取区域的首地址,可以指定该芯片中任一存储地址开始读取,len为读取数据长度。返回AM_OK,说明读取数据成功。

 

由于读、写数据需要的缓存空间较大,最好从全局数据区域中分配缓存。如果直接从函数的运行栈中分配较大字节空间,则完全有可能导致栈溢出,进而系统崩溃。

 

AMetal平台提供了较全面的功能接口函数,所有接口函数均脱离底层,不与具体硬件绑定,切换MCU可快速移植。AMetal助你快速实现SPI Flash功能,将专注力投入到核心应用部分,让具有竞争力的产品更快走向市场!

 



关键字:AMetal  SPI  Flash 引用地址:AMetal平台如何快速实现SPI Flash功能

上一篇:日韩贸易战恐影响内存价格波动
下一篇:日韩贸易战,导致DRAM价格即将上涨

推荐阅读最新更新时间:2024-11-03 19:02

S3C2440裸机------SPI_FLASH编程
1.spi_flash.h #ifndef _SPI_FLASH_H #define _SPI_FLASH_H void SPIFlashReadID(int *pMID, int *pDID); void SPIFlashInit(void); void SPIFlashEraseSector(unsigned int addr); void SPIFlashProgram(unsigned int addr, unsigned char *buf, int len); void SPIFlashRead(unsigned int addr, unsigned char *buf, int len); #endif
[单片机]
浅谈SPI总线
SPI 总线概述 SPI全称是串行外设接口(Serial Peripheral Interface),是由Motorola提出的一种全双工同步串行通信接口,通信波特率可以高达5Mbps,但具体速度大小取决于SPI硬件。SPI接口具有全双工操作,操作简单,数据传输速率较高的优点,但也存在没有指定的流控制,没有应答机制确认是否接收到数据的缺点。 SPI 总线的构成及信号类型 SPI总线只需四条线(如图1所示)就可以完成MCU与各种外围器件的通讯: 1)MOSI – Master数据输出,Slave数据输入 2)MISO – Master数据输入,Slave数据输出 3)SCK – 时钟信号,由Master产生
[单片机]
浅谈<font color='red'>SPI</font>总线
DSP+FLASH引导装载系统的设计与实现
摘要:介绍了利用DSP编程实现对FLASH的读写操作,设计并实现子一个引志装载系统的模型,给出了一个简单的测试用的实例。整个方案有较大的灵活性和实用性。 关键词:数字信号处理器 FLASH存储器 引导装载 在一些脱机运行的DSP系统中,用户代码需要在加电后自动装载运行。DSP系统的引导装载(Bootload)是指在系统加电时,DSP将一段存储在外部的非易失性存储器的代码移植到内部的高速存储器单元中去执行。这样既利用了外部的存储单元扩展DSP本身有限的ROM资源,又充分发挥了DSP内部资源的效能。尽管用户代码在一段时间相对是固定的,但是如果直接将其掩膜到内部ROM中去的话,一方面受容量以及价格的限制,另一方面则在系统代码级上显得
[嵌入式]
uClinux下Nor Flash的JFFS2文件系统构建
摘要:目前的嵌入式系统多使用FLASH作为主存,因此,如何有效管理FLASH上的数据非常重要。文章以SST39VF160芯片为例,讨论了在Nor Flash上建立uClinux的JFFS2文件系统的一般步骤,从而为FLASH上的数据管理提供了理想的选择方式。 关键词:uClinux;Nor Flash;MTD;JFFS2;文件系统 嵌入式系统正随着Internet的发展而在各个领域得到广泛的应用,作为嵌入式应用的核心,嵌入式Linux以其自由软件特性正日益被人们看好。Linux具有内核小、效率高、源代码开放等优点,还内涵了完整的TCP/IP网络协议,因此非常适于嵌入式系统的应用。而作为专门运行于没有MMU的微处理器的嵌入式操作
[应用]
面向三网融合的RIA新媒体技术及平台架构
一、概述   “理解未来电视的关键,是不再把电视当电视看。从比特的角度来思考电视才能给它带来最大收益。”在电信、广播电视、计算机“三网融合”的趋势下,近年来,以创新信息传播方式为核心业务的新媒体领域开始了积极的探索,电视与电信行业互相渗透同时催生了“以用户为中心融合业务”的市场需求,以视频业务为代表的新媒体业务、融合终端和高价值客户的需求推动,大大加快了网络和业务融合的进程,为用户提供了多种获取信息的渠道和选择的范围,满足了人们多样化、专业化和个性化的需求。   近年来的技术发展趋势表明,所谓三网融合,不是目前三大独立网络的简单延伸和叠加,而是“表现为技术上趋向一致,网络层上实现互联互通,业务层上互相渗透和交叉”。基于互联网所
[家用电子]
面向三网融合的RIA新媒体技术及平台架构
单片机 MSP430 G2553 HC595 数码管 SPI 通信
模拟SPI接法是任意的: //HC595 //VCC-VCC GND-GND RCK-P21 SCK-P22 DIO-P20 硬件SPI,调节成3线SPI模式 8bit就可以通信: P14 P12 分别是SPI时钟线和主机输出线。 //HC595 //VCC-VCC GND-GND RCK-P21锁存信号,传输一次完成后给595锁存信号 SCK-P14 SPI时钟线2553拉起 DIO-P12 SPI输出给595
[单片机]
单片机 MSP430 G2553 HC595 数码管 <font color='red'>SPI</font> 通信
用C语言编程操作SPMC75内部Flash的方法
1 引言   支持C语言几乎是所有微控制器程序设计的一项基本要求,当然SPMC75系列单片机也不例外。μ'nSPTM 指令结构的设计就着重考虑对C语言的支持,GCC就是一种针对μ'nSPTM 操作平台的ANSI-C编译器。但是在应用中对于程序的设计,特别是C和ASM混合使用的时候有些地方是需要注意的,在C中如何嵌入ASM也是一个不可回避的问题。 2 SPMC75单片机FLASH硬件资源分析   SPMC75系列微控制器Flash分为两区:信息区和通用区,在同一时间只能访问其中的一区。信息区包含64个字,寻址空间为0x8000 ~ 0x803F。地址0x8000为系统选项寄存器P_System_Option。其他地址空间可由用户自
[单片机]
用C语言编程操作SPMC75内部<font color='red'>Flash</font>的方法
大陆集团的3D Flash激光雷达有何优势?
随着技术的不断发展,汽车行业正在迎来一场革命,其中之一就是先进的驾驶辅助系统(ADAS)。这些系统可以使驾驶更加安全,并为实现自动驾驶功能奠定基础。 在这一技术革命的前沿,激光雷达成为了不可或缺的一环。而在这其中,大陆集团的3D Flash激光雷达引人瞩目。 Part 1 激光雷达的重要性 激光雷达是车辆周围环境感知的关键组件之一。通过发射激光束并测量其反射,激光雷达可以创建车辆周围环境的精确三维地图。这使得车辆能够及时识别障碍物、车辆、行人等,并做出相应的反应。因此,激光雷达在提高驾驶安全性和实现自动驾驶功能方面发挥着至关重要的作用。 大陆集团的3D闪光激光雷达专为车辆内部使用而设计,旨在用于ADAS和未来的自动驾驶功
[嵌入式]
大陆集团的3D <font color='red'>Flash</font>激光雷达有何优势?
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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