AMetal 平台快速实现 SPI Flash 功能
时间:2019-07-18 13:25来源:ZLG致远电子
摘要:SPINORFlash是一种片外扩展存储器,可用来存储图片、字库等大量数据,其种类繁多,应用广泛,用户每次使用时都需耗费大量时间阅读相关的手册。如何快速实现类似的相关功能呢?下文做详细介绍。
由于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所示,完成初始化后为设备的驱动函数提供实例化句柄。
2. am_is25xx_devinfo_t为IS25xx的设备信息,包括使用的SPI模式、SPI片选引脚、使用的SPI速率以及器件型号,用户按实际使用进行配置即可正常工作;
3. IS25初始化函数中am_spi_handle_t为主机MCU的SPI初始化,AMetal平台支持的MCU提供了标准化的SPI接口函数及初始化函数,实际使用时,通常只需根据实际情况配置SPI使用的引脚,提供SPI标准服务句柄。
IS25实例初始化函数为:
在硬件连接一致的情况下,可直接调用IS25xx实例初始化函数完成SPI Flash的初始化:
am_is25xx_handle_t is25xx_handle = am_microport_flash_is25xx_inst_init(void);
SPI Flash比较特殊,在写入数据之前必须确保相应的地址单元已经被擦除,因此除了读、写函数外,还有一个擦除函数。IS25功能接口函数如图2所示。
擦除就是将数据全部重置为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,说明擦除成功;
2. 写入数据
在写入数据前,必须确保写入地址已被擦除。即需要变为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,说明写入数据成功;
3. 读取数据
从指定的起始地址开始读取一段数据的函数原型为:
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平台提供了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的设备实例,为整个外设驱动提供必要的内存空间,用户只需要使用设备结构体类型定义一个变量即可;2. am_is25xx_devinfo_t为IS25xx的设备信息,包括使用的SPI模式、SPI片选引脚、使用的SPI速率以及器件型号,用户按实际使用进行配置即可正常工作;
3. IS25初始化函数中am_spi_handle_t为主机MCU的SPI初始化,AMetal平台支持的MCU提供了标准化的SPI接口函数及初始化函数,实际使用时,通常只需根据实际情况配置SPI使用的引脚,提供SPI标准服务句柄。
IS25实例初始化函数为:
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,说明擦除成功;
2. 写入数据
在写入数据前,必须确保写入地址已被擦除。即需要变为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,说明写入数据成功;
3. 读取数据
从指定的起始地址开始读取一段数据的函数原型为:
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功能,将专注力投入到核心应用部分,让具有竞争力的产品更快走向市场!
免责声明:本文若是转载新闻稿,转载此文目的是在于传递更多的信息,版权归原作者所有。文章所用文字、图片、视频等素材如涉及作品版权问题,请联系本网编辑予以删除。
我要投稿
近期活动
- 仪器使用操作视频教程时间:2023年12月31日 - 2024年01月31日[立即参与]
- 安森美汽车&能源基础设施白皮书下载时间:2023年04月03日 - 2023年11月30日[立即参与]
- 2023年安森美(onsemi)在线答题活动时间:2023年08月01日 - 2023年08月31日[查看回顾]
- 【在线答题活动】PI 智能家居热门产品,带您领略科技智慧家庭时间:2023年06月15日 - 2023年07月15日[查看回顾]
- 2023年安森美(onsemi)在线答题活动时间:2023年06月01日 - 2023年06月30日[查看回顾]
分类排行榜
- 汽车电子电源行业可靠性要求,你了解多少?
- 内置可编程模拟功能的新型 Renesas Synergy™ 低功耗 S1JA 微控制器
- Vishay 推出高集成度且符合 IrDA® 标准的红外收发器模块
- ROHM 发布全新车载升降压电源芯片组
- 艾迈斯半导体推出行业超薄的接近/颜色传感器模块,助力实现无边框智能手机设计
- 艾迈斯半导体与 Qualcomm Technologies 集中工程优势开发适用于手机 3D 应用的主动式立体视觉解决方案
- 维谛技术(Vertiv)同时亮相南北两大高端峰会,精彩亮点不容错过
- 缤特力推出全新商务系列耳机 助力解决开放式办公的噪音难题
- CISSOID 和泰科天润(GPT)达成战略合作协议,携手推动碳化硅功率器件的广泛应用
- 瑞萨电子推出 R-Car E3 SoC,为汽车大显示屏仪表盘带来高端3D 图形处理性能
编辑推荐
小型化和稳定性如何兼得?ROHM 推出超小型高输出线性 LED 驱动器 IC,为插座型 LED 驱动 IC 装上一颗强有力的 “心脏”
众所周知,LED的驱动IC担负着在输入电压不稳定的情况下,为LED提供恒定的电流,并控制恒定(可调)亮度的作用。无论是室内照明,还是车载应用,都肩负着极为重要的使命。
- 关于反激电源效率的一个疑问
时间:2022-07-12 浏览量:9676
- 面对热拔插阐述的瞬间大电流怎么解决
时间:2022-07-11 浏览量:8433
- PFC电路对N线进行电压采样的目的是什么
时间:2022-07-08 浏览量:9049
- RCD中的C对反激稳定性有何影响
时间:2022-07-07 浏览量:6846
- 36W单反激 传导7~10M 热机5分钟后超标 不知道哪里出了问题
时间:2022-07-07 浏览量:5584
- PFC电感计算
时间:2022-07-06 浏览量:3807
- 多相同步BUCK
时间:2010-10-03 浏览量:37797
- 大家来讨论 系列之二:开机浪涌电流究竟多大?
时间:2016-01-12 浏览量:43081
- 目前世界超NB的65W适配器
时间:2016-09-28 浏览量:59954
- 精讲双管正激电源
时间:2016-11-25 浏览量:127236
- 利用ANSYS Maxwell深入探究软磁体之----电感变压器
时间:2016-09-20 浏览量:107361
- 【文原创】认真的写了一篇基于SG3525的推挽,附有详细..
时间:2015-08-27 浏览量:99857