请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

分享自己做的以太网W5500模块资料  

[复制链接]
kangxuebin 发布时间:2014-9-2 10:24
本帖最后由 kangxuebin 于 2017-11-8 17:28 编辑
4 V4 s" r8 h1 ?7 ^) z8 d/ u* ^* e* `6 K- I
; D" U9 R$ Q% U5 |) e
5 }, r* r5 \' R3 s1 E
[资料]STM32以太网入门培训课件! S" w+ r( ?/ u' f, C% _+ Z6 F( ]

9 n! n4 d% [1 G' K6 W  p
从零开始使用 CubeMX 创建以太网工程
4 T- X# l3 [2 ]) ^$ ?2 V' g/ H9 a: mTS-W5500模块特点:
; m7 q8 p0 s3 u+ A: \0 h1、尺寸小:5CM*3CM2 N; x7 [+ R" h
2、4层板设计并了TVS等保护IC,差分走线,保障了良好的EMC兼容性" z& ]! P, I5 z7 \
3、5V、3V单片机都兼容
! X/ B0 j/ B* a+ f, M2 V- KW5500" a1 P1 p9 N$ g: O% O2 r8 q2 m
W5500是一款全硬件TCP/IP嵌入式以太网控制器,为嵌入式系统提供了更加简易" b/ b8 E! [6 [$ F2 m
的互联网连接方案。W5500集成了TCP/IP协议栈,10/100M以太网数据链路层(MAC), t  ?5 f: v0 S
及物理层(PHY),使得用户使用单芯片就能够在他们的应用中拓展网络连接。
* m/ i, k$ S0 V/ }3 a" ~久经市场考验的WIZnet全硬件TCP/IP协议栈支持TCP,UDP,IPv4,ICMP,ARP,IGMP 以% t1 }" V/ l& o1 X  x
及PPPoE协议。W5500内嵌32K字节片上缓存以供以太网包处理。如果你使用W5500,  E# b2 l4 E+ K* X
你只需要一些简单的Socket编程就能实现以太网应用。这将会比其他嵌入式以太网方案
- N7 w. k- ]7 `. j3 X更加快捷、简便。用户可以同时使用8个硬件Socket独立通讯。
2 Q* C" A! l: w9 k% T/ B7 oW5500提供了SPI(外设串行接口)从而能够更加容易与外设MCU整合。而且,6 d* X, w# x' Y0 m  _! g/ V5 t
W5500的使用了新的高效SPI协议支持80MHz速率,从而能够更好的实现高速网络通讯。: X7 d8 z) q) d2 U  f; V1 f
为了减少系统能耗,W5500提供了网络唤醒模式(WOL)及掉电模式供客户选择使用。' B  t* I1 d: \
特点
' z# Q3 G4 R! z-  支持硬件TCP/IP协议:TCP, UDP, ICMP, IPv4, ARP, IGMP, PPPoE' k0 D1 j3 X) V
-  支持8个独立端口(Socket)同时通讯3 T) @; |! `$ K9 ~
-  支持掉电模式, b: p3 F; n( n* z; s/ E4 R' i
-  支持网络唤醒
1 `$ \  P5 }' X" @! _  f-  支持高速串行外设接口(SPI模式0,3); J2 h! m1 n& A2 d, l$ X' H
-  内部32K字节收发缓存9 y0 I, i( w2 B* r
-  内嵌10BaseT/100BaseTX 以太网物理层(PHY)3 d# Q; z; Z( h! ~& N
-  支持自动协商(10/100-Based全双工/半双工)
; x% i" ^8 y; J2 p- H  r-  不支持IP分片# m3 t2 x+ p1 ~3 ]. P" Z
-  3.3V工作电压,I/O信号口5V耐压;
4 A: I9 E, [% F: R) u-  LED状态显示(全双工/半双工,网络连接,网络速度,活动状态)% j  Q+ W( z& X$ ~- U" G# ~3 X
-  48引脚LQFP无铅封装(7x7mm, 0.5mm 间距)1 A( |1 x& t, R# G% i% y% H+ g" H
W5500 数据手册 版本1.0 (2013八月)    3 / 67
+ ]1 O; ?3 x) N' M3 ~5 T, O目标应用6 d* W: V" o9 D
W5500适合于以下嵌入式应用:0 q, Z! f% f" U7 p- {
-  家庭网络设备: 机顶盒、个人录像机、数码媒体适配器
0 |$ ]/ X( P. m$ l/ S2 ~-  串行转以太网: 门禁控制、LED显示屏、无线AP继电器等/ s  s% F9 T# ^& H' h7 p  f
-  并行转以太网: POS/微型打印机、复印机7 X  s! S$ \1 v2 ~! z8 U" [
-  USB转以太网: 存储设备、网络打印机# Y, E+ t% Y2 l' h3 U
-  GPIO转以太网: 家庭网络传感器
' W: I) ^: p1 W. V2 |-  安全系统: 数字录像机、网络摄像机、信息亭
/ P+ M9 ^3 F3 h, D8 p( Q-  工厂和楼宇自动化控制系统, q0 ~1 W- R; Q' j8 q6 [" `# P
-  医疗监测设备
9 Y& Q. Y, J9 ]5 g  y-  嵌入式服务器
0 g6 L( ]9 T6 d- {9 z# n TS-W5500.jpg ; u, \/ ]8 q  u- g- q; R3 f& ^
W5500模块原理图V1.0.pdf (42.72 KB, 下载次数: 2143)

评分

参与人数 1 ST金币 +1 收起 理由
shizongliang007 + 1 赞一个!

查看全部评分

1 收藏 17 评论101 发布时间:2014-9-2 10:24

举报

101个回答
kangxuebin 回答时间:2014-9-2 10:48:51

RE: 分享自己做的以太网W5500模块资料

自己顶下
Ace3500 回答时间:2017-1-3 16:45:11
楼主大大,我下了你的代码,做了些修改,有一些问题请教一下:主要是我的引脚用的跟你的不太一样,我把引脚改了,SPI也就由SPI1改为相应的SPI2了,然后按理说应该能ping通了,可是我在我电脑上还是ping不通代码中设置的IP:192.168.1.200.(我自己电脑IP我设置为192.168.1.250了,所以是在一个网段的)。跪求楼主大大帮我看看,非常感谢。' ]' w# O( w; F( F, D
这是我做的一些修改内容:2 Y+ Y' O4 u& f% a* i
我看到你的引脚是这样连接的:(箭头后面是我改成了这些引脚)$ Z5 C5 ?* _" n
*              PA8 -> W5500_RST        ---------->PA15
- I9 ^1 J: a! x* b- ~ *              PA9 -> W5500_INT          ---------->PA8   ! F( q- j/ k, S2 Z
*              PA4 -> W5500_SCS          ---------->PB12    ' Z# s4 C) ?3 y" Y4 c4 V
*              PA5 -> W5500_SCK          ---------->PB13  
% o- n! }! ~  Q8 K *              PA6 -> W5500_MISO         ---------->PB14   
3 f$ ^; s& y2 q3 o& P1 k *              PA7 -> W5500_MOSI        ---------->PB15
. k0 ?: U  n7 W7 o下面的引脚图是我摘出来的电路图。0 x, [  E6 P3 n' E2 ~1 S
这是我改动代码的地方:
' @  c# w! m- P: X7 x(1)初始化SPI1改为初始化SPI2(因为我用的是PB12、13、14、15,我看到数据手册里这几个引脚是SPI2)
7 t# L* a, W7 @: E  Y
  1. /*
    & U) X+ ]1 r* q" z
  2.         //初始化SPI1 " T8 G  @( ~  E; p8 ~$ h$ G- s
  3.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_SPI1 | RCC_APB2Periph_AFIO, ENABLE);       
    / {) u3 D, {$ a; a
  4. */
    0 ~9 Y6 r  a- r7 x8 j6 v' y
  5.         //初始化SPI2        +++++++; ?+ l- L5 n2 a$ U6 W
  6.         RCC_APB1PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB1Periph_SPI2 | RCC_APB2Periph_AFIO, ENABLE);        + _/ s) F3 f0 ]) d2 X) q
  7.        
