[技术相关]【SWDM-QFP100-34SVEA3测评】+SFC外设学习_serial flash controller

78 阅读2分钟

2、SFC特性
⚫ 支持 4 线快速读操作
⚫ Dummy clock 个数可配置
⚫ 读命令可配置
⚫ 读写操作仅支持 WORD
⚫ FLASH 读
◼ 标准模式
◼ 双线 IO 模式
◼ 四线 IO 模式
⚫ FLASH 写
◼ 标准模式
◼ 四线模式

3、硬件接口

用到的6个IO口依次是PD3~PD8;

SFC与外部SPI FLASH连接方式如下:



板载的SPI Flash为W25Q128JVSIQ。

4、程序配置

<font size="2">typedef struct {
        uint8_t ClkDiv;                                //SPI_SCLK是系统时钟的几分频,取值:SFC_CLKDIV_1、SFC_CLKDIV_2、SFC_CLKDIV_4、SFC_CLKDIV_8
        uint8_t Cmd_Read;                        //读取SPI Flash用的指令码
        uint8_t Width_Read;                        //读取SPI Flash时数据线位数,取值SFC_RDWIDTH_1、SFC_RDWIDTH_2、SFC_RDWIDTH_4
        uint8_t Cmd_PageProgram;        //页编程SPI Flash用的指令码
        uint8_t Width_PageProgram;        //页编程SPI Flash时数据线位数,取值SFC_PPWIDTH_1、SFC_PPWIDTH_4
} SFC_InitStructure;</font>

主要是上面这个结构体,用于初始化SFC外设,Width_Read、Width_PageProgram主要配置使用几线接口的,这里我们都使用四线,

Cmd_Read、Cmd_PageProgram主要是与连接的SPI FLASH有关,要从相关的手册中找到读命令页编程命令:


可以看出Cmd_Read是0xEB,Cmd_PageProgram是0x32。

完整配置代码如下:

void SFC_Config(void)
{
        SFC_InitStructure SFC_initStruct;
        
        /* SFC使用专用的FSPI(Flash SPI)接口连接SPI Flash */
        PORT_Init(PORTD, PIN5, PORTD_PIN5_FSPI_SCLK,  0);
        PORT_Init(PORTD, PIN6, PORTD_PIN6_FSPI_SSEL,  0);
        PORT_Init(PORTD, PIN8, PORTD_PIN8_FSPI_MOSI,  1);
        PORT_Init(PORTD, PIN7, PORTD_PIN7_FSPI_MISO,  1);
        PORT_Init(PORTD, PIN3, PORTD_PIN3_FSPI_DATA2, 1);
        PORT_Init(PORTD, PIN4, PORTD_PIN4_FSPI_DATA3, 1);

                SFC_initStruct.ClkDiv = SFC_CLKDIV_4;
                SFC_initStruct.Cmd_Read = 0xEB;
                SFC_initStruct.Width_Read = SFC_RDWIDTH_4;
                SFC_initStruct.Cmd_PageProgram = 0x32;
                SFC_initStruct.Width_PageProgram = SFC_PPWIDTH_4;

        SFC_Init(&SFC_initStruct);
}

读写测试代码:

id = SFC_ReadJEDEC();
        
        printf("\r\nFlash JEDEC: %06X\r\n", id);
        
        printf("\r\nAfter Erase: \r\n");


**收集整理了一份2024年最新物联网嵌入式全套学习资料,初衷也很简单,就是希望能够帮助到想自学提升的朋友。**
![img](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/e839e92617044492947a88dbec14de47~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771856271&x-signature=dvywC5W%2FADtvlhVeYx45polAblg%3D)
![img](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/09545d9c41654a578c336555620a1242~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771856271&x-signature=hbwMI4vKx7AHzH3rWEIswoKOigw%3D)

**[如果你需要这些资料,可以戳这里获取](https://gitee.com/vip204888)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人**

**都欢迎加入我们的的圈子(技术交流学习资源职场吐槽大厂内推面试辅导),让我们一起学习成长!**