4898|4

7

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

QSPI读写flash及擦除 [复制链接]

本来是想测试一下低功耗,看到要割板子,就留后面再测试,先来跑一下外挂flash的功能。

1.确定硬件部分

1)我们先查看datasheet确定SPI0接口如下

     PB3SPI_SCK

     PB4SPI0_MISO

     PB5SPI0_MOSI

     PB6SPI0_IO2

     PB7SPI0_IO3

     PB1SPI0_CS

2)查找一下flash管脚图

 

3)搭一个flash小板,对应上面IO,电源,GND连到开发板。

 

 

2.添加软件部分

  1. 添加驱动部分Soft_Drivegd25qxx.cgd25qxx.h);
  2. 初始化SPI0 GPIO and parameter

spi_flash_init(); 

  1. 擦除flash

void spi_flash_sector_erase(uint32_t sector_addr);  

擦除一个sector  0x0000-0x0fff  

void spi_flash_block_erase(uint8_t block_addr);  

擦除一个block  0x000000-0x00ffff 

void spi_flash_bulk_erase(void);  

擦除整个chip

  1. 读写flash

/* write block of data to the flash using qspi */  

void qspi_flash_buffer_write(uint8_t *pbuffer, uint32_t write_addr, uint16_t num_byte_to_write); 

 /* read a block of data from the flash using qspi */  

void qspi_flash_buffer_read(uint8_t *pbuffer, uint32_t read_addr, uint16_t num_byte_to_read);

(5)下载程序,打印结果

 

3.关于不同flash,quad模式的设置

  1. void qspi_flash_quad_enable(void)  
  2. {  
  3.     /* enable the write access to the flash */  
  4.     spi_flash_write_enable();  
  5.     /* select the flash: chip select low */  
  6.     SPI_FLASH_CS_LOW();  
  7.     /* send "write status register" instruction */  
  8.     spi_flash_send_byte(WRSR);  
  9.  
  10.     spi_flash_send_byte(0x00);  
  11.     spi_flash_send_byte(0x20);  
  12.  
  13.     /* deselect the flash: chip select high */  
  14.     SPI_FLASH_CS_HIGH();  
  15.     /* wait the end of flash writing */  
  16.     spi_flash_wait_for_write_end();  

查阅GDdatasheet,可以看到QE的设置

  1.     spi_flash_send_byte(0x00);  
  2.     spi_flash_send_byte(0x20);  

查阅KHdatasheet,可以看到QE的设置

  1.     spi_flash_send_byte(0x40);  
  2.     spi_flash_send_byte(0x00);  
此帖出自GD32 MCU论坛

最新回复

能分享一下原历程吗   详情 回复 发表于 2022-6-9 10:33
点赞 关注
 

回复
举报

4005

帖子

0

TA的资源

版主

沙发
 

还差挺多的呢

 

此帖出自GD32 MCU论坛

点评

什么差挺多?  详情 回复 发表于 2022-3-3 21:46
 
 
 

回复

7

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
huo_hu 发表于 2022-3-3 11:47 还差挺多的呢  

什么差挺多?

此帖出自GD32 MCU论坛
 
 
 

回复

4005

帖子

0

TA的资源

版主

4
 

qspi不用dma会很吃力

此帖出自GD32 MCU论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

5
 

能分享一下原历程吗

此帖出自GD32 MCU论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
CES评最佳创新产品奖 35款产品亮相(2)

本帖最后由 jameswangsynnex 于 2015-3-3 20:00 编辑

Linux使用技巧集

10756

[MSP430 学习笔记] 晶体振荡器的负载电容

最近有童靴在问如何确定MSP430的晶体负载电容,一般来讲,大家都是在用一些经验值,对其原理也不是特别清楚。 有兴趣的同学可以看 ...

从零开始点亮LED灯

本帖最后由 微末凡尘 于 2014-7-27 01:03 编辑 ...

Fly-Buck 转换器 PCB 布局技巧

同步降压转换器已作为隔离式偏置电源在通信及工业市场得到认可。隔离式降压转换器或者通常所谓的 Fly-Buck 转换器,采用一个耦合 ...

【拓普微智能显示模块】四:串口交互以及曲线、绘图板、动画控件的应用

本帖最后由 数码小叶 于 2021-11-21 12:00 编辑 上一篇已经使用SGTools产生了一个简单的界面,所以对于SGTools来说,简单使用 ...

功率变换开关技术(修订版)电力电子的核心理论

电力电子技术在电力系统、新能源发电、电动汽车、电力牵引以及家用电器等众多领域快速发展,电力电子化已成为一种发展趋势,然而 ...

功率放大器在水下主动电场物体形状成像系统的应用

功率放大器在水下主动电场物体形状成像系统的应用

器件选型——TVS管选型一般要注意哪些参数?

642279642280 这是我找的一份TVS的规格书, 问题1: 想请教一下大家平时在进行TVS选型的时候比较关注哪些参数? ...

Mecha Lab 防生手臂中的手指运动用的是什么方案?

好久之前看到了这个手臂演示,属实是惊艳到了我,我们公司也想搞一个活动的手臂,有人知道它这个手指运动用的是什么方案吗? ...

关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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