查看: 3791|回复: 1

[求助] LPC54608开发板SPIFI quad 使能模式有误?

[复制链接]

该用户从未签到

61

主题

233

帖子

7

高级会员

Rank: 4

积分
750
最后登录
2021-1-25
发表于 2018-3-16 09:47:20 | 显示全部楼层 |阅读模式
代码:SDK_2.2_LPC54608J512 - copy\boards\lpcxpresso54608\driver_examples\spifi\polling_transfer
硬件:OM13092
根据原理图和读取flash的ID,flash型号为MT25QL128
FlashManufacturerIdent is 20
FlashDeviceIdentType is ba
FlashDeviceIdentCap is 18
代码中有个enable_quad_mode函数。
void enable_quad_mode()
{
    /* Write enable */
    SPIFI_SetCommand(EXAMPLE_SPIFI, &command[WRITE_ENABLE]);

    /* Set write register command */
    SPIFI_SetCommand(EXAMPLE_SPIFI, &command[WRITE_REGISTER]);

    SPIFI_WriteData(EXAMPLE_SPIFI, 0x40);

    check_if_finish();
}

根据上述函数以及代码内容,进入quad模式应该是写状态寄存器,指令为0x01,写的数据是0x40
但是根据手册以及QE位是位于 NONVOLATILE CONFIGURATION REGISTER 这个寄存器的,而不是状态寄存器,那么指令应该为B1h而不是01h,写的数据也不是0x40,数据是0
WRITE REGISTER Operations
WRITE STATUS REGISTER 01h 1-0-1 2-0-2 4-0-4 0 0 0 0 1 6
WRITE NONVOLATILE CONFIGU
RATION REGISTER
B1h 1-0-1 2-0-2 4-0-4 0 0 0 0 2 6
WRITE VOLATILE CONFIGURA
TION REGISTER
81h 1-0-1 2-0-2 4-0-4 0 0 0 0 1 6
WRITE ENHANCED VOLATILE
CONFIGURATION REGISTER
61





我知道答案 目前已有1人回答

状态寄存器中无QE bit

状态寄存器中无QE bit

QEbit位于该寄存器

QEbit位于该寄存器
回复

使用道具 举报

该用户从未签到

61

主题

233

帖子

7

高级会员

Rank: 4

积分
750
最后登录
2021-1-25
 楼主| 发表于 2018-3-16 15:34:32 | 显示全部楼层
根据对比,该代码应该是对应MX25L12835FM2I-10G.这个flash。因为这个flash的quad 读写指令跟MT25QL128是一样的,都是6Bh和38h,
而且写状态寄存器的指令也是一样是01h,而且MX25L128的状态寄存器的bit6就是QE bit,所以代码里写0x40是对的。
但是,代码竟然在不对应的flash  上跑起来了,不理解

quad读写指令

quad读写指令

写status指令

写status指令

bit6 就是QE bit

bit6 就是QE bit
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-24 15:32 , Processed in 0.088451 second(s), 23 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表