mt2503 和 w5500 通讯调试

本文介绍了一种使用MT2503和W5500芯片组合实现固件在线升级(FOTA)的方法。在实现过程中遇到了接收数据包超过1024字节时数据丢失的问题,并找到了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主控:MT2503,文章管理以太网芯片:W5500

通讯方式:SPI

以太网协议:UDP

实现功能:MT2503的升级文件,通过w5500接收并保存在2503的文件中,待校验成功后启动升级。

遇到的问题:FOTA协议中,服务器下发的升级数据包,大多在1069字节以上,发现接收超过1024字节百分之百会出现只接受了9个字节左右的数据,其余全是0x00。首先在FOTA协议层查找有没有可能丢失数据,在spi_read函数中打印接收的原始数据,发现和协议层一样的现象。怀疑是w5500出了接收问题,询问供应商W5500在UDP模式下的MTU为1460字节(包括以太网协议帧,校验,数据等),觉得这方面不会出什么问题。然后查看MT2503 SDK中的spi函数,发现不论是发送和接收都有一个函数

spi_set_desired_size()会检查将要读写数据大小,通过宏SPI_INTERFACE_MAX_PKT_LENGTH_PER_TIMERS 0x400来控制大小,坑的是这个函数官方调用的时候不会对返回的错误进行检查。。。所以如果超过1024就只能分段接收了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值