0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何利用HAL库去驱动W5500芯片呢

工程师邓生 来源:嵌入式技术开发 作者:Mr张工 2022-09-16 18:04 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

W5500 芯片是一款集成全硬件 TCP/IP 协议栈的嵌入式以太网控制器,为单片机提供了更加简单、快速、稳定、安全的以太网接入方案。采用标准4线SPI接口,理论速率上可以达到 80MHz。

硬件设计

原理图如下,需要注意的是R12~R17几个电阻是模式选择,根据实际需求选择焊接哪些。

58ffed06-3571-11ed-ba43-dac502259ad0.png

芯片采样SPI接口与单片机连接,再加上INT和RST引脚,共占用6个IO,其中INT引脚可以不用,RST一般需要连接。

网口可以使用带网络变压器的接口,或者网络变压器和接口独立的,都可以,这里使用的HR911105A是带网络变压器的。、

软件设计

W5500官方提供了一个完整的驱动库,可以使用户不必太关心底层寄存器的配置,使用起来非常方便。

接下来,使用STM32CubeMx软件初始化配置,主要是SPI配置如下:

594fbde0-3571-11ed-ba43-dac502259ad0.png

配置完成后,生成代码。然后将官方的驱动库添加到工程中。

下载完成后,可以看到,驱动库中包含了W5100、W5200等多个芯片的驱动:

596fccfc-3571-11ed-ba43-dac502259ad0.png

我们只需将W5500文件夹下的.c文件以及socket.c和wizchip_conf.c文件添加到工程中即可。如下:

598ef370-3571-11ed-ba43-dac502259ad0.png

打开wizchip_conf.c文件,可以看到,里面定义了一些SPI片选及读写的函数,但内容都是空的,这些是需要我们自己实现的。我们直接添加如下程序到文件中,实现芯片的复位和参数初始化功能。


pYYBAGMkSwWAH191AAEBFxs1WNg372.jpgpYYBAGMkSw-AS9zgAAFwKgEA0e8246.jpg

其中,W5500_ChipInit初始化函数中注册的SPI相关函数定义如下:

pYYBAGMkSxyAbDkYAADTME3RNII985.jpgpYYBAGMkSzOAVMR6AAAeWD6ULqM888.jpg

添加完成后,直接在主函数中调用W5500_ChipInit();即可完成初始化。初始化完成后,可以实现TCP、UDP等的通讯,以TCP客户端程序为例,程序如下。程序比较简单,就不做详细分析了。

poYBAGMkS1OASYYyAAELPk3YZI8281.jpgpYYBAGMkS1qAeg_DAAAsu5R9GLc523.jpg

另外,官网还有很多其它应用的例程可供参考,非常实用:

59a45300-3571-11ed-ba43-dac502259ad0.png

总结

对于大多数内部没有以太网控制器的单片机来说,W5500是个很不错的选择。即使是带有以太网控制器的单片机,如STM32F407系列,也需要外部的PHY芯片才行,而且占用IO多,还需要移植软件协议栈,软件上更复杂一些。

审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式系统
    +关注

    关注

    41

    文章

    3716

    浏览量

    133109
  • 以太网控制器

    关注

    0

    文章

    41

    浏览量

    13129
  • W5500
    +关注

    关注

    5

    文章

    46

    浏览量

    18475

原文标题:STM32使用HAL库驱动W5500

