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.

[参考译文] TMS570LC4357:配置为 SPI 功能时出现 SPI CS 问题

Guru**** 2471610 points
Other Parts Discussed in Thread: TMS570LC4357

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1009120/tms570lc4357-spi-cs-issue-when-configured-as-spi-functional

器件型号:TMS570LC4357

您好、Wang、

在 TMS570LC4357处理器的应用中、我们通过 SPI3将串行闪存"S25FL256S"与5MHz 的波特率相连。 在我们的系统中,时钟配置(以 MHz 为单位)为:OSC = 20、PLL1 = 180、GCLK = 180、HCLK = 90和 VCLK1 = 90。 SPI 用于4引脚模式、即 SPI3CLK、SPI3SIMO、SPI3MISO 和 SPI3CS_0、SPI3引脚配置寄存器、即(PC0-PC8)仅用于相应地配置这4个引脚。 在这里、SPI3处于主模式并且 CSHOLD 位保持为真。

当我们尝试与外部串行闪存进行通信时、通过将 SPI3CS_0配置为有效并将 CSNR 值保持为0xFE、在5MHz 的速率下、我们没有接收到配置的正确数据、并且每次读取到0xFF。 即使我们尝试通过配置不同的 CSNR 值(例如1、0xFF 和0xFD)来降低波特率、但仍然无法建立正确的通信。

但是、当我们尝试将 SPI3CS_0配置为 GIO、然后在读取/写入数据之前手动将芯片选择置为有效/置为失效(保持与第一段中所述的配置相同)、在这种情况下、我们能够正确地与该外部芯片建立通信。

因此、请您帮助我了解、无论何时我们将 ChipSelect 用作 SPI 功能、它到底会发生什么错误、以及我如何仅使用 SPI 作为功能而不是作为 GIO 建立通信。

此致、
Shivam

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

    您好、Shivam、

    您能否增加 芯片选择有源到发送启动延迟(C2TDELAY)?  如果从器 件不使用 SPI 使能信号、则主器件需要等待6~7 μ s VCLK 周期、然后再发送时钟以开始传输。  

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

    您好、Wang、感谢您的回答。

    我尝试将 SPIDELAY 寄存器中的 C2TDELAY 值配置为07h 和其他不同的可能值、但仍然是、我仅以0xFF 接收数据。 我正在使用数据格式3寄存器、并确保 SPIFMT3寄存器的 DIS_CS_TIMERS 字段设置为0。

    有关数据格式寄存器的其他信息:

    WDELAY=0、 PARPOL=0、 PARITYENA=0 、 WAITENA=0 、 SHIFTDIR =0、 HUPLEX_ENAx=0、极性 = 0、相位 = 0

    请您帮助我解决此问题。

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

     S25FL256S 的芯片选择是否为低电平有效? 如果 csdef=0xFF (默认值、无传输时 NCS=HIG)、则 CSNR=0xFE 在传输数据时将 PLL NCS 置为低电平。 请仔细检查 csdef=0xFF。 您能否探测 NCS 信号以查看是否被拉至低电平?