英飞凌
直播中

李鸿洋

10年用户 932经验值
擅长:可编程逻辑
私信 关注

QSPI TC399只有spi模式1可以工作,为什么?

在 TC399 电路板上,只有 spi 模式 1 能正常工作,在模式 0 和 2 中中断根本不会发生。 仅通过配置这两个参数来定义模式:

clockPolarity = SpiIf_ClockPolarity_idleLow/SpiIf_ClockPolarity_idleHigh;
shiftClock = SpiIf_ShiftClock_shiftTransmitDataOnLeadingEdge/SpiIf_ShiftClock_shiftTransmitDataOnTrailingEdge;
还是有其他需要调整的地方?


在 SPI_CPU_1_KIT_TC397_TFT 示例中,QSPI2 模块是主站,QSPI3 模块是从站,这是一个传递函数:



void transferData(void)
{
while(IfxQspi_SpiSlave_getStatus( g_qspi.spiSlave) == SpiIf_Status_busy ||
IfxQspi_SpiMaster_getStatus( g_qspi.spiMasterChannel) == SpiIf_Status_busy)
{ /* Wait until the previous communication has finished, if any */
      }
     /* 指示 SPI 从站接收长度已定义的数据流 */
IfxQspi_SpiSlave_exchange( g_qspi.spiSlave、 NULL_PTR, g_qspi.spiBuffers.spiSlaveRxBuffer[0]、 spi_buffer_size);
    /* 通过 SPI Master 发送数据流 */
IfxQspi_SpiMaster_exchange( g_qspi.spiMasterChannel、  g_qspi.spiBuffers.spiMasterTxBuffer[0]、 null_ptr,spi_buffer_size);
verifyData();
}

        

回帖(1)

孙成红

2024-7-24 14:16:06
TC399 是一款微控制器,它支持 QSPI(四线串行外围设备接口)通信。在 QSPI 通信中,有四种不同的工作模式,分别是模式 0、模式 1、模式 2 和模式 3。每种模式的时钟极性和数据传输方式都有所不同。根据您的描述,TC399 电路板上只有 SPI 模式 1 能正常工作,而在模式 0 和模式 2 中中断根本不会发生。这可能是由以下几个原因导致的:

1. **硬件连接问题**:首先需要检查硬件连接是否正确。确保 SPI 信号线(如 SCK、MOSI、MISO 和 CS)都已正确连接,并且没有受到干扰。

2. **时钟极性和数据传输方式配置**:在 SPI 通信中,时钟极性和数据传输方式是关键参数。您提到已经通过配置 `clockPolarity` 和 `shiftClock` 参数来定义模式。请确保这些参数在模式 0 和模式 2 中的配置是正确的。例如:

   - 模式 0:`clockPolarity = SpiIf_ClockPolarity_idleLow`,`shiftClock = SpiIf_ShiftClock_shiftTransmitDataOnLeadingEdge`
   - 模式 1:`clockPolarity = SpiIf_ClockPolarity_idleLow`,`shiftClock = SpiIf_ShiftClock_shiftTransmitDataOnTrailingEdge`
   - 模式 2:`clockPolarity = SpiIf_ClockPolarity_idleHigh`,`shiftClock = SpiIf_ShiftClock_shiftTransmitDataOnTrailingEdge`
   - 模式 3:`clockPolarity = SpiIf_ClockPolarity_idleHigh`,`shiftClock = SpiIf_ShiftClock_shiftTransmitDataOnLeadingEdge`

3. **中断配置**:在 SPI 通信中,中断是一个重要的机制,用于处理数据传输完成或其他事件。请检查中断是否已正确配置,包括中断向量、中断优先级等。同时,确保在中断服务程序中正确处理了中断事件。

4. **软件驱动问题**:可能是 TC399 的 SPI 驱动程序存在问题,导致在模式 0 和模式 2 中无法正常工作。您可以尝试更新驱动程序或查找相关的技术支持。

5. **寄存器配置**:在 SPI 通信中,寄存器配置是一个关键步骤。请确保在模式 0 和模式 2 中的寄存器配置是正确的。例如,确保 SCK 频率、数据宽度等参数都已正确设置。

6. **调试和测试**:在解决问题时,可以使用逻辑分析仪或示波器来观察 SPI 信号,以便更好地了解通信过程中的问题。同时,可以尝试使用不同的 SPI 设备或测试代码来排除硬件故障的可能性。

总之,要解决 TC399 电路板上只有 SPI 模式 1 能正常工作的问题,需要从硬件连接、参数配置、中断配置、软件驱动和寄存器配置等多个方面进行排查和调整。希望这些建议能帮助您找到问题的原因并解决它。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分