文章出处:【微信号:嵌入式技术开发,微信公众号:嵌入式技术开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    SPI以太网口方案DM9051ANX与W5500的BOM物料清单一览

    在SPI接口以太网方案选型,DM9051ANX相比W5500具有显著成本优势。W5500需额外增加EMI防护元件(如阻尼电阻等),导致其外围物料成本达10.71元,而DM9051ANX仅需5.72元
    的头像 发表于 11-03 17:13 594次阅读
    SPI以太网口方案DM9051ANX与<b class='flag-5'>W5500</b>的BOM物料清单一览

    STM32驱动W5500作为客户端进行通讯

    路层,物理层,以及32K字节片上RAM作为数据收发缓存。使得上位机主控芯片,只需承担TCP/IP应用层控制信息的处理任务。从而大大节省了上位机对于数据复制、协议处理和中断处理等方面的工作量,提升了系统利用率及可靠性。在操作过程中,用户可以近似的将
    的头像 发表于 10-14 17:19 987次阅读
    STM32<b class='flag-5'>驱动</b><b class='flag-5'>W5500</b>作为客户端进行通讯

    DM9051ANX与W5500网口性能與规格比较

    在最近项目中,本小工在乐鑫ESP32、雅特力AT32F415與AT32F423、STM32F103以及MTK平台上,一連玩去了官方参考设计推荐的SPI有线网口方案,前后搞了DM9051ANX与W5500,本小工从实作中学习到相关专业经验,也了解到这两者实际使用情况,所以,整出這份貼子。
    的头像 发表于 10-14 10:28 334次阅读

    MCU无法检测到W5500是怎么回事?

    在兆易创新 GD32F303,国民技术 N32G457和ST STM32F103上试用了W5500以太网模块(RT-Thread版本是rt-thread-4.1.1), 只有STM32F103上可以
    发表于 10-14 07:38

    rt_thread提供的软件包怎么实现挂接2个W5500芯片

    rt_thread提供的软件包怎么实现挂接2个W5500芯片,看了下源码好像需要修改很多地方,请指导
    发表于 10-13 07:52

    使用w5500通信使用wiz包的时候,突然拔掉网线,如何释放网络资源?

    我用wiz包,使用w5500进行网络通信,对接到但是socket此时已经建立,正在通信,如果此时突然拔掉网线,因为本身使用非阻塞。所以我这边可以通过netdev_is_link_up检测到网线断开
    发表于 10-11 09:01

    w5500dhcp无法获取ip怎么解决?

    spi驱动w5500,mac地址写入读取成功,但是获取的ip、子网掩码都是0;
    发表于 09-26 06:58

    wiznet+w5500程序卡死怎么解决?

    使用wiznet+w5500+tcpserver sample 调试,正常情况OK。如果在socket连接成功后拔出网线再插上重连,socket会累加,当多次操作后,socket累加到w5500的8
    发表于 09-10 06:48

    基于STM32 HAL与标准的esp8266接入机智云方案(二)

    在《基于STM32HAL与标准的esp8266接入机智云方案(一)》中,我们详细介绍了硬件连接和机智云客户端的创建。本篇将重点讲解如何下载代码、分析下载的代码,并直接使用这些代码连接机智云。同时
    的头像 发表于 05-28 18:02 1122次阅读
    基于STM32 <b class='flag-5'>HAL</b><b class='flag-5'>库</b>与标准<b class='flag-5'>库</b>的esp8266接入机智云方案(二)

    w5500随机出现接收问题

    我现在用STM32F103CBT6与W5500作为TCP Server,多台PC与服务器连接上后,服务器会实时传输数据到PC上,并且PC随时能通过控制软件发送数据至服务器。但是运行一段时间后,PC上
    发表于 05-15 09:45

    通过注册表和Technitium MAC Address Changer修改MAC地址(支持W5500模块及通用网卡)

    Changer工具(适合小白用户),以W5500以太网模块为例,同时适用于普通网卡。 二、通过注册表修改MAC地址 1. 硬件准备 W5500模块:通过USB转以太网适配器或开发板连接PC。 PC
    的头像 发表于 03-28 09:27 6217次阅读
    通过注册表和Technitium MAC Address Changer修改MAC地址(支持<b class='flag-5'>W5500</b>模块及通用网卡)

    通过注册表和Technitium MAC Address Changer修改MAC地址(支持W5500模块及通用网卡)

    Changer工具(适合小白用户),以W5500以太网模块为例,同时适用于普通网卡。 二、通过注册表修改MAC地址 1. 硬件准备 W5500模块:通过USB转以太网适配器或开发板连接PC。 PC
    发表于 03-28 09:18

    使用STM32F103驱动W5500,多台设备接入交换机时,偶发出现有两台设备只要同时都接入后就会互相影响,怎么解决?

    使用STM32F103驱动W5500,单台设备连接电脑网络助手通讯没有问题,多台设备接入交换机的时候,偶发出现有两台设备只要同时都接入后就会互相影响,导致网络数据交互堵塞,丢帧等问题。这两台设备只要
    发表于 03-13 07:05

    如何将HAL转为LL

    怎么将HAL转为LL
    发表于 03-10 06:08

    W5500+DSP28335通信问题

    我采用W5500芯片+DSP于上位机进行UDP通信 前29次可以正常进行通信,但是当到达30次的时候,W5500开始崩了,其getSn_RX_RSR(0)开始返回60000并且开始无序跳变,才是把
    发表于 01-08 21:53