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

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

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

[复制链接]
kangxuebin 发布时间:2014-9-2 10:24
本帖最后由 kangxuebin 于 2017-11-8 17:28 编辑
* m1 x% g- N: c; Y& Z3 e3 G
+ m. K  u: q3 ~4 S' X+ J# O" S: @5 c1 y* p# v/ n

( ^3 `6 H; b2 ?, Z[资料]STM32以太网入门培训课件) P1 X6 B3 g$ p8 T
- w8 ~9 |  K1 }; g
从零开始使用 CubeMX 创建以太网工程; J" E$ E/ j6 M- N+ U) k8 T2 t
TS-W5500模块特点:( K. i4 l' g" q8 F- q5 i
1、尺寸小:5CM*3CM  G2 L' @) C- i/ V6 |7 o& N$ n
2、4层板设计并了TVS等保护IC,差分走线,保障了良好的EMC兼容性1 v" F3 M6 \3 }( b) |  `* b
3、5V、3V单片机都兼容1 F2 l  Y& @! h" C( D1 V
W55002 n% z& o3 d& r' n$ k
W5500是一款全硬件TCP/IP嵌入式以太网控制器,为嵌入式系统提供了更加简易, Z- Q- B+ e  |5 B
的互联网连接方案。W5500集成了TCP/IP协议栈,10/100M以太网数据链路层(MAC)' u9 h5 O, A/ L
及物理层(PHY),使得用户使用单芯片就能够在他们的应用中拓展网络连接。5 [( ]& h. ^* D9 x* h6 }
久经市场考验的WIZnet全硬件TCP/IP协议栈支持TCP,UDP,IPv4,ICMP,ARP,IGMP 以
9 t6 O+ r, m) M" N1 P及PPPoE协议。W5500内嵌32K字节片上缓存以供以太网包处理。如果你使用W5500,
0 K) Y1 Z7 y: Q; ^你只需要一些简单的Socket编程就能实现以太网应用。这将会比其他嵌入式以太网方案, O9 R5 C7 R$ l, U+ W5 J8 _
更加快捷、简便。用户可以同时使用8个硬件Socket独立通讯。* X5 g) P: A2 U
W5500提供了SPI(外设串行接口)从而能够更加容易与外设MCU整合。而且,' ^# o. t+ @6 m, S7 S/ k
W5500的使用了新的高效SPI协议支持80MHz速率,从而能够更好的实现高速网络通讯。& ]( k: ^" m- Q2 ~+ E9 I
为了减少系统能耗,W5500提供了网络唤醒模式(WOL)及掉电模式供客户选择使用。
. m5 i; p/ I; _. _2 a9 w0 q; x特点( P+ T& `' f: h! N3 P4 M& ]3 }2 D( ]% @
-  支持硬件TCP/IP协议:TCP, UDP, ICMP, IPv4, ARP, IGMP, PPPoE! a  m5 ^+ C4 v) e
-  支持8个独立端口(Socket)同时通讯
& s; C6 L+ D; P( _. P& @-  支持掉电模式+ v& [/ G" x9 ^( X9 \" e9 ~
-  支持网络唤醒$ l/ x% i* ~' a( P1 [0 S
-  支持高速串行外设接口(SPI模式0,3)
4 _1 U5 e9 F5 U-  内部32K字节收发缓存
* @1 V3 V# B* _* r: K-  内嵌10BaseT/100BaseTX 以太网物理层(PHY)
0 `- W4 \4 t: S5 p-  支持自动协商(10/100-Based全双工/半双工)- Y) I0 l$ }; R0 i8 d
-  不支持IP分片1 j, _$ t* O& y; v
-  3.3V工作电压,I/O信号口5V耐压;
4 |: ^+ f' \8 E2 m6 t1 P$ J-  LED状态显示(全双工/半双工,网络连接,网络速度,活动状态)
9 f2 n8 @7 {  }3 d/ l# B) R( w-  48引脚LQFP无铅封装(7x7mm, 0.5mm 间距)
' |6 x( N( R8 LW5500 数据手册 版本1.0 (2013八月)    3 / 67
3 |3 A/ T, g2 a# Q8 m目标应用0 i+ v! Y# w* @( r
W5500适合于以下嵌入式应用:, o! j8 i; [7 O* {7 |, D
-  家庭网络设备: 机顶盒、个人录像机、数码媒体适配器$ ]0 A2 X+ M- a% B) K6 {( R- w
-  串行转以太网: 门禁控制、LED显示屏、无线AP继电器等
9 T+ u4 W7 v2 k6 J-  并行转以太网: POS/微型打印机、复印机( g7 q2 E5 o7 h1 a, ^/ E
-  USB转以太网: 存储设备、网络打印机4 l! A+ @" g: Q# l. U7 U
-  GPIO转以太网: 家庭网络传感器
4 T$ ^6 n8 ^1 e4 ^  M% w; Z-  安全系统: 数字录像机、网络摄像机、信息亭
6 X+ Y" t# x- f- L! k-  工厂和楼宇自动化控制系统
( m; v4 u% O! V1 q  r: l+ R-  医疗监测设备
5 J# c) J9 e5 D& G* r) O8 x5 k% Z-  嵌入式服务器
% c" L- ^5 R' Q TS-W5500.jpg # |: r3 Q- B0 k% L
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了,所以是在一个网段的)。跪求楼主大大帮我看看,非常感谢。) \5 d5 W/ U4 G' H8 |7 }
这是我做的一些修改内容:
' j3 e4 u6 c  c+ r+ j# h我看到你的引脚是这样连接的:(箭头后面是我改成了这些引脚). q* {5 N. C. j2 x$ h
*              PA8 -> W5500_RST        ---------->PA15
: y( o, x3 |! F* h9 V. Y$ r+ E *              PA9 -> W5500_INT          ---------->PA8   
, O1 t* j$ s+ w7 h *              PA4 -> W5500_SCS          ---------->PB12    2 y; ^- b% @$ d2 b5 r
*              PA5 -> W5500_SCK          ---------->PB13  
, D/ d8 N' F8 c *              PA6 -> W5500_MISO         ---------->PB14   
. _5 }  S4 \1 X2 r( A *              PA7 -> W5500_MOSI        ---------->PB15/ n) f+ t- w; A- @$ P7 R! Z* H. r
下面的引脚图是我摘出来的电路图。) t* O2 ^% a; D4 N8 T( y3 z
这是我改动代码的地方:5 M( ?5 g( j2 F( x
(1)初始化SPI1改为初始化SPI2(因为我用的是PB12、13、14、15,我看到数据手册里这几个引脚是SPI2)
; |: a+ j9 Q, g/ q9 s7 d% N
  1. /*
    # c; o; B- E; m: m! j
  2.         //初始化SPI1
    8 X) g% B2 V/ c4 u: y; J% T# Z3 l
  3.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_SPI1 | RCC_APB2Periph_AFIO, ENABLE);       
    * v' v) M0 D9 E) |) x/ }5 ?
  4. */
    # j0 X& ?; V' x" ^, b2 K
  5.         //初始化SPI2        +++++++
    / N! W5 ^2 G( u& ~5 a
  6.         RCC_APB1PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB1Periph_SPI2 | RCC_APB2Periph_AFIO, ENABLE);        ! q# l- M% _/ ?4 p# o7 G+ t
  7.        
复制代码
(2)初始化SCK、MISO、MOSI引脚,把你代码中的引脚改成了GPIOB_13/14/15% p4 b; K) ^" r1 t( `/ x6 |( f
  1. /*初始化SCK、MISO、MOSI引脚 ++++++++*/
    . ]  n1 C( F2 P1 c. t: V& n0 V6 t. q
  2.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
    7 }8 T: q$ d' r; Q5 Q" J9 h
  3.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;/ G+ _9 [$ J( b3 u/ ~( t; `
  4.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    3 V8 a8 s: g  O  y  j* J
  5.         GPIO_Init(GPIOB, &GPIO_InitStructure);5 [2 v, s8 U- z" {/ V7 K( m  |$ L, l
  6.         GPIO_SetBits(GPIOB,GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
复制代码
(3)初始化CS引脚,在这里我发现这些引脚使用宏定义的,而且我看到了相关的三个宏,所以我顺便吧这三个宏都改了:3 d: }2 B" L6 v# }/ z
  1. //初始化CS引脚
复制代码
  1. /***************----- W5500 GPIO定义 -----***************/
    6 v; F( S3 [0 F8 p/ @
  2. //#define W5500_SCS                GPIO_Pin_4     //定义w5500的cs引脚(PA4)0 }5 I$ R) T) n9 I- ^
  3. //#define W5500_SCS_PORT        GPIOA& U' o8 Z5 o) V
  4. //       
    1 k/ i# K. B& c) ]2 t) O
  5. //#define W5500_RST                GPIO_Pin_8     //定义w5500的RST引脚(PA8)
    6 T' `1 v& A& t7 D/ \
  6. //#define W5500_RST_PORT        GPIOA8 b8 d: ^; U, p. g1 B) A' D
  7. 4 W5 K- X1 L8 x: R7 D! E8 F3 p0 U
  8. //#define W5500_INT                GPIO_Pin_9     //定义w5500的INT引脚(P9A)9 g8 N7 b# P- i8 A: R
  9. //#define W5500_INT_PORT        GPIOA/ ^. F0 z6 B( D% t# A
  10. 0 f0 @  w% e$ S- O$ b
  11. /**********  LSY ----- W5500 GPIO定义----- ************/. v5 @% L" I0 u/ U4 B3 F1 a
  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了)
8 O' v4 L$ m5 h# c. h" h4 G$ n
  1. SPI_Init(SPI2,&SPI_InitStructure);   
复制代码
(5)使能SPI1也改为使能SPI2了:) n5 c4 Z2 {5 w( S( p
  1. SPI_Cmd(SPI2,ENABLE);       
复制代码
就改了这些,我是漏改了什么吗?跪求楼主大大帮我看看,非常感谢。
: P4 y" G* x" C  e6 U8 z
7 |2 y" I& P$ r- b$ o" J% K$ j
; G9 a2 \" x* B$ S* t

yinjiaotu

yinjiaotu
jzt2497871470 回答时间:2015-11-19 10:58:20
        if(Read_W5500_SOCK_1Byte(0,Sn_SR) != SOCK_INIT)//如果socket打开失败/ \* _) ]1 o6 z& M9 ~( l2 H% X
        {
' N3 t6 l; ~; |8 W                Write_W5500_SOCK_1Byte(0,Sn_CR,CLOSE);//打开不成功,关闭Socket6 @: n4 g& C" A* m  }8 v' j
                return FALSE;//返回FALSE(0x00)
* ~. t/ Q* t. n3 s- M        }
* G- t. S) Q$ 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模块资料

谢谢分享
* @) i( F) B2 L. C" t0 ~ 
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 手机版