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

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 编辑:muyan 引用地址:http://news.eeworld.com.cn/qrs/ic468410.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

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

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

滤芯防伪技术,可以分布式读取8处防伪标签
净化的实际效果。但是实际使用却存在用户长时间不更换滤芯,或者换成其它品牌滤芯的情况。滤芯属于消耗品,大部分厂家也主要依靠滤芯的销售来取得利润。那么为了保证产品的实际使用效果,同时如何保证自己品牌的产品只能够适配自己的滤芯呢?这里就涉及到滤芯的防伪技术。针对此类应用,ZLG推出多通道滤芯防伪技术解决方案,支持多达8个天线,可以分布式读取8处防伪标签。图1.1 ZLG 8通道滤芯防伪评估套件ZLG多通道滤芯防伪技术解决方案采用Ametal模块化软件设计思想,同时结合ZLG在NFC行业中多年的射频开发设计经验,能够帮忙用户快速开发出稳定可靠的滤芯防伪标签产品。同时也可以针对用户具体的产品结构需求,提供定制化的服务。1.1如何根据滤芯布置选择
发表于 2018-03-31
周立功教授心血新力作《面向AMetal框架与接口的编程》
,因此无论你选用的是 ARM 还是 DSP,通过“按需定制”的外设驱动软件和相关组件,以高度复用的软件设计原则和只针对接口编程的思想为前提,则应用软件均可实现“一次编程、终生使用和跨平台”。基于此,进一步扩大了 AWorks 使用范围,又发展出了代码更小的 AMetal,AWorks 能给你带来的最大价值就是不需要重新发明轮子。5、丛书简介《面向AMetal框架与接口的编程(上)》是《嵌入式软件工程方法与实践丛书》中的第一套第二本书,丛书共含四套:第一套《程序设计与数据结构》《面向 AMetal 框架与接口的编程》(上)《面向对象的分析与设计》第二套《面向 AWorks 框架与接口的编程》(适用于各种 MCU)《面向对象的分析与设计
发表于 2017-08-21
周立功教授心血新力作《面向AMetal框架与接口的编程》
周立功教授心血新力作《面向AMetal框架与接口的编程(上)
的是 ARM 还是 DSP,通过“按需定制”的外设驱动软件和相关组件,以高度复用的软件设计原则和只针对接口编程的思想为前提,则应用软件均可实现“一次编程、终生使用和跨平台”。基于此,进一步扩大了 AWorks 使用范围,又发展出了代码更小的 AMetal,AWorks 能给你带来的最大价值就是不需要重新发明轮子。5、丛书简介《面向AMetal框架与接口的编程(上)》是《嵌入式软件工程方法与实践丛书》中的第一套第二本书,丛书共含四套:第一套《程序设计与数据结构》《面向 AMetal 框架与接口的编程》(上)《面向对象的分析与设计》第二套《面向 AWorks 框架与接口的编程》(适用于各种 MCU)《面向对象的分析与设计》第三套《面向
发表于 2017-08-21
可支持快速二次开发的zigbee核心板
户基于AMetal裸机软件开发平台,可快速将创意和想法转化为产品,大幅简化无线产品复杂的开发过程,使您的产品以更低的成本快速投入市场,由于其极简的开发过程,在目前产品快速更新的时代具有独特的优势。内嵌现成稳定的zigbee无线协议 由于无线协议的复杂性,往往用户自行开发会问题频现,致远结合多年的市场经验和该行业用户的实际需求,将用户80%的实际应用需求,90%的协议研发耗时,提炼成一套实用型组网透传协议Fastzigbee,内嵌于zigbee无线核心模块的射频控制器内,用户无需学习zigbee无线协议的任何知识。只要懂C,你就是无线专家AW系列zigbee核心板提供多种具有差异化的型号,并且所有型号均支持基于AMetal平台进行快速二次开发,用户
发表于 2017-05-17
可支持快速二次开发的zigbee核心板
STM32F4 SPI2初始化及收发数据【使用库函数】
我的STM32F4 Discovery上边有一个加速度传感器LIS302DL。在演示工程中,ST的工程师使用这个传感器做了个很令人羡慕的东西:解算开发板的姿态。当开发板倾斜时候,处于最上边的LED点亮,其他LED不亮。同时,用MicroUSB数据线将开发板连接电脑时,开发板就会虚拟成一个鼠标。倾斜开发板时,鼠标指针会向倾斜的方向移动。归根结底,就是牛B的ST工程师用加速度传感器完成了姿态解算。在开发板上,加速度传感器使用了SPI方式用STM32F4芯片进行通信。STM32F4的SPI1 作为主机,与LIS302Dl进行通信,读取或者写入数据。由于我没有使用过STM32的SPI口,因此在板子的空余资源中找到了SPI2接口来做实验
发表于 2019-10-19
stm32寄存器之spi2读写sd卡
看完sd卡读写,我也忍不住自己试一试使用spi1的时候,程序运行成功,但是当我尝试用spi2 的时候,一次一次的fail,现在总结发现本身错在这几个地方,其中也有一些地方是大家的普遍错误:1,自己尝试硬件的时候,一定要把硬件先连接好,这个是基础保障,不能急  2,spi1 的时钟是接在APB2上,是72MHZ,而spi2的时钟是接在APB1上的,是36MHZ    所以从SPI1转移到SPI2时一定要注意分频的问题 3,在学习板上使用spi接口的时候,一定要禁用掉使用这个接口的其余模块,我自己的学习板上就是,nrf2401与vs1003都用了SPI2接口,我的是要禁用掉vs
发表于 2019-10-18
小广播
何立民专栏 单片机及嵌入式宝典

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

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