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

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

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

[复制链接]
kangxuebin 发布时间:2014-9-2 10:24
本帖最后由 kangxuebin 于 2017-11-8 17:28 编辑
9 V& v0 k# |' v( |  ]% C# E6 H2 b, o9 \

+ M& e% i9 R4 R4 A6 V9 S4 |( T5 {
" A% @, L$ Z- V* J[资料]STM32以太网入门培训课件& o1 s4 E: b! Z; E1 L. y

/ {& C. \" H  ~3 O$ @
从零开始使用 CubeMX 创建以太网工程* }3 y% J8 }* ^/ P" B
TS-W5500模块特点:
, M- Z# v+ E6 l1、尺寸小:5CM*3CM
. Y% ~  a8 {9 q; ^2、4层板设计并了TVS等保护IC,差分走线,保障了良好的EMC兼容性
% g) h+ k$ Y! r8 }/ p3、5V、3V单片机都兼容
, f' J1 r& k) `; D/ ?W55004 E4 b- l" p, p: J( i% D
W5500是一款全硬件TCP/IP嵌入式以太网控制器,为嵌入式系统提供了更加简易
2 E2 \6 Q0 p* |3 L/ @的互联网连接方案。W5500集成了TCP/IP协议栈,10/100M以太网数据链路层(MAC)% l7 g8 F- ^( x& t
及物理层(PHY),使得用户使用单芯片就能够在他们的应用中拓展网络连接。
/ ^) W3 P# c' `1 B* c* m久经市场考验的WIZnet全硬件TCP/IP协议栈支持TCP,UDP,IPv4,ICMP,ARP,IGMP 以
) X8 P5 E. l+ S及PPPoE协议。W5500内嵌32K字节片上缓存以供以太网包处理。如果你使用W5500,
$ |+ ]; J  W' @( ~. ]你只需要一些简单的Socket编程就能实现以太网应用。这将会比其他嵌入式以太网方案2 }" z. q( a: Z, X9 `# _
更加快捷、简便。用户可以同时使用8个硬件Socket独立通讯。
" \5 W: m& @% K2 u0 W# L/ iW5500提供了SPI(外设串行接口)从而能够更加容易与外设MCU整合。而且,4 D9 y* a' g. }% c
W5500的使用了新的高效SPI协议支持80MHz速率,从而能够更好的实现高速网络通讯。
* @& g, B: F/ W8 f, H: w  y1 @为了减少系统能耗,W5500提供了网络唤醒模式(WOL)及掉电模式供客户选择使用。
$ P7 Y6 g9 l1 t特点
3 n% o9 s5 Y0 g0 \-  支持硬件TCP/IP协议:TCP, UDP, ICMP, IPv4, ARP, IGMP, PPPoE, e# r! ~- m5 w8 [3 D
-  支持8个独立端口(Socket)同时通讯6 G; W/ E# }( P8 a; u4 V; J
-  支持掉电模式
( ~' t) E* R# Z: y  L-  支持网络唤醒
% I3 W  [1 d8 a# r) I7 C3 r-  支持高速串行外设接口(SPI模式0,3)
1 u/ C! i! |5 C6 b) N-  内部32K字节收发缓存
& N6 o+ f" x5 _1 N0 x1 o-  内嵌10BaseT/100BaseTX 以太网物理层(PHY)1 I) v- }2 n! M2 S" H
-  支持自动协商(10/100-Based全双工/半双工). w& V! p, G9 p; k- G' O' V
-  不支持IP分片. }! e4 B0 f  p; ]. F  N
-  3.3V工作电压,I/O信号口5V耐压;- k. \/ e) E' a* j
-  LED状态显示(全双工/半双工,网络连接,网络速度,活动状态)8 @6 O% c2 K; j. |) O: i6 |* M
-  48引脚LQFP无铅封装(7x7mm, 0.5mm 间距)
) t& D  `6 _/ E+ I2 |W5500 数据手册 版本1.0 (2013八月)    3 / 675 T' l9 Z& f' S
目标应用
- v: @6 ^4 l; d! i  L5 B4 MW5500适合于以下嵌入式应用:6 R4 X" Y( d3 a: r# a# F
-  家庭网络设备: 机顶盒、个人录像机、数码媒体适配器
, x8 N. s0 x+ |& n-  串行转以太网: 门禁控制、LED显示屏、无线AP继电器等7 r; [( I( A  G7 C
-  并行转以太网: POS/微型打印机、复印机
3 X2 K/ a3 c& M! `0 l-  USB转以太网: 存储设备、网络打印机
) j8 i2 f6 b6 `-  GPIO转以太网: 家庭网络传感器: @5 W& e- S  A+ T
-  安全系统: 数字录像机、网络摄像机、信息亭
" v7 P- ^! ?4 p-  工厂和楼宇自动化控制系统) {6 L/ q9 _% R  c4 m- N& A
-  医疗监测设备
* y( y  d) \+ n0 M# v-  嵌入式服务器$ a& x! u( a* o0 F, V8 z7 y) I
TS-W5500.jpg   [9 t- U5 P: p7 ?+ M' P
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了,所以是在一个网段的)。跪求楼主大大帮我看看,非常感谢。+ _1 t6 `  x& {; O" s
这是我做的一些修改内容:
7 _8 C$ b. C) q2 H1 ^# O我看到你的引脚是这样连接的:(箭头后面是我改成了这些引脚)8 T/ c/ I6 C2 s( J/ Y9 Q* \6 R# F
*              PA8 -> W5500_RST        ---------->PA15  }! Y: M$ Y2 i+ e" H8 o# s
*              PA9 -> W5500_INT          ---------->PA8   
4 o( W$ B$ i9 A0 W *              PA4 -> W5500_SCS          ---------->PB12   
! N$ z) \: W- A$ x' E *              PA5 -> W5500_SCK          ---------->PB13  " |4 c: a9 P7 h; i3 `8 m' C7 B
*              PA6 -> W5500_MISO         ---------->PB14   
* {9 e6 j  n! |9 w; G *              PA7 -> W5500_MOSI        ---------->PB15+ _: D( `. `. O: U! i
下面的引脚图是我摘出来的电路图。, S  m0 V' V) d* d. v- r
这是我改动代码的地方:
7 d  @7 s- p& L8 u" X1 l(1)初始化SPI1改为初始化SPI2(因为我用的是PB12、13、14、15,我看到数据手册里这几个引脚是SPI2), C9 H7 n3 `# U. {. }6 f
  1. /*- t$ \' t3 j/ ?
  2.         //初始化SPI1 ' ~. z% ~: v; ]  N; W
  3.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_SPI1 | RCC_APB2Periph_AFIO, ENABLE);       
    / E4 Z0 w  K' U  O4 H
  4. */2 ?- p% L* D  Y% W4 s# ]
  5.         //初始化SPI2        +++++++  j4 N2 `9 Z7 H+ e$ c
  6.         RCC_APB1PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB1Periph_SPI2 | RCC_APB2Periph_AFIO, ENABLE);        : v2 a1 K9 O3 {. Q# }/ J
  7.        
复制代码
(2)初始化SCK、MISO、MOSI引脚,把你代码中的引脚改成了GPIOB_13/14/15, {% _% r; A" v2 l/ M
  1. /*初始化SCK、MISO、MOSI引脚 ++++++++*/: f1 \! |( J% M, @* f- ]
  2.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;% M: [; p  V6 z2 a. c
  3.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    $ l8 n; n. n% G+ ]) [
  4.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;7 A, s, u1 W- [+ L  V
  5.         GPIO_Init(GPIOB, &GPIO_InitStructure);# @# J; O$ {2 e1 x7 k
  6.         GPIO_SetBits(GPIOB,GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
复制代码
(3)初始化CS引脚,在这里我发现这些引脚使用宏定义的,而且我看到了相关的三个宏,所以我顺便吧这三个宏都改了:2 _" x9 E1 X5 {- u  d
  1. //初始化CS引脚
复制代码
  1. /***************----- W5500 GPIO定义 -----***************/
    ; |/ ?- B* d7 j6 v4 r
  2. //#define W5500_SCS                GPIO_Pin_4     //定义w5500的cs引脚(PA4)
    - X$ i+ v" ?+ N8 i" }
  3. //#define W5500_SCS_PORT        GPIOA! _! K- @" m) C
  4. //        9 k6 w% Q. q! `: `  _
  5. //#define W5500_RST                GPIO_Pin_8     //定义w5500的RST引脚(PA8)3 K% j- ]# V5 h1 O5 `
  6. //#define W5500_RST_PORT        GPIOA0 |8 R  N8 t( ^1 ]
  7. ) ~" K6 {/ Z$ R7 X
  8. //#define W5500_INT                GPIO_Pin_9     //定义w5500的INT引脚(P9A)8 M3 m6 a$ `: G5 y" g  K
  9. //#define W5500_INT_PORT        GPIOA
    : R. q, O, A! r9 s& j! [8 p
  10. / F: U! Y4 @8 z& D" D5 R% j
  11. /**********  LSY ----- W5500 GPIO定义----- ************/) z: S3 }" W7 B) \4 F
  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了)1 H4 Q9 \# M8 }4 R4 Y' _* S( L
  1. SPI_Init(SPI2,&SPI_InitStructure);   
复制代码
(5)使能SPI1也改为使能SPI2了:
) u7 N5 h( e6 J2 u8 O
  1. SPI_Cmd(SPI2,ENABLE);       
复制代码
就改了这些,我是漏改了什么吗?跪求楼主大大帮我看看,非常感谢。
/ w) r" d+ J4 z/ o# b- }/ M9 j) [' ]( |$ ^  R$ R
& _* P$ o' {8 e) J0 z
/ g! {8 ]  p, F' D  o1 N. {9 s

yinjiaotu

yinjiaotu
jzt2497871470 回答时间:2015-11-19 10:58:20
        if(Read_W5500_SOCK_1Byte(0,Sn_SR) != SOCK_INIT)//如果socket打开失败9 G- s9 k3 [+ J9 c
        {
, w& Z% `" O8 B' e6 g* u3 D                Write_W5500_SOCK_1Byte(0,Sn_CR,CLOSE);//打开不成功,关闭Socket9 _7 q3 f+ [8 ]/ A) `3 i; _4 F
                return FALSE;//返回FALSE(0x00)
" K: s/ o% m" T, q+ S3 |        }* G7 I! h2 \; l$ n8 s
你好, 有人看看 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模块资料

谢谢分享
; S2 j( J1 w" ?+ _/ m) J' \% N 
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 手机版