This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28P650SK:S25FL128L SPI NVM 未响应 — SCLK/MOSI/CS 处于活动状态、但 MISO 上没有数据

Guru**** 2952510 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1643431/tms320f28p650sk-s25fl128l-spi-nvm-not-responding-sclk-mosi-cs-active-but-no-data-on-miso

器件型号: TMS320F28P650SK

我在非 FIFO 轮询模式下使用 SPIA 将 S25FL128L SPI 闪存与 TI F28P650SK6PZPR 器件连接在一起。  

当前观察结果:

  • SCLK 正在正确切换
  • MOSI 正在正确传输数据
  • CS 切换正确
  • 在闪存 SO/MISO 引脚上未观察到响应
  • SPIRXBUF 始终读取 0x0000
  • SPISTS.INT_FLAG0x0040在传输后变为置位 ()、并在读取 RX 缓冲区后清零
  • SPI 模式配置为模式 0
  • RESET#和 WP#引脚保持高电平

我0x9F使用以下命令对 JEDEC ID 命令 () 进行了测试:  

GPIO_writePin (GPIO_PIN_SPIA_PTE、0);

SPI_transmitByte (SPIA_BASE、0x9F);

ID1 = SPI_transmitByte (SPIA_BASE、0x00);
ID2 = SPI_transmitByte (SPIA_BASE、0x00);
ID3 = SPI_transmitByte (SPIA_BASE、0x00);

GPIO_writePin (GPIO_PIN_SPIA_PTE、1);

SPI 传递函数:

SPI_pollingNonFIFOTransaction (base、8U、txData);

其他意见:

  • 示波器上显示了 SCLK 和 MOSI 波形
  • 在 FLASH SO 引脚上未观察到波形
  • CS 时序显示正确
  • SPI 波特率当前为 10MHz
  • SPIDAT 并 SPIRXBUF 保持为 0。

此外、在0x9F直接测试 JEDEC ID () 命令之前、我使用了以下 SPI 交换函数进行闪存通信、但没有收到有效数据。

SPI2_Status_TypeDef SPI2_Exchange1(uint8_t *pTransmitData,
                                   uint8_t *pReceiveData,
                                   uint16_t timeout)
{
    uint32_t tick = 0;
    uint16_t txData = (uint16_t)(*pTransmitData) << 8;
    uint16_t rxData = 0;
    uint16_t time_out = 0;

    uint32_t base = SPIA_BASE;

    while ((HWREGH(base + SPI_O_STS) & SPI_STS_INT_FLAG) != 0) {
        if (++time_out >= SPI_TIMEOUT_COUNT) {
            return SPI2_ERROR;
        }
    }

    SPI_writeDataNonBlocking(mySPI0_BASE, txData);

    tick = 0;

    time_out = 0;
    while ((HWREGH(base + SPI_O_STS) & SPI_STS_INT_FLAG) == 0) {
        if (++time_out >= SPI_TIMEOUT_COUNT) {
            return SPI2_ERROR;
        }
    }

    rxData = SPI_readDataNonBlocking(mySPI0_BASE);

    *pReceiveData = (uint8_t)(rxData & 0xFF);

    return SPI2_OK;
}

由于使用该函数没有收到有效的响应,我简化了测试并直接尝试使用命令读取 JEDEC ID 0x9F,但仍然没有在 MISO/so 行上观察到响应。

什么可能导致闪存器件即使时钟、MOSI 和 CS 处于活动状态、也无法驱动 MISO/SO 线路?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Antony、

    是外部闪存上的 HOLD#引脚、通过 10k 上拉电阻器连接到 VCC。

    是否最初为 SPI 配置了 SPI 引脚?

    您在示波器上提到了 SCLK 和 MOSI、是正确的吗?  请记住、 C2000 SPI 外设 针对 8 位字符长度从位[15:8]首先发送 MSB。

    此致、

    Aishwarya

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Aishwarya:  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Aishwarya:   

    感谢您的澄清。

    是的、SCLK 和 MOSI 显示在示波器上、并且传输的数据显示正确。

    我可以观察到正确的 8 个时钟脉冲并在示波器上校正 MOSI 数据 (0x9F)。

    关于保留:
    此闪存器件型号没有 HOLD#引脚。

    Reset 和 WP 未从外部连接、因此我已检查这些引脚并确认它们都连接至高电平。您可以建议哪些其他因素会导致此问题、或者我可以执行哪些其他检查来解决此问题吗?

    此致、
    安东尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Antony、

    Aishwarya 目前一周不在办公室。 请期待收到延迟的回复。

    此致、

    Delaney

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Delaney:

    感谢您的更新。

    这个问题目前非常紧迫、因为它会阻止新硬件上的 SPI 闪存通信启动。 如果可能、团队中的其他人是否可以同时帮助审核、或提供其他检查的建议?

    感谢您的支持。

    此致、
    安东尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Delaney 和 Aishwarya:

    我在 JEDEC ID (0x9F) 事务期间捕获了额外的 SPI 波形。

    观察结果:

    • CS#时序显示正确
    • SCLK 处于活动状态且稳定
    • MOSI 正确传输数据
    • 但是、MISO 保持平坦、未观察到有效的数字活动

    波形摘要:

    • SCLK + CS#

    • SCLK + MISO

    • SCLK + MOSI

    您能否请查看随附的波形、并告诉我您是否观察到 SPI 时序或协议行为方面的任何问题?

    此外、您能否建议进行任何其他检查或配置更改、以帮助解决闪存器件未驱动 SO/MISO 线路的原因?

    此致、
    安东尼·何塞

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    安东尼

    对延迟深表歉意。 请再给我一天时间答复。

    此致、

    Aishwarya

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Aishwarya ,

    请查看随附的文档、其中包含与 TI TMS320F28P650 MCU 与 S25FL128LAGMFI013 闪存器件之间的 SPI NOR 闪存无响应问题相关的详细分析和调试观察结果。

    本文档包括:

    • 硬件配置详细信息
    • SPI 配置和代码片段
    • 示波器波形观察结果
    • JEDEC ID 测试结果
    • 已执行调试步骤
    • 不同的 SPI 模式、比特率和环回验证结果

    我还附上了波形图像以供参考。

    请查看文档并告诉我是否需要任何其他信息、捕获或测试。

    此致、
    安东尼

    e2e.ti.com/.../NVM_5F00_NO_5F00_response.docx

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Antony、

    由于 Aishwarya 出差不在办公室、因此我将接管这一主题。 请允许我在 1-2 天内加快速度并回复。

    此致、

    Delaney

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Antony、

    我很抱歉耽误了很长时间。 您是否仍需要有关此问题的帮助?

    此致、

    Delaney