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

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

[复制链接]
kangxuebin 发布时间:2014-9-2 10:24
本帖最后由 kangxuebin 于 2017-11-8 17:28 编辑 4 Z6 q0 ]8 ?, d6 e. ?" q+ a5 b7 i

2 `$ W: ?1 h9 H0 u* `; G" z
0 g( p; A) ]5 V( ]- I6 X0 n) K1 s
[资料]STM32以太网入门培训课件
3 i( r6 i" _6 E% d9 E
( F+ ~$ z7 g' Z
从零开始使用 CubeMX 创建以太网工程
- h- r  H' B& }- T* }TS-W5500模块特点:
# j( e" i9 }4 P+ X# ]1、尺寸小:5CM*3CM
6 z8 v3 Z2 J' ?& s  H( I2、4层板设计并了TVS等保护IC,差分走线,保障了良好的EMC兼容性
& M- h; N( [6 X4 R3、5V、3V单片机都兼容
8 j! I) x6 l# w' ~( b" Z/ cW5500: b" W( g3 f2 Y+ j) z1 g' d
W5500是一款全硬件TCP/IP嵌入式以太网控制器,为嵌入式系统提供了更加简易
3 {1 c0 m* V6 e的互联网连接方案。W5500集成了TCP/IP协议栈,10/100M以太网数据链路层(MAC): a/ i/ t1 ]9 @  O2 P2 ?1 A0 M# E
及物理层(PHY),使得用户使用单芯片就能够在他们的应用中拓展网络连接。
! m  b$ n0 h0 x; [5 a% J8 M- Q2 b, O久经市场考验的WIZnet全硬件TCP/IP协议栈支持TCP,UDP,IPv4,ICMP,ARP,IGMP 以
+ ^) o& u) I! w8 t6 v# N1 t. T及PPPoE协议。W5500内嵌32K字节片上缓存以供以太网包处理。如果你使用W5500,
5 x' ?1 w8 Q! C7 H% I5 A: Q你只需要一些简单的Socket编程就能实现以太网应用。这将会比其他嵌入式以太网方案* X9 b$ M6 l$ K( b, Q
更加快捷、简便。用户可以同时使用8个硬件Socket独立通讯。4 v/ T- I0 ^4 L" n7 H! f' v% E2 w& U
W5500提供了SPI(外设串行接口)从而能够更加容易与外设MCU整合。而且,
2 n, h$ z* g  D# SW5500的使用了新的高效SPI协议支持80MHz速率,从而能够更好的实现高速网络通讯。: k( a5 ?( m6 I+ z
为了减少系统能耗,W5500提供了网络唤醒模式(WOL)及掉电模式供客户选择使用。
; U& ^" v% N1 w+ |# W8 ?特点; j3 }; j% w8 V) g  K/ @- ^" s
-  支持硬件TCP/IP协议:TCP, UDP, ICMP, IPv4, ARP, IGMP, PPPoE; R6 l+ B1 n: V
-  支持8个独立端口(Socket)同时通讯
* l5 v$ F1 Q) k! _: q1 h, @-  支持掉电模式
+ d6 K0 l7 _: ]5 Q-  支持网络唤醒4 d9 S2 a3 @! y9 s, l1 g# W
-  支持高速串行外设接口(SPI模式0,3)
1 P  s7 x: g; P) {* E. L! ?! h-  内部32K字节收发缓存
7 C7 U, L( r/ `* Y3 d4 E  D-  内嵌10BaseT/100BaseTX 以太网物理层(PHY)' q' Z2 l0 J+ t
-  支持自动协商(10/100-Based全双工/半双工). H( R4 L! |( m) I6 x7 ^3 k
-  不支持IP分片
" U4 ]4 Y! p* `, L, [-  3.3V工作电压,I/O信号口5V耐压;5 i$ K5 R$ J* J
-  LED状态显示(全双工/半双工,网络连接,网络速度,活动状态)+ U4 T- X( b2 |2 k( r/ K
-  48引脚LQFP无铅封装(7x7mm, 0.5mm 间距)3 `4 @7 \. C6 R
W5500 数据手册 版本1.0 (2013八月)    3 / 67
& ~! V( m: P: X& k5 M5 R目标应用
6 ?3 U& Y7 l% g' mW5500适合于以下嵌入式应用:
0 y, c) Q4 f  [8 s& r  J-  家庭网络设备: 机顶盒、个人录像机、数码媒体适配器( G$ l/ i3 ?+ ^3 L# N
-  串行转以太网: 门禁控制、LED显示屏、无线AP继电器等- ]; U+ f# Q, n4 }' a9 R
-  并行转以太网: POS/微型打印机、复印机
) m$ R1 m# S3 n, M) m5 w-  USB转以太网: 存储设备、网络打印机
, j9 t8 Z" f% ?3 D8 C6 i) O! _- w-  GPIO转以太网: 家庭网络传感器/ \  M3 ~/ O, R5 `
-  安全系统: 数字录像机、网络摄像机、信息亭
* Y6 k1 H. P1 [+ ?-  工厂和楼宇自动化控制系统
% E% [$ l" u( N-  医疗监测设备
6 I5 \- `2 F5 ]* {" l! Q4 D3 ]' l9 J3 u( A-  嵌入式服务器
' c, [9 A' \! Z' t) d. y1 W. n TS-W5500.jpg   j3 P( w6 L$ b- {" ]
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了,所以是在一个网段的)。跪求楼主大大帮我看看,非常感谢。
. V) `0 I8 o! a2 P: W5 L) {0 I; ~0 R这是我做的一些修改内容:* g) u6 H6 }, E) `
我看到你的引脚是这样连接的:(箭头后面是我改成了这些引脚)
$ B# f( K7 I. }; \8 @ *              PA8 -> W5500_RST        ---------->PA151 C6 z# [- g& v% W% U6 v, ?
*              PA9 -> W5500_INT          ---------->PA8   2 Y% l6 X$ Y3 }0 Z* J8 B
*              PA4 -> W5500_SCS          ---------->PB12      E; o) S% r) G: u& ~
*              PA5 -> W5500_SCK          ---------->PB13  2 \) _! x$ r( ~5 y+ p
*              PA6 -> W5500_MISO         ---------->PB14   
+ P. i7 f2 d# |! z0 Z/ q) T7 ] *              PA7 -> W5500_MOSI        ---------->PB15
% G& M/ t9 C" i. p1 K' K$ @1 R下面的引脚图是我摘出来的电路图。6 ~5 E" \: C7 X: F, }
这是我改动代码的地方:( G, d* ~: }1 Y! {, B; {( H5 \* T
(1)初始化SPI1改为初始化SPI2(因为我用的是PB12、13、14、15,我看到数据手册里这几个引脚是SPI2)5 q8 W/ V; G! [# c
  1. /*
    0 H6 P8 D8 [/ q
  2.         //初始化SPI1
    / Y* P6 ^: M* a1 c
  3.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_SPI1 | RCC_APB2Periph_AFIO, ENABLE);        / W& @2 ~* }: M
  4. */
    3 T/ [, I. D4 b9 c) h: j
  5.         //初始化SPI2        +++++++
    $ H7 r5 A/ L! ]" N
  6.         RCC_APB1PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB1Periph_SPI2 | RCC_APB2Periph_AFIO, ENABLE);       
    * d4 q2 C4 h8 v' i/ |
  7.        
复制代码
(2)初始化SCK、MISO、MOSI引脚,把你代码中的引脚改成了GPIOB_13/14/15) w* d3 S9 D% L# F
  1. /*初始化SCK、MISO、MOSI引脚 ++++++++*/6 S" C# V6 q. i4 U2 L
  2.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
    : P& i8 M$ `0 l6 Q! d
  3.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;1 p; d7 `9 U- `, o& U
  4.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    7 S; x. N" }; b. k- k1 }* e
  5.         GPIO_Init(GPIOB, &GPIO_InitStructure);
    # d/ l/ [7 y5 ^! s
  6.         GPIO_SetBits(GPIOB,GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
复制代码
(3)初始化CS引脚,在这里我发现这些引脚使用宏定义的,而且我看到了相关的三个宏,所以我顺便吧这三个宏都改了:( y. m$ b$ U' r
  1. //初始化CS引脚
复制代码
  1. /***************----- W5500 GPIO定义 -----***************/
    ( v: {& o) \% t2 k+ P3 @9 i8 y/ @
  2. //#define W5500_SCS                GPIO_Pin_4     //定义w5500的cs引脚(PA4)
    : q. h5 @0 W+ b
  3. //#define W5500_SCS_PORT        GPIOA" Y+ b2 j8 ~6 h- R
  4. //       
    * f" N/ `" t. _$ a; a3 u
  5. //#define W5500_RST                GPIO_Pin_8     //定义w5500的RST引脚(PA8); q3 u9 `- p% _$ I" Q; c/ @$ R5 m
  6. //#define W5500_RST_PORT        GPIOA. \! N4 K( X7 X

  7. 2 m6 X1 I6 D+ R$ {/ Q$ j; X& G
  8. //#define W5500_INT                GPIO_Pin_9     //定义w5500的INT引脚(P9A)
    . }! B$ {4 _5 s8 A
  9. //#define W5500_INT_PORT        GPIOA4 K8 B& ]: A% Y2 ~7 r1 p- o

  10. & t3 }( R$ U1 V9 \6 e) n6 X
  11. /**********  LSY ----- W5500 GPIO定义----- ************/
    7 c3 _* `- [7 o, U
  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了)
! t  T0 ?( F, `1 c3 H! X6 x0 v
  1. SPI_Init(SPI2,&SPI_InitStructure);   
复制代码
(5)使能SPI1也改为使能SPI2了:% j5 l0 D# U9 o% u
  1. SPI_Cmd(SPI2,ENABLE);       
复制代码
就改了这些,我是漏改了什么吗?跪求楼主大大帮我看看,非常感谢。/ V  h% M' [" ]( B1 V
9 J9 @5 h. e5 \

/ e  t, c' A, x) g7 F% H  W$ ?2 ?# [1 d" b( c# ^1 {

yinjiaotu

yinjiaotu
jzt2497871470 回答时间:2015-11-19 10:58:20
        if(Read_W5500_SOCK_1Byte(0,Sn_SR) != SOCK_INIT)//如果socket打开失败
; _( W! x0 b; h, p- T  r* `        {; I+ b+ c: `2 A: j9 J
                Write_W5500_SOCK_1Byte(0,Sn_CR,CLOSE);//打开不成功,关闭Socket
* N) G% Q0 Z0 m% c  a+ ]7 a5 f' u                return FALSE;//返回FALSE(0x00)1 t% E' V- x( n
        }
& ~! ~6 K" t' F2 }6 K# i你好, 有人看看 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模块资料

谢谢分享
0 `6 L1 O4 J# H; U1 {+ T  ? 
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 手机版