stm32F429 接W5500 使用SPI的问题求助
[复制链接]
使用stm32f429 的SPI5接W5500,调用了SPI5的DMA通道
设置为服务器,PC为客户端。
程序使用的是官方下载的驱动,修改了一下驱动,支持DMA。
配置上,SPI的配置都是cubemx的默认配置,4分频(22.5M),所有SPI引脚无上下拉,速度等级都是最快。DMA是正常模式(非循环模式)。
服务器能够被客户端连接上,收发几十个字节的数据没太观察到有问题,能读写寄存器等。
PC按照协议,发送一个文件给服务器存储,发送一帧数据,服务器返回一帧ACK,逐条发送。在这个过程中,出现了问题,经过示波器抓取波形,如下所示
红色是MOSI,黄色是MISO,绿色是CLK,蓝色是我的一个触发信号。
出现的问题是,在MISO的长的电平区域,是MCU在读取W5500的缓存数据,MISO应该输出,但是这个时候,并没有输出,而且该电平也不是低电平,是一个中间电平,而MOSI也是中间电平,拉不低。
尝试过在软件中配置引脚为上拉和下拉,也是没有用,现象一样。
检查程序中,也没有别的地方对SPI5的这几个引脚有配置。而且我使用TCP调试工具下发,随机的选择了一帧数据,依旧是在第59帧的时候出现这个现象。但是并不会全部都会是这一帧。
跳线,使用SPI3的引脚,跳线到该W5500上,并没有出现该现象。
手里几个板子都是同一个现象,请问F429的SPI5是会有什么问题吗?
|