您好、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