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

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

[复制链接]
kangxuebin 发布时间:2014-9-2 10:24
本帖最后由 kangxuebin 于 2017-11-8 17:28 编辑
' H; D$ v& F1 X7 R  `2 n
, A& w* Z" @& q
# _* e3 j: g# L8 f$ n
& ]# F; p1 i) a3 C) a& [, `[资料]STM32以太网入门培训课件
) U  q6 b2 U/ N# C  f: P# O( M- t5 Z" Q# k) L
从零开始使用 CubeMX 创建以太网工程
( u, H, {/ x6 h  I7 V* _: gTS-W5500模块特点:# a' d3 w$ k. \+ b* [  e
1、尺寸小:5CM*3CM
0 E4 m/ W) _! X$ K/ D2、4层板设计并了TVS等保护IC,差分走线,保障了良好的EMC兼容性5 L0 i$ [& p! Q6 t0 j
3、5V、3V单片机都兼容
& {' {! p$ L2 f$ S! K; K' SW5500
* m: E& J" ]7 K* y5 DW5500是一款全硬件TCP/IP嵌入式以太网控制器,为嵌入式系统提供了更加简易* x! s& G+ [1 f, S; F; ~$ n
的互联网连接方案。W5500集成了TCP/IP协议栈,10/100M以太网数据链路层(MAC)
, z3 M" x1 Y- ~1 S7 [( Y及物理层(PHY),使得用户使用单芯片就能够在他们的应用中拓展网络连接。
7 ?8 k. }! T! _% y久经市场考验的WIZnet全硬件TCP/IP协议栈支持TCP,UDP,IPv4,ICMP,ARP,IGMP 以
# F( f$ C1 X7 a- Z5 h9 j及PPPoE协议。W5500内嵌32K字节片上缓存以供以太网包处理。如果你使用W5500,, v; O' u: E4 F# h8 [
你只需要一些简单的Socket编程就能实现以太网应用。这将会比其他嵌入式以太网方案- z1 C9 n- ^" W; o" Z4 Z- c
更加快捷、简便。用户可以同时使用8个硬件Socket独立通讯。. l) R$ V% a7 g5 F( v/ U0 d7 |! g
W5500提供了SPI(外设串行接口)从而能够更加容易与外设MCU整合。而且,
& T- p/ V7 O$ W. ]: e8 yW5500的使用了新的高效SPI协议支持80MHz速率,从而能够更好的实现高速网络通讯。
6 \; a" x" m" d为了减少系统能耗,W5500提供了网络唤醒模式(WOL)及掉电模式供客户选择使用。
# [+ c/ s1 w& X2 F特点
* s" L) F1 R& Q, `" [! t  O-  支持硬件TCP/IP协议:TCP, UDP, ICMP, IPv4, ARP, IGMP, PPPoE
" j$ ^' o2 ^" j-  支持8个独立端口(Socket)同时通讯+ F' X6 v: l7 }! S9 t
-  支持掉电模式1 `. Y, [+ `' y4 ]& b+ \0 e# M" p% c/ n
-  支持网络唤醒
% Y" Y. x5 ^+ s; D+ O; C-  支持高速串行外设接口(SPI模式0,3)3 }8 X6 q7 n( M2 `* N& X
-  内部32K字节收发缓存8 @3 O4 B8 X# v. M0 G1 V5 M" h' {
-  内嵌10BaseT/100BaseTX 以太网物理层(PHY)
1 t! }- n( c; |$ Q& F  k% i, b-  支持自动协商(10/100-Based全双工/半双工)
, g; l4 @# }) l/ H( Z5 y- \$ d-  不支持IP分片6 n, S; P3 |# p& e1 R, C
-  3.3V工作电压,I/O信号口5V耐压;
2 F* O# W- n1 Y-  LED状态显示(全双工/半双工,网络连接,网络速度,活动状态), d1 |1 c# e- w- p5 J
-  48引脚LQFP无铅封装(7x7mm, 0.5mm 间距)  T9 l" l( V$ H- V4 @" ^
W5500 数据手册 版本1.0 (2013八月)    3 / 67* a* v) C, F1 f+ l6 @7 _
目标应用% E! y( Q& T5 M* {' N4 t# n
W5500适合于以下嵌入式应用:
4 a+ ]- J5 Q4 A' c-  家庭网络设备: 机顶盒、个人录像机、数码媒体适配器4 r9 x  l9 @3 D& `% `
-  串行转以太网: 门禁控制、LED显示屏、无线AP继电器等
0 Y" p9 K& a* _' G  x9 d" E8 k$ V-  并行转以太网: POS/微型打印机、复印机9 a- n( E9 u# |+ A9 p
-  USB转以太网: 存储设备、网络打印机
/ d5 T8 e) K6 B, d- [3 ~-  GPIO转以太网: 家庭网络传感器
1 P6 S  j* y; U- y! G  g( m-  安全系统: 数字录像机、网络摄像机、信息亭
; \2 o- ~8 f# Y# S5 Q4 u-  工厂和楼宇自动化控制系统! U. C' A, N+ b# R8 ]
-  医疗监测设备
* i  Z: s& A- j( n4 K: X. ^-  嵌入式服务器4 y6 _/ M# S8 j+ ~7 w
TS-W5500.jpg 0 y, A. p7 a3 B! d* v1 l1 x
W5500模块原理图V1.0.pdf (42.72 KB, 下载次数: 2172)

评分

参与人数 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了,所以是在一个网段的)。跪求楼主大大帮我看看,非常感谢。$ P- Q6 j% o+ g% h( T$ r! I
这是我做的一些修改内容:
9 y2 z. U9 m* g7 z! _( R我看到你的引脚是这样连接的:(箭头后面是我改成了这些引脚)
$ M, W3 j4 q% e! X# s# d! K *              PA8 -> W5500_RST        ---------->PA154 T6 s0 s8 ]% B4 \8 `3 H9 _
*              PA9 -> W5500_INT          ---------->PA8   . a& F1 X- ]$ l8 x2 h/ D* T
*              PA4 -> W5500_SCS          ---------->PB12    6 [( c4 f& D; d) O
*              PA5 -> W5500_SCK          ---------->PB13  4 G( Q( @* v  P4 v1 ^6 i1 d
*              PA6 -> W5500_MISO         ---------->PB14   0 Z: o; r6 }! g. Y- i4 R7 v( N
*              PA7 -> W5500_MOSI        ---------->PB15$ ~2 _0 V8 F/ q- f. b
下面的引脚图是我摘出来的电路图。/ A; I( ~. r5 X9 w+ {
这是我改动代码的地方:
. W) J2 Q, y# a(1)初始化SPI1改为初始化SPI2(因为我用的是PB12、13、14、15,我看到数据手册里这几个引脚是SPI2)
( r- E: W# G3 a. N" l# e
  1. /*+ Q& }5 W) b: K# K$ z- b" V
  2.         //初始化SPI1
    1 ?& Q" V1 h6 L4 n
  3.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_SPI1 | RCC_APB2Periph_AFIO, ENABLE);        + m# @) t: C9 R0 T, S; B
  4. */
    + A. p1 W* _& g% a
  5.         //初始化SPI2        +++++++
    - S, S, ^( ?! P: I! |# ]+ O4 R4 t. p' E
  6.         RCC_APB1PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB1Periph_SPI2 | RCC_APB2Periph_AFIO, ENABLE);        4 G6 l$ C  T( p* X4 z
  7.        
复制代码
(2)初始化SCK、MISO、MOSI引脚,把你代码中的引脚改成了GPIOB_13/14/152 t) g5 k: M5 H+ {1 S+ x
  1. /*初始化SCK、MISO、MOSI引脚 ++++++++*/) ]7 `4 W. ]2 d) @+ s5 M
  2.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;* z  ]( A1 ~) B' [9 I; J# u3 Z
  3.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;* G1 s5 g% Y0 a, T8 W) U4 [4 U
  4.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    # D# J: }' E- u# m
  5.         GPIO_Init(GPIOB, &GPIO_InitStructure);
    0 k9 t/ G% |  Q; g
  6.         GPIO_SetBits(GPIOB,GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
复制代码
(3)初始化CS引脚,在这里我发现这些引脚使用宏定义的,而且我看到了相关的三个宏,所以我顺便吧这三个宏都改了:0 r5 W% ~( L1 C! \! I* p# b+ F
  1. //初始化CS引脚
复制代码
  1. /***************----- W5500 GPIO定义 -----***************/9 i. d  w$ R% Y. H: T
  2. //#define W5500_SCS                GPIO_Pin_4     //定义w5500的cs引脚(PA4)
    4 |' [! x$ _" v
  3. //#define W5500_SCS_PORT        GPIOA1 n$ i7 _; ]2 b- p% K' g# N* b
  4. //        6 \  o' G+ [- x9 m
  5. //#define W5500_RST                GPIO_Pin_8     //定义w5500的RST引脚(PA8)% `5 e; d$ I3 A7 I7 B; i5 V' ]
  6. //#define W5500_RST_PORT        GPIOA
    1 _- k$ P1 ~3 c
  7. ; a( D+ W% S- v& Q& ]8 G/ E  D
  8. //#define W5500_INT                GPIO_Pin_9     //定义w5500的INT引脚(P9A)
    8 R; C$ Z$ A" L
  9. //#define W5500_INT_PORT        GPIOA: _' E' v/ H9 U% L# {, x
  10. ; v, R; z( E4 X+ b$ _
  11. /**********  LSY ----- W5500 GPIO定义----- ************/9 N4 G" x# S4 N
  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了)2 O) b6 Q$ Z( Y" U
  1. SPI_Init(SPI2,&SPI_InitStructure);   
复制代码
(5)使能SPI1也改为使能SPI2了:
& P" ]% i! n0 x4 g9 f1 s$ D; |
  1. SPI_Cmd(SPI2,ENABLE);       
复制代码
就改了这些,我是漏改了什么吗?跪求楼主大大帮我看看,非常感谢。
' Q6 [( n* n5 C7 Q; B: k
4 F6 h) K% N2 r# e* E, Q. ?9 H, X0 G

& a9 e6 W( q( Y

yinjiaotu

yinjiaotu
jzt2497871470 回答时间:2015-11-19 10:58:20
        if(Read_W5500_SOCK_1Byte(0,Sn_SR) != SOCK_INIT)//如果socket打开失败
7 ^% A+ v$ I+ k  M1 G        {
2 K1 I/ e, n2 o0 E: i7 j                Write_W5500_SOCK_1Byte(0,Sn_CR,CLOSE);//打开不成功,关闭Socket; x% g4 E1 C$ `2 f3 _$ m* J/ \
                return FALSE;//返回FALSE(0x00)* N7 |" w+ n( N" ]; S# @& Y
        }4 @. u* V- m# x: }7 ~( n
你好, 有人看看 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模块资料

谢谢分享
8 E' S6 B: m) m0 @% 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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版