W801的SDK无法成功驱动W25Q128的解决方法

本文档介绍了在使用W801的SDK时遇到驱动W25Q128 Flash失败的问题,详细阐述了问题的概述,包括驱动GD25Q128成功但驱动W25Q128时出现的ID读取错误。为解决此问题,提出了对wm_fls.c文件中的tls_spifls_read_id函数进行修改的方法,并说明了修改后的成功结果。
摘要由CSDN通过智能技术生成

一.问题概述

关于使用SPI总线驱动外置的25qxx系列Flash。使用SDK中写好的wm_fls_gd25qxx.c驱动只能驱动GD25Q128,而驱动常用的华邦(Winbond)w25q128时会出现无法成功读取Flash ID, 读到的是0x0或者0xfffffff 导致驱动失败。
在这里插入图片描述

二.修改方法

对wm_fls.c文件下的tls_spifls_read_id函数做如下修改:

static int tls_spifls_read_id(u32 * id)
{
    u32 cmd;
    int err;

    cmd = FLS_CMD_READ_DEV_ID;
    *id = 0;
	//将这个发送命令的字节数改为1
    err = tls_spi_read_with_cmd((const u8 *) &cmd, 1, (u8 *) id, 3);

    if (err != TLS_SPI_STATUS_OK)
    {
        TLS_DBGPRT_ERR("flash read ID fail(%d)!\n", err);
        return TLS_FLS_STATUS_EIO;
    }

    TLS_DBGPRT_FLASH_INFO("flash ID - 0x%x.\n", *id);

    return TLS_FLS_STATUS_OK;
}

在这里插入图片描述

三.修改后结果

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值