网站首页
IC库存
IC展台
电子资讯
技术资料
PDF文档
我的博客
IC72论坛
ic72 logo
资料首页最新产品 技术参数 电路图 设计应用 解决方案 代理商查询 IC替换 IC厂商 电子辞典
关键字: 技术文章 PDF资料 IC价格 电路图 代理商查询 IC替换 IC厂商 电子辞典

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所示,完成初始化后为设备的驱动函数提供实例化句柄。

1563498758364210.png

图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实例初始化函数为:

1563498783561538.png

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

am_is25xx_handle_t is25xx_handle = am_microport_flash_is25xx_inst_init(void);

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

1563498802428562.png

图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功能,将专注力投入到核心应用部分,让具有竞争力的产品更快走向市场!

热门搜索:TLP606 TLM626NS SUPER6OMNI B B3429D 8300SB2-LF PDU1215 BQ25895MRTWR PS361220 2839237 PS240810 PS-415-HG-OEM 02B0500JF PS480806 TLP808 B10-8000-PCB 2920078 PS-615-HG TLP606B UL603CB-6 01M2251SFC3 LED12-C2 PDU12IEC PS3612RA 01M1001JF TLP712
COPYRIGHT:(1998-2010) IC72 达普IC芯片交易网
客户服务:service@IC72.com 库存上载:IC72@IC72.com
(北京)联系方式: 在线QQ咨询:点击这里给我发消息 联系电话:010-82614113 传真:010-82614123
京ICP备06008810号-21 京公网安备 11010802032910 号 企业资质