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

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

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

[复制链接]
kangxuebin 发布时间:2014-9-2 10:24
本帖最后由 kangxuebin 于 2017-11-8 17:28 编辑 * s7 Z  k4 V7 E. v) B# P) X# X
# ]" t  M$ h% W* [3 r& ]+ ]

+ X; i% ]7 i: k) k: F* u) ?" p0 {; q, k3 f; D7 T
[资料]STM32以太网入门培训课件4 V2 K  p  X9 r6 a
8 ?6 i. n. n* j
从零开始使用 CubeMX 创建以太网工程
8 y  F6 M! `  I: V; rTS-W5500模块特点:
: s' ]0 q3 [/ P4 |1、尺寸小:5CM*3CM
! H( I9 u& ~5 a( F  N( s2、4层板设计并了TVS等保护IC,差分走线,保障了良好的EMC兼容性# p7 U: I" r* g6 q
3、5V、3V单片机都兼容
& I3 O# r1 p5 b5 ]* V) XW5500
7 U$ t. z' P* p1 ?* S: aW5500是一款全硬件TCP/IP嵌入式以太网控制器,为嵌入式系统提供了更加简易
9 {. d. {) k  `# G的互联网连接方案。W5500集成了TCP/IP协议栈,10/100M以太网数据链路层(MAC)+ N* O4 [6 Y* v. }
及物理层(PHY),使得用户使用单芯片就能够在他们的应用中拓展网络连接。
: Z3 ^+ s$ D' S- q7 Z久经市场考验的WIZnet全硬件TCP/IP协议栈支持TCP,UDP,IPv4,ICMP,ARP,IGMP 以
6 x( q2 c. [% P( x6 e, o* H5 y及PPPoE协议。W5500内嵌32K字节片上缓存以供以太网包处理。如果你使用W5500,6 \* y7 z$ L5 n# L
你只需要一些简单的Socket编程就能实现以太网应用。这将会比其他嵌入式以太网方案* s* Z& m1 y2 i! Z( Q2 g/ v
更加快捷、简便。用户可以同时使用8个硬件Socket独立通讯。
- ]- u4 _$ G3 E9 Q6 k  O4 k0 f' hW5500提供了SPI(外设串行接口)从而能够更加容易与外设MCU整合。而且,- e/ T' m5 g& a- m' \; A
W5500的使用了新的高效SPI协议支持80MHz速率,从而能够更好的实现高速网络通讯。4 m% g0 c+ Z( b0 Z! T
为了减少系统能耗,W5500提供了网络唤醒模式(WOL)及掉电模式供客户选择使用。
) }  k9 @2 ?, y特点
% A' R# Q7 z& h: G: }/ A' q/ }-  支持硬件TCP/IP协议:TCP, UDP, ICMP, IPv4, ARP, IGMP, PPPoE7 H: P; h: g, S+ s. w! A
-  支持8个独立端口(Socket)同时通讯
& p, t' Q8 K- h) h# N9 m( h-  支持掉电模式4 a4 F* u2 v+ r$ P9 Z
-  支持网络唤醒1 V, {; R0 P3 h& o2 N# l1 O
-  支持高速串行外设接口(SPI模式0,3)0 _( I2 m" O- G3 i7 `
-  内部32K字节收发缓存/ U9 w! K  @) L
-  内嵌10BaseT/100BaseTX 以太网物理层(PHY)
# v* L4 n: B( N: c- \-  支持自动协商(10/100-Based全双工/半双工)* n" I0 y3 n7 s% E) n
-  不支持IP分片. W- O4 f: n% N5 ~
-  3.3V工作电压,I/O信号口5V耐压;4 e* `  z7 ~5 v/ q9 g* \
-  LED状态显示(全双工/半双工,网络连接,网络速度,活动状态)6 V( L! j) Z1 @" L  r; e0 c7 L& e
-  48引脚LQFP无铅封装(7x7mm, 0.5mm 间距)
0 o3 X5 s& Q8 R9 S. @W5500 数据手册 版本1.0 (2013八月)    3 / 67! s3 A! J% s" b& p2 ^5 K
目标应用
% u0 f: s; |; W0 }, ]" @0 FW5500适合于以下嵌入式应用:" K5 q( R" X. l# N# f0 ]
-  家庭网络设备: 机顶盒、个人录像机、数码媒体适配器
5 H6 Y2 t2 V0 l5 V' U: J  R-  串行转以太网: 门禁控制、LED显示屏、无线AP继电器等
* z/ E. y& z# l( i; @* w-  并行转以太网: POS/微型打印机、复印机& m8 _# s: v5 @* v
-  USB转以太网: 存储设备、网络打印机# }$ J: L! U, j) O5 w# C
-  GPIO转以太网: 家庭网络传感器
7 P, h5 Q4 i& h; l" O, B: @-  安全系统: 数字录像机、网络摄像机、信息亭/ Y9 x5 ^3 y5 |6 n# _5 \! T
-  工厂和楼宇自动化控制系统: p" }& z6 I) T4 w
-  医疗监测设备/ O7 v5 F  V* U4 m+ ^( u; x$ u
-  嵌入式服务器
5 H" i+ V4 ~/ I, J( }5 U' ` TS-W5500.jpg
, O) e8 t) r$ I/ o8 Q 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了,所以是在一个网段的)。跪求楼主大大帮我看看,非常感谢。
" n$ j" s( l1 G9 I: G这是我做的一些修改内容:
  [+ q8 p6 P5 w2 [+ h- a' W5 B) H我看到你的引脚是这样连接的:(箭头后面是我改成了这些引脚)
) F. f8 d* n: ]4 @  \' L *              PA8 -> W5500_RST        ---------->PA15
* {4 ~- z5 y4 S/ M *              PA9 -> W5500_INT          ---------->PA8   3 Z5 x6 N/ {. k* Y# n
*              PA4 -> W5500_SCS          ---------->PB12    $ M; H  S7 t" e4 A; d) F
*              PA5 -> W5500_SCK          ---------->PB13  # X& c4 [. D+ ?" J3 g- w4 y3 L
*              PA6 -> W5500_MISO         ---------->PB14   4 m' x. K  t# c7 G: P
*              PA7 -> W5500_MOSI        ---------->PB159 r2 a8 }' o8 s/ r( p
下面的引脚图是我摘出来的电路图。
3 U+ E3 Q1 B; l/ l) W0 H" y. ^* Y这是我改动代码的地方:
  ]+ y" h# p& K% o4 `2 ^* Z, M(1)初始化SPI1改为初始化SPI2(因为我用的是PB12、13、14、15,我看到数据手册里这几个引脚是SPI2)
  x, z7 Z8 t1 G/ H8 s- s5 d
  1. /*# [1 b  Y: u9 }1 j
  2.         //初始化SPI1
    ) X" j; ?5 x" l
  3.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_SPI1 | RCC_APB2Periph_AFIO, ENABLE);       
    # a8 }3 b6 z7 q2 I; q# w
  4. */
    , J: F3 T2 j' A( _# k
  5.         //初始化SPI2        +++++++0 |2 H% ?" O( X$ m
  6.         RCC_APB1PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB1Periph_SPI2 | RCC_APB2Periph_AFIO, ENABLE);       
    - Y/ A" t; y9 U5 V) A$ T
  7.        
复制代码
(2)初始化SCK、MISO、MOSI引脚,把你代码中的引脚改成了GPIOB_13/14/15: e! p" {9 H; o
  1. /*初始化SCK、MISO、MOSI引脚 ++++++++*/
    8 E/ r/ c- i0 c* ~& A  Z; W
  2.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
    ; a0 k- I! k; O' [8 h+ ~
  3.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    & M8 p7 B, L' |+ F) Q
  4.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;( @, `* \) h) V
  5.         GPIO_Init(GPIOB, &GPIO_InitStructure);
    / G' F  z0 }% T8 Q' R. C' X; O3 @* n
  6.         GPIO_SetBits(GPIOB,GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
复制代码
(3)初始化CS引脚,在这里我发现这些引脚使用宏定义的,而且我看到了相关的三个宏,所以我顺便吧这三个宏都改了:6 \, a  u; ?( J# d- D1 f) ]; r2 h
  1. //初始化CS引脚
复制代码
  1. /***************----- W5500 GPIO定义 -----***************/
    , Z" ~6 t+ `: b
  2. //#define W5500_SCS                GPIO_Pin_4     //定义w5500的cs引脚(PA4)
    0 i% y4 M  |- i6 c2 t  V
  3. //#define W5500_SCS_PORT        GPIOA
    5 i) L5 c" S' |* R( E0 x
  4. //       
    ( }7 O6 j6 q# F4 o' c+ }
  5. //#define W5500_RST                GPIO_Pin_8     //定义w5500的RST引脚(PA8)/ ?4 c$ j7 U1 z6 \2 _3 N4 F
  6. //#define W5500_RST_PORT        GPIOA. s7 R2 r7 \7 ^4 x/ W8 Z

  7. ; r, ]& k# y8 J5 C, U" X
  8. //#define W5500_INT                GPIO_Pin_9     //定义w5500的INT引脚(P9A)
    6 p5 m2 O" `# K1 H) i4 e/ a
  9. //#define W5500_INT_PORT        GPIOA# T# E  H# b+ @' A2 N& ]3 f

  10. 7 K6 S) @, ]8 {
  11. /**********  LSY ----- W5500 GPIO定义----- ************/
    9 L1 `# s0 |: k
  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了)
& w; W9 h) V: j0 r9 D0 u
  1. SPI_Init(SPI2,&SPI_InitStructure);   
复制代码
(5)使能SPI1也改为使能SPI2了:
1 P  w" d& ^5 h5 w$ v! @
  1. SPI_Cmd(SPI2,ENABLE);       
复制代码
就改了这些,我是漏改了什么吗?跪求楼主大大帮我看看,非常感谢。; ?& [' y4 S% o% ~
7 q% c2 D# b  e: F
3 b0 [6 D. \* f. ?

# Y9 m9 B7 N9 e5 n2 N1 [: W7 \

yinjiaotu

yinjiaotu
jzt2497871470 回答时间:2015-11-19 10:58:20
        if(Read_W5500_SOCK_1Byte(0,Sn_SR) != SOCK_INIT)//如果socket打开失败& n6 I6 t2 K0 H( z
        {5 m$ p4 O! r" ~, }. Y- s* _4 b- T) e, c
                Write_W5500_SOCK_1Byte(0,Sn_CR,CLOSE);//打开不成功,关闭Socket
; ]' ~7 t% U- Z; c4 H                return FALSE;//返回FALSE(0x00)- g% D! Q+ Q+ d9 i, K  F( |* ~
        }
3 i! q6 F- }; f) ~" U你好, 有人看看 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模块资料

谢谢分享" n2 n) e, a3 ]1 U: ]9 A' G4 `
 
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 手机版