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.

TMS320F28384S: SPI总线调试问题:DSP的SPI总线输出波形不标准,clock有宽有窄,而且采样边缘与数据边缘重合

Part Number: TMS320F28384S


采用syscfg工具配置生成如下SPI初始化代码,访问SPI串行flash,读取器件ID时,向flash发送0x90命令,用示波器测量波形如附图所示,发现DSP芯片产生的波形clock与MOSI线的边缘基本重合,造成无法正确读取器件ID,请问有哪些初始化配置可以优化波形,请指教,谢谢!

void mySPI0_init(){
SPI_disableModule(mySPI0_BASE);
SPI_setConfig(mySPI0_BASE, DEVICE_LSPCLK_FREQ, SPI_PROT_POL1PHA1,
SPI_MODE_MASTER, 500000, 8);
SPI_disableFIFO(mySPI0_BASE);
SPI_disableLoopback(mySPI0_BASE);
SPI_setEmulationMode(mySPI0_BASE, SPI_EMULATION_STOP_AFTER_TRANSMIT);
SPI_enableModule(mySPI0_BASE);
}

  • 您好,我们已收到您的问题并升级到英文论坛寻求帮助,如有答复将尽快回复您。谢谢!

  • 您好,

    SPI 支持四种不同的 SPICLK 方案。 您使用的是具有延迟的下降沿(CLKPOLARITY = 1、CLK_PHASE = 1)。 请问 SPI 串行闪存是期望使用什么时钟方案? 请查看 SPI 串行闪存数据表时钟方案,并与此处所示的时钟方案进行比较。 

  • 我采用的SPICLK 方案是正确的。我的理解是,不管哪种时钟方案,作为master一方,输出的时钟至少是稳定的(周期、频率),但实际测到的波形显示,时钟有时候很宽,有时候有很窄,不均匀,我觉得不正常。不知道我的理解对不对,请指教,谢谢!

  • 好的我们向工程师确认下。

  • 您好,

    我采用的SPICLK 方案是正确的。

    因为有许多客户在时钟方案上会弄错。 还请一定要将 SPI 闪存数据表中显示的时钟方案(时序图)与 F280039 SPI TRM 一章中提到的 SPI 时钟方案进行比较。 各种数据表中提到的 SPI 时钟方案模式(0/1/2/3)定义是不同的,所以可能会产生误导。 您是否方便发送下 SPI 闪存数据表,我们来帮您进一步确认下?

    我的理解是,不管哪种时钟方案,作为master一方,输出的时钟至少是稳定的(周期、频率),但实际测到的波形显示,时钟有时候很宽,有时候有很窄,不均匀,我觉得不正常。

    SPI 时钟的时钟频率和占空比不应改变。 很明显这里是不正常的。

    在 launchpad 或者您的板子上是否也有此问题? 能否进一步检查 Launchpad 中的波形以排除任何自定义电路板的问题?