硬汉嵌入式论坛

 找回密码
 立即注册
查看: 634|回复: 0
收起左侧

[NUCLEO-H743ZI] [已解决]QSPI发送中,Address不能为0x00/0x01以外的数值?

[复制链接]

1

主题

4

回帖

7

积分

新手上路

积分
7
发表于 2022-6-22 20:37:03 | 显示全部楼层 |阅读模式
本帖最后由 nickfox 于 2022-6-22 23:10 编辑

我这里有一个这样的函数.
平台是Y版STM32H743ZI

[C] 纯文本查看 复制代码
        QSPI_CommandTypeDef s_command;
        uint8_t pData;
        
        s_command.InstructionMode   = QSPI_INSTRUCTION_1_LINE;
        s_command.Instruction       = 0x0f; // 不管什么命令都可以
        s_command.AddressSize       = QSPI_ADDRESS_8_BITS;
        s_command.DataMode          = QSPI_DATA_1_LINE;
        s_command.AddressMode       = QSPI_ADDRESS_1_LINE;
        s_command.Address           = 0xC0; // 只要地址不是0x00 or 0x01,就会发生TEF错误.
        s_command.AlternateByteMode = QSPI_ALTERNATE_BYTES_1_LINE;
        s_command.DummyCycles       = 0;
        s_command.NbData            = 1;
        s_command.DdrMode           = QSPI_DDR_MODE_DISABLE;
        s_command.DdrHoldHalfCycle  = QSPI_DDR_HHC_ANALOG_DELAY;
        s_command.SIOOMode          = QSPI_SIOO_INST_EVERY_CMD;

        if (HAL_QSPI_Command(&hqspi, &s_command, HAL_QPSI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
        {
                while(1)
                {                
                }
        }

        if (HAL_QSPI_Receive(&hqspi, &pData, HAL_QPSI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
        {                
                while(1)
                {                
                }
        }
        return pData;

微信截图_20220622203528.png 微信截图_20220622203601.png


考虑设计的时序
微信截图_20220622203925.png

如果Address是0x00,0x01就可以正常发送,否则连CLK都没跳变.求助有没有什么解决思路.
与AlternateByteMode无关,尝试过设置和不设置,单步跟踪写入AR寄存器后TEF就置位了,也检查了Flash大小,设置到了最大大小,而这个是SPI NAND,总量4Gb + ECC(4088Mb).

解决了

换2Gb片子,不知道为什么
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-26 12:44 , Processed in 0.186049 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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