大家好、
我无法为28035确定 SPI。 我正在尝试使用主控模式0与闪存芯片通信、但是28035输出的信号对于模式0似乎不正确。 下面是我在输出0x90 (通道1是时钟、通道2是 MOSI)时看到的内容的图片。 对于模式0、我希望 在 上升时钟边沿对 MOSI 进行采样 、但在 下降时钟边沿对其进行采样。 因此、闪存芯片未正确接收0x90命令。
仅供参考、这个时序图是我在 为 主控模式0和输出0x90 (通道2为 MOSI)设置28035时所期望看到的。 我通过将28035置于模式1来获得此跟踪、但当然、闪存芯片不会返回正确的数据、因为它需要模式0。
以下是我的 SPI 初始化代码:
SysCtrlRegs.PCLKCR0.bit.SPIANCLK = 1;
/*禁用 SPI-A 中断*/
SpiaRegs.SPICTL.bit.SPIINTENA = SPI_INT_DISABLE;
/*在 SPI-A 引脚上启用内部上拉电阻器*/
GpioCtrlRegs.GPAPUD.bit.GPIO3=0;
GpioCtrlRegs.GPAPUD.bit.GPIO5=0;
GpioCtrlRegs.GPAPUD.bit.GPIO18=0;
// GpioCtrlRegs.GPAQSEL1.bit.GPIO3 = 3;
// GpioCtrlRegs.GPAQSEL1.bit.GPIO5=3;
GpioCtrlRegs.GPAQSEL2.bit.GPIO18 = 3;
/*配置引脚以提供 SPI-A 功能*/
GpioCtrlRegs.GPAMUX1.bit.GPIO3=2;
GpioCtrlRegs.GPAMUX1.bit.GPIO5=2;
GpioCtrlRegs.GPAMUX2.bit.GPIO18=1;
/* 使用模式0 */
SpiaRegs.SPICCR.bit.CLKPOLARITY = 0;
SpiaRegs.SPICTL.bit.CLK_PHASE = 0;
/*启用发送功能*/
SpiaRegs.SPICTL.bit.TALK = 1;
/*设置8位传输和主控模式*/
SpiaRegs.SPICCR.bit.SPICHAR = SPI_CHAR_8_Bits;
SpiaRegs.SPICTL.bit.MASTER_SLAVE = SPI_MASTER;
/*将 LSPCLK 用于 SPI-A 频率*/
SpiaRegs.SPIBRR = 0;
/*从复位中释放 SPI A */
SpiaRegs.SPICCR.bit.SPISWRESET = SPI_SW_RESET_RELEASE;
我广泛使用了 SPI、但完全停留在这个上。 如果有任何帮助,我会很感激!!!! 提前感谢!