我们公司计划用ESP32S3做AFE主控,目前选用的AFE有2个SPI接口(1主,1从),ESP32作为主机向AFE的SPI从机端口发送命令进行控制,AFE通过其SPI主机向ESP32响应数据。所以,目前用到了ESP32S3的2个SPI外设(SPI2(主),SPI3(从))。
目前测试,ESP32S3的SPI2作为主机可以正常发送控制指令,通过逻辑分析仪观察,AFE也能正确响应。但是,目前没有找到好的办法让ESP32S3的SPI3作为从机完整的接收AFE响应的所有数据。测试了直接在SPI2使用spi_device_transmit()发送之后立即调用SPI3的spi_slave_transmit(),接收到的数据会丢帧。也按照手册"传输事务间隔"测试了分别使用spi_slave_queue_trans(),spi_device_transmit(),spi_slave_get_trans_result().还是不能正确接收所有数据。
不知道大家有没有更好的方式处理这种场景?
谢谢!
附图是逻辑分析仪数据,其中0:SPI是主机,1:SPI是从机。主机发送一帧之后,从机连续响应多帧报文。每帧报文6字节,最多一次可以响应0x71帧。
ESP32S3从机模式下如何连续接受多帧数据?
ESP32S3从机模式下如何连续接受多帧数据?
- Attachments
-
- SPI.png (44.39 KiB) Viewed 1091 times
Who is online
Users browsing this forum: Baidu [Spider] and 35 guests