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

    文章

    3590

    浏览量

    129460
  • 以太网控制器

    关注

    0

    文章

    39

    浏览量

    12725
  • W5500
    +关注

    关注

    5

    文章

    45

    浏览量

    17589

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

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

收藏 人收藏

    评论

    相关推荐

    HAL在Arduino平台上的使用

    HAL在Arduino平台上的使用 Arduino平台是一个开源的电子原型平台,它包括硬件(基于微控制器的电路板)和软件(Arduino IDE)。Arduino平台因其简单易用而受到广泛欢迎
    的头像 发表于 12-02 14:04 260次阅读

    HAL和标准的区别 HAL与CMSIS的关系

    在嵌入式系统开发中,HAL(硬件抽象层)和标准是两种常用的软件,它们在功能和使用场景上有所不同。 1. 标准 标准
    的头像 发表于 12-02 14:02 502次阅读

    HAL在STM32开发中的重要性

    HAL(Hardware Abstraction Layer Library,硬件抽象层)在STM32开发中扮演着至关重要的角色。以下是HAL
    的头像 发表于 12-02 13:35 313次阅读

    如何快速入门HAL编程 HAL与裸机编程的比较

    如何快速入门HAL编程 要快速入门HAL编程,可以遵循以下步骤: 了解基础知识 : 掌握C语言编程基础,包括变量、数据类型、函数、指针等。 了解嵌入式系统的基本概念,如微控制器、中
    的头像 发表于 12-02 11:39 294次阅读

    HAL在嵌入式系统中的应用

    HAL(Hardware Abstraction Layer Library,硬件抽象层)在嵌入式系统中扮演着至关重要的角色。以下是HAL
    的头像 发表于 12-02 11:32 499次阅读

    w5500 作为tcp server,客户端异常发送【RST,ACK】断开连接问题

    测试1 w5500 作为tcp server,上位机labveiw程序作为clinet,正常第二次交互结束后,客户端发送一个【RST,ACK】报文断开了连接; (1)使用wireshark抓取
    发表于 10-14 14:01

    使用wiznet+w5500,打印显示spi与5500通讯成功,但是shell无法输入,为什么?

    使用wiznet+w5500,打印显示spi与5500通讯成功,但是shell无法输入,插拔网线能显示link up或者down, main函数的循环打印也可以显示,请问会是什么原因~~
    发表于 09-26 07:09

    ESP32外挂W5500以太网,如何设置静态IP地址

    ,是不是方法不对,ESP32如何设置W5500采用静态IP地址工作 有关ESP32挂载W5500的使用具体看看哪方面的资料。
    发表于 06-13 06:51

    使用PSoC6 (CY8CKIT-062-WIFI-BT) 和W5500以太网控制器,打印版本寄存器时却显示响应为0x03,为什么?

    我正在使用 PSoC6 (CY8CKIT-062-WIFI-BT) 和 W5500 以太网控制器。 PSoC 和 W5500 使用 SPI 协议通信。 如 W5500 数据手册所述,我编写了一个函数
    发表于 05-22 07:37

    W5500V1.3中文数据手册

    电子发烧友网站提供《W5500V1.3中文数据手册.pdf》资料免费下载
    发表于 05-06 15:04 6次下载

    fpga控制w5500,发不了广播怎么回事

    请问我现在用fpga控制w5500,能ping通,socket也打开了,能往我电脑发udp包,但是把目标IP地址改成255.255.255.255时想发广播就发不出来,请问怎么排查
    发表于 04-25 10:06

    请问STM32F4通过W5500能不能得到网口的所有UDP和TCP报文?

    STM32F4通过W5500能不能得到网口发送过来的所有UDP和TCP报文(完全不知道它的目标端口...),海康的摄像头通过网口发送上来的目标端口未知...我只是想做个数据转发,,,按我的理解,这种
    发表于 04-25 06:29

    w5500双网口方案如何实现

    (不想单独在外面增加一个交换机),所以我考虑内置IP175G芯片,但很疑惑W5500和IP175G之间怎么连接,是W5500----网络变压器----IP175G,还是
    发表于 03-12 21:08

    使用stm32,通过spi的dma 收发,运行多次读写以后w5500发送正常,接收卡死,高人帮忙看看

    使用stm32,通过spi的dma 收发,运行多次读写以后w5500发送正常,接收卡死,高人帮忙看看 void PY_W5500_Read(uint8_t ah, uint8_t al
    发表于 02-11 17:05

    在PSoC™ 6中SPI主控如何在SPI协议中手动控制SC引脚?

    嗨,我在我的项目中使用 PSoC™ 6 和 Wiznet w5500 以太网模块。 根据 W5500 数据表,我们需要手动控制 SC 引脚或使用 SPI 协议进行软件驱动。当我将 PDL
    发表于 01-18 08:53