T5的SPI必须要用DMA模式吗?

Wi-Fi 设备、Wi-Fi 低功耗设备、Wi-Fi BLE 双模设备、Ethernet设备、Ethernet+Wi-Fi设备等
Post Reply
easylife
Posts: 11

我跑的T5 3.11.2 SDK,测试SPI0的收发,MOSI和MISO短接,加了打印,打印出收到的SPI数据,如果开启spi_dma_flags,那么可以正常接收到数据;如果不开启spi_dma_flags,就收不到数据,用的这个API接口:tkl_spi_transfer(TUYA_SPI_NUM_0, send_buff, recv_buff, CNTSOF(send_buff));请帮我看下是什么问题

一个网友
Posts: 14
Location: ⭐星星⭐

Re: T5的SPI必须要用DMA模式吗?

您好,
spi不是必须要使用dma,但是在您的测试环境下需要使用dma处理,这里涉及到spi处理时序的情况
1、在主机/从机都在一个芯片上处理,非dma模式下,使用spi中断进行数据交互,两个中断优先级相同,可能会存在数据收发异常,导致发送完成或者接收完成的中断可能没有触发;
2、该场景下,如果使用dma的话,仅触发dma的接收/发送完成中断,数据交互是正常的
3、可以根据实际使用场景,使用模组+spi外设测试,原因是在通信过程中,从机必须提前准备好要发送的数据,否则在CS拉低后,主机开始传输时钟时,从机可能来不及准备数据,导致发送错误。T5做从机不太合适,数据可能不一定准备好;

努力写bug……

Post Reply