如何提高W5100S的传输速度(STM32F407+W5100S SPI CLIENT) _stm32f4 w5100s

a)提升SOCKET的发送和接收缓冲区,实测采用8KB的缓冲和4KB的缓冲区,速度相差4倍左右,所以,将缓冲区加大,是提高W5100S传输速度的关键。这里需要提醒一个坑,作者前期也是踩到坑中而不自知。

官方驱动给的默认缓冲区分配使用的是 :

sysinit(0x55,0x55); ,即默认是2KB的发送缓冲和接收缓冲。

作者为了提升发送和接收缓冲区,想当然的使用了:

sysinit(0xff,0xff); 即每个SOCKET分配8KB的缓存空间

速度相对于2KB的缓存提升太多,达到0.66MB/S,即5.28Mb/s。但是收到的数据全是乱码,作者刚开始以为是SPI时钟太高导致的干扰,将故障源定位在SPI,最终一无所获,通过逻辑分析仪发现SPI传输的数据没有问题。

最终在W5100S的datasheet中找到答案,是4个独立的SOCKET共享8KB的发送或接收缓存,而不是每个SOCKET可以配置到8KB,如果将每个socket都分配8KB的缓冲区,就会出现乱码的情况。所以很多人接触一些芯片的时候总喜欢直接上马调试,其实仔细翻一下datasheet也是很重要的,有时候可以避坑,节省很多时间。

最终作者采用:

sysinit(0x0c,0x0c);

即将SOCKET1的发送和接收缓冲区设置为8KB,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值