完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在 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个回答
|
|
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 能正常工作的问题,需要从硬件连接、参数配置、中断配置、软件驱动和寄存器配置等多个方面进行排查和调整。希望这些建议能帮助您找到问题的原因并解决它。 |
|
|
|
只有小组成员才能发言,加入小组>>
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
5473 浏览 2 评论
4077 浏览 9 评论
请问TLE5012B_E1000 启动后为什么位置不能正确获取
3594 浏览 9 评论
1206 浏览 8 评论
3497 浏览 7 评论
414浏览 2评论
246浏览 2评论
354浏览 2评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
5475浏览 2评论
如果是打开已有的dave工程,怎么查看这个工程选择的mcu型号?
418浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 12:20 , Processed in 0.686543 second(s), Total 83, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号