复制代码
(2)初始化SCK、MISO、MOSI引脚,把你代码中的引脚改成了GPIOB_13/14/15* s3 H$ h& [: [7 n" r
  1. /*初始化SCK、MISO、MOSI引脚 ++++++++*/
    5 H: w2 K8 I5 `6 m
  2.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
    , b0 I; ]1 h2 ~8 ^
  3.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;3 E- o- b: \* f0 i9 |, @1 k$ b
  4.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;. @9 t; h3 `$ n# Z
  5.         GPIO_Init(GPIOB, &GPIO_InitStructure);
    ! B3 ^( V; ?/ S0 ?( N, n6 W
  6.         GPIO_SetBits(GPIOB,GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
复制代码
(3)初始化CS引脚,在这里我发现这些引脚使用宏定义的,而且我看到了相关的三个宏,所以我顺便吧这三个宏都改了:. `0 _" f% C5 I) e: T; A
  1. //初始化CS引脚
复制代码
  1. /***************----- W5500 GPIO定义 -----***************/
    0 {9 u( N4 u+ D6 ~
  2. //#define W5500_SCS                GPIO_Pin_4     //定义w5500的cs引脚(PA4)
    ; \  v* u5 \5 t
  3. //#define W5500_SCS_PORT        GPIOA
    4 h( V( }0 @( r% \- q
  4. //       
    # |* ~0 D( I2 k$ C
  5. //#define W5500_RST                GPIO_Pin_8     //定义w5500的RST引脚(PA8)$ Q. `6 l- }+ {
  6. //#define W5500_RST_PORT        GPIOA# Y5 C7 s5 ^  `7 ^0 U  z4 j
  7. 5 _% {3 J  p, t8 T
  8. //#define W5500_INT                GPIO_Pin_9     //定义w5500的INT引脚(P9A)
    2 R* Y$ g) F: ^. y
  9. //#define W5500_INT_PORT        GPIOA7 d9 c8 D  C: u; ^2 p

  10. ) z$ M# A% j' }
  11. /**********  LSY ----- W5500 GPIO定义----- ************// @* M1 ?- Z5 H% ^; G! L) z, O
  12. #define W5500_SCS                GPIO_Pin_12   //<span style="line-height: 1.5;">定义w5500的cs引脚</span><span style="line-height: 1.5;">    --->(PB12)</span>
复制代码
(4)初始化SPI,这里基本参数我都没变,只改了这个参数(由SPI1改为SPI2了)
# {! G* o: C7 d
  1. SPI_Init(SPI2,&SPI_InitStructure);   
复制代码
(5)使能SPI1也改为使能SPI2了:
) E  R  E5 x! p7 v
  1. SPI_Cmd(SPI2,ENABLE);       
复制代码
就改了这些,我是漏改了什么吗?跪求楼主大大帮我看看,非常感谢。1 ]7 A, Z  O) S7 b
/ p( X4 p$ b# J6 G

4 G! C8 _, ?" n. h& \4 o% E
& e1 {- |$ f$ `9 G

yinjiaotu

yinjiaotu
jzt2497871470 回答时间:2015-11-19 10:58:20
        if(Read_W5500_SOCK_1Byte(0,Sn_SR) != SOCK_INIT)//如果socket打开失败
! R0 u( |( o. L. i0 c. J: \        {
; ~5 m# f6 A) N7 \, E6 M; w: c                Write_W5500_SOCK_1Byte(0,Sn_CR,CLOSE);//打开不成功,关闭Socket
, y( M' Q. B% ?4 M! r. n/ P                return FALSE;//返回FALSE(0x00)& U$ ?1 |1 ^' G+ _' A$ q
        }& |( e% p0 r/ B: _3 p2 R* _; c
你好, 有人看看 socket一直打开失败是什么原因呢,  我查了一下,好像返回的是0x89
我爱下载 回答时间:2014-9-2 12:44:46

RE: 分享自己做的以太网W5500模块资料

看看楼上的大作
justloong 回答时间:2014-9-3 21:46:11

回复: 分享自己做的以太网W5500模块资料

 学习学习
tianyasu37 回答时间:2014-9-4 13:05:27

回复: 分享自己做的以太网W5500模块资料

学习学习,最近也要搞这个东西
青鱼-404845 回答时间:2014-9-4 13:44:15

RE: 分享自己做的以太网W5500模块资料

谢谢楼主分享
10-软件设计 回答时间:2014-9-6 21:37:53

RE: 分享自己做的以太网W5500模块资料

STM32F103-STK功能最全的例子源代码
dengxindieying 回答时间:2014-9-15 13:32:17

RE: 分享自己做的以太网W5500模块资料

学习学习,最近也要搞这个东西
lyong0704 回答时间:2014-9-17 09:00:34

回复: 分享自己做的以太网W5500模块资料

学习学习!
STM@1986 回答时间:2014-9-17 09:21:14

回复: 分享自己做的以太网W5500模块资料

谢谢分享
. l" i" ^% n# ~. ~1 F% y' A' M 
tbbt 回答时间:2014-9-21 09:22:15

回复: 分享自己做的以太网W5500模块资料

回复: 分享自己做的以太网W5500模块资料
wzhansen-121214 回答时间:2014-9-22 14:53:52

回复: 分享自己做的以太网W5500模块资料

学习学习!
hbvictor2012 回答时间:2014-9-24 22:12:15

RE: 分享自己做的以太网W5500模块资料

好东西别错过~~~
wy2014 回答时间:2014-10-9 11:31:42

回复: 分享自己做的以太网W5500模块资料

 顶
candong521 回答时间:2014-10-16 14:56:12

回复: 分享自己做的以太网W5500模块资料

看看那先

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版