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

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

[复制链接]
kangxuebin 发布时间:2014-9-2 10:24
本帖最后由 kangxuebin 于 2017-11-8 17:28 编辑 # _0 Y! k5 y9 c9 W* i9 s: l  J. j  i! T

; Z+ V# \, M/ M$ ~" C2 u3 p% x* m
" ]" m2 O5 n3 q7 [1 F; [, i' f" C; }
[资料]STM32以太网入门培训课件6 O1 Y5 j- y( z- ]
" c$ t( f4 C- o1 w+ Y& S' i
从零开始使用 CubeMX 创建以太网工程
3 \6 i2 P7 H) }0 M$ E2 b7 b/ K$ OTS-W5500模块特点:2 ], v6 _8 L( _. W7 X
1、尺寸小:5CM*3CM+ {1 x, g3 G+ F- v" |  t
2、4层板设计并了TVS等保护IC,差分走线,保障了良好的EMC兼容性5 e$ z+ i8 [, V7 D
3、5V、3V单片机都兼容- m$ [( Z6 S$ S* K9 ]: u
W55000 o; n3 T' Q, N* n$ m: L3 {
W5500是一款全硬件TCP/IP嵌入式以太网控制器,为嵌入式系统提供了更加简易, s, e: d+ \$ b; a3 W" h# L- @/ m5 O
的互联网连接方案。W5500集成了TCP/IP协议栈,10/100M以太网数据链路层(MAC)
" P. T8 g' e" B5 L, J及物理层(PHY),使得用户使用单芯片就能够在他们的应用中拓展网络连接。1 B$ A/ d; V9 f
久经市场考验的WIZnet全硬件TCP/IP协议栈支持TCP,UDP,IPv4,ICMP,ARP,IGMP 以  M. V/ C4 K  @6 o  Y
及PPPoE协议。W5500内嵌32K字节片上缓存以供以太网包处理。如果你使用W5500,
3 d) k  G8 L/ o# E- M你只需要一些简单的Socket编程就能实现以太网应用。这将会比其他嵌入式以太网方案/ Q9 W& D+ M4 C3 ?& M
更加快捷、简便。用户可以同时使用8个硬件Socket独立通讯。" ^, n- @6 o7 r, s
W5500提供了SPI(外设串行接口)从而能够更加容易与外设MCU整合。而且,9 L: o- R) e# a2 J
W5500的使用了新的高效SPI协议支持80MHz速率,从而能够更好的实现高速网络通讯。6 t3 ?) z6 Z1 t6 X; Q
为了减少系统能耗,W5500提供了网络唤醒模式(WOL)及掉电模式供客户选择使用。# c  I; ?- b4 V. B5 f( Z- Y" T: {
特点: z) K* C  X# m- J8 o. l. E- z
-  支持硬件TCP/IP协议:TCP, UDP, ICMP, IPv4, ARP, IGMP, PPPoE
) |9 A! T5 m9 l8 B: p+ Q5 p-  支持8个独立端口(Socket)同时通讯2 f6 x) A4 V9 p* l. V' W
-  支持掉电模式
9 C. Y* F; F2 q+ S-  支持网络唤醒
0 l4 e6 S0 T8 E* n" a$ l' p-  支持高速串行外设接口(SPI模式0,3)
2 T0 O1 \$ V6 {9 O9 V1 i-  内部32K字节收发缓存% n& _7 o, q! J, q5 g
-  内嵌10BaseT/100BaseTX 以太网物理层(PHY)  l+ I4 T/ i# F% C
-  支持自动协商(10/100-Based全双工/半双工)
3 Y, O. K" ?: f  u# X-  不支持IP分片% X7 H/ p( W' W4 o, t: }
-  3.3V工作电压,I/O信号口5V耐压;
/ Q1 o2 p/ q$ Q; w4 X9 W0 s3 L* F-  LED状态显示(全双工/半双工,网络连接,网络速度,活动状态); H7 a7 l" ?3 ~/ T
-  48引脚LQFP无铅封装(7x7mm, 0.5mm 间距)7 S! v, l8 X# h# n. u
W5500 数据手册 版本1.0 (2013八月)    3 / 67' G& S9 i/ W" V
目标应用& B* I: C" e8 s; M3 m
W5500适合于以下嵌入式应用:
( x: O) X7 Z4 `' x2 G, k-  家庭网络设备: 机顶盒、个人录像机、数码媒体适配器
+ L  [6 W. G4 M9 J- g8 [# G% r-  串行转以太网: 门禁控制、LED显示屏、无线AP继电器等* }, `* I3 `' R2 P& j
-  并行转以太网: POS/微型打印机、复印机7 u! p  W! W/ V" t7 g' U* J9 o
-  USB转以太网: 存储设备、网络打印机) }/ @5 [2 w) C  x# b, E
-  GPIO转以太网: 家庭网络传感器# |( h8 d2 X/ X
-  安全系统: 数字录像机、网络摄像机、信息亭  ^3 U4 ]/ }$ r% v$ X7 B
-  工厂和楼宇自动化控制系统3 \# u3 e* B/ d; O$ X: ~2 c
-  医疗监测设备4 U$ u# M8 ~" z  _2 \6 E
-  嵌入式服务器
" M: y' U6 X" ~ TS-W5500.jpg % y7 J4 X% G; _3 z
W5500模块原理图V1.0.pdf (42.72 KB, 下载次数: 2163)

评分

参与人数 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了,所以是在一个网段的)。跪求楼主大大帮我看看,非常感谢。6 E8 [# P* `1 P, F
这是我做的一些修改内容:
6 `! e) N  Y5 g6 S/ Y* H7 G+ ^% z) Q我看到你的引脚是这样连接的:(箭头后面是我改成了这些引脚)
. a% n5 M: L$ @' }" X( N *              PA8 -> W5500_RST        ---------->PA15
* \) T" S' d7 ] *              PA9 -> W5500_INT          ---------->PA8   2 @+ }4 }" {6 u
*              PA4 -> W5500_SCS          ---------->PB12    ! `1 x; S$ g. ~& G. F  u
*              PA5 -> W5500_SCK          ---------->PB13  
+ z2 t' J$ Q7 _( J *              PA6 -> W5500_MISO         ---------->PB14   
7 ]* c% C: q2 V% d7 ?0 T  u' ^ *              PA7 -> W5500_MOSI        ---------->PB152 t" u- m+ ^: P; l! }/ P" K
下面的引脚图是我摘出来的电路图。, S- h9 A. M% U+ D
这是我改动代码的地方:+ T9 ?, r# v/ A
(1)初始化SPI1改为初始化SPI2(因为我用的是PB12、13、14、15,我看到数据手册里这几个引脚是SPI2)$ R! {. q+ s" s6 H1 ~
  1. /*
    - c8 `' Y7 y0 I- h+ y' C! T
  2.         //初始化SPI1 " ?4 J. L7 P" b
  3.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_SPI1 | RCC_APB2Periph_AFIO, ENABLE);       
    # T+ Q6 S0 D9 @# X
  4. */
    / M8 H% b9 k' Z+ V8 u' }0 v
  5.         //初始化SPI2        +++++++
    # {; n4 \( ^/ j6 N- @
  6.         RCC_APB1PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB1Periph_SPI2 | RCC_APB2Periph_AFIO, ENABLE);        ( z- U1 _3 K1 h& H, I
  7.        
复制代码
(2)初始化SCK、MISO、MOSI引脚,把你代码中的引脚改成了GPIOB_13/14/15
9 p6 d3 S. C+ W; j  _
  1. /*初始化SCK、MISO、MOSI引脚 ++++++++*/# h* B1 _" Z9 `5 B# S. M' \* o7 A
  2.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
    - Y& d; }/ x& {( @: A; a5 A: F
  3.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;1 H5 h6 T/ [6 {5 {! \& {) G
  4.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    ) q6 m2 Z9 A4 s" X2 y
  5.         GPIO_Init(GPIOB, &GPIO_InitStructure);
    , l, E; u- o0 C. M1 t9 }& c" B1 C
  6.         GPIO_SetBits(GPIOB,GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
复制代码
(3)初始化CS引脚,在这里我发现这些引脚使用宏定义的,而且我看到了相关的三个宏,所以我顺便吧这三个宏都改了:1 G# u$ H* Z+ P' L2 z; v5 [% [
  1. //初始化CS引脚
复制代码
  1. /***************----- W5500 GPIO定义 -----***************/  E. b1 U; U- g% D1 _
  2. //#define W5500_SCS                GPIO_Pin_4     //定义w5500的cs引脚(PA4)
    * ?8 x8 S; `' |3 r
  3. //#define W5500_SCS_PORT        GPIOA" z& K8 W/ w$ l; \9 m
  4. //       
    4 m* L0 I( o7 x; g  [
  5. //#define W5500_RST                GPIO_Pin_8     //定义w5500的RST引脚(PA8)
    . \' q: h1 i  O! O1 i3 K
  6. //#define W5500_RST_PORT        GPIOA$ D2 t8 y: l1 u% P9 ]" q: A

  7. 5 e$ y$ y2 N! w/ ?
  8. //#define W5500_INT                GPIO_Pin_9     //定义w5500的INT引脚(P9A)
    8 ~3 o) h8 `" r8 q; [! K9 _/ i
  9. //#define W5500_INT_PORT        GPIOA
    / e7 m$ H0 }1 W$ |6 I( }) O
  10. % S2 x4 x# I# T' `% }1 ?! w
  11. /**********  LSY ----- W5500 GPIO定义----- ************/
    # [8 w# ?8 S. m& u  L" O$ {" @( 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了)5 @  L0 L4 z% W- @1 O# a2 o
  1. SPI_Init(SPI2,&SPI_InitStructure);   
复制代码
(5)使能SPI1也改为使能SPI2了:; Y+ d2 |+ {* _; H1 _6 [# q
  1. SPI_Cmd(SPI2,ENABLE);       
复制代码
就改了这些,我是漏改了什么吗?跪求楼主大大帮我看看,非常感谢。
: J0 d7 _/ a9 U) k& H2 r" v  J* a( D1 e

4 v4 Q) R! H( l& n- |# ^6 k
$ v6 W) l. s' J( J

yinjiaotu

yinjiaotu
jzt2497871470 回答时间:2015-11-19 10:58:20
        if(Read_W5500_SOCK_1Byte(0,Sn_SR) != SOCK_INIT)//如果socket打开失败
) w& e+ E' I4 G6 i( K# U        {" i5 G8 r$ y: J6 h' s' P
                Write_W5500_SOCK_1Byte(0,Sn_CR,CLOSE);//打开不成功,关闭Socket2 }4 C& @5 p7 H9 E% @3 @
                return FALSE;//返回FALSE(0x00)5 O; O! ~9 B% b2 f+ v, Z  R
        }7 R1 E1 e( m, i+ e0 G9 I/ n2 ]
你好, 有人看看 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模块资料

谢谢分享
+ ^" s) G, ~; s9 H2 Z 
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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版