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

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

[复制链接]
kangxuebin 发布时间:2014-9-2 10:24
本帖最后由 kangxuebin 于 2017-11-8 17:28 编辑 5 {& [$ J; _% x1 n" ]. k- g: Z9 {2 X

! o. h; [, p: P2 \; y9 k1 Y9 Z6 q3 [3 S! D3 ]6 z; q' L' W0 n

$ e! t: [, F* U' u& t: u' B$ L- J[资料]STM32以太网入门培训课件6 T; q/ w/ M# j* H+ I
8 K  D/ ?/ N3 A& D2 N3 \
从零开始使用 CubeMX 创建以太网工程+ j# E6 r; X1 h5 _) F* E
TS-W5500模块特点:
+ {9 J- [5 c, B1、尺寸小:5CM*3CM' N. p6 m6 p$ z& S/ N5 M
2、4层板设计并了TVS等保护IC,差分走线,保障了良好的EMC兼容性4 D3 _! M2 J2 z1 n% y) M
3、5V、3V单片机都兼容
) q* O5 x  s, n. P0 Z! |  N5 LW5500
# E' U& [$ @2 N  K: k. G) ]2 }( jW5500是一款全硬件TCP/IP嵌入式以太网控制器,为嵌入式系统提供了更加简易& d! A; ^/ Y1 H
的互联网连接方案。W5500集成了TCP/IP协议栈,10/100M以太网数据链路层(MAC)
) y. `: Z( O: S) F及物理层(PHY),使得用户使用单芯片就能够在他们的应用中拓展网络连接。* l6 h& }* l; P$ L( ?, Y4 R5 W
久经市场考验的WIZnet全硬件TCP/IP协议栈支持TCP,UDP,IPv4,ICMP,ARP,IGMP 以
- y1 r- W+ z1 P9 z及PPPoE协议。W5500内嵌32K字节片上缓存以供以太网包处理。如果你使用W5500,
9 q4 a1 w- A- O  }你只需要一些简单的Socket编程就能实现以太网应用。这将会比其他嵌入式以太网方案) x( L3 F" s: s# U, _# D1 d3 d: a4 [
更加快捷、简便。用户可以同时使用8个硬件Socket独立通讯。! B5 ]/ d/ d% b+ g
W5500提供了SPI(外设串行接口)从而能够更加容易与外设MCU整合。而且,5 Z/ z4 c& C$ K; K- P6 }
W5500的使用了新的高效SPI协议支持80MHz速率,从而能够更好的实现高速网络通讯。! }% O+ X+ r( k5 n2 o( B
为了减少系统能耗,W5500提供了网络唤醒模式(WOL)及掉电模式供客户选择使用。
/ L7 V4 n% J' ]3 @. F4 {+ t, O5 U& I特点6 X# L& W' ]6 X( ?& e
-  支持硬件TCP/IP协议:TCP, UDP, ICMP, IPv4, ARP, IGMP, PPPoE
& T6 N3 l8 r# t# y0 T# [-  支持8个独立端口(Socket)同时通讯
( V: J- e+ b% |; _. j5 N! j8 |-  支持掉电模式
9 Y& _; d! P$ v2 f) }7 x3 G-  支持网络唤醒2 z' O& ~$ o' }3 e5 Y. J
-  支持高速串行外设接口(SPI模式0,3)
9 R5 _; F& j  u-  内部32K字节收发缓存4 f8 g8 H0 |3 F6 M+ J2 W
-  内嵌10BaseT/100BaseTX 以太网物理层(PHY); I- {, s* l5 m/ H
-  支持自动协商(10/100-Based全双工/半双工)! T# t) M: q! s  Q( S: y# P
-  不支持IP分片) V$ m) E2 f3 {( v% {6 d" K
-  3.3V工作电压,I/O信号口5V耐压;
% ]+ x/ W( O% H, i$ x5 j5 L" K* u-  LED状态显示(全双工/半双工,网络连接,网络速度,活动状态)
+ \" c) Q' B0 S4 i3 d-  48引脚LQFP无铅封装(7x7mm, 0.5mm 间距)
4 j; x6 ^( I9 ^# ]7 H1 N# p- {( [W5500 数据手册 版本1.0 (2013八月)    3 / 67, V+ @, T/ |0 q1 H* s' S
目标应用0 P2 m8 H0 `- s; m$ p
W5500适合于以下嵌入式应用:
5 J3 W4 N5 Y7 F( m( e: f! r: H-  家庭网络设备: 机顶盒、个人录像机、数码媒体适配器
8 }" Y1 v- P, A-  串行转以太网: 门禁控制、LED显示屏、无线AP继电器等
# {' m3 c, J. H2 ?1 _-  并行转以太网: POS/微型打印机、复印机% g. z* V* c0 D2 t; m0 Z7 l
-  USB转以太网: 存储设备、网络打印机
4 F2 P7 z. R, f' c/ ~/ w6 e$ |' ^-  GPIO转以太网: 家庭网络传感器
, J6 A9 z9 E. l-  安全系统: 数字录像机、网络摄像机、信息亭* r" e- Y2 l  O5 }
-  工厂和楼宇自动化控制系统
/ S" r4 M! A9 T/ `-  医疗监测设备
0 v9 U5 Z0 @" n3 K  C! F-  嵌入式服务器
( [& h4 C, O7 J; J TS-W5500.jpg
% A& |4 t7 p+ X5 R$ G0 {! O1 E, ? 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了,所以是在一个网段的)。跪求楼主大大帮我看看,非常感谢。* H9 e: t3 P! {* |; \
这是我做的一些修改内容:, V; p. r4 E% m2 V' V
我看到你的引脚是这样连接的:(箭头后面是我改成了这些引脚)
& A8 t- {( X8 S6 u4 I1 g *              PA8 -> W5500_RST        ---------->PA15
/ I3 Q1 _+ o+ c& L) L *              PA9 -> W5500_INT          ---------->PA8   
/ Y* O/ F: l6 i/ A& t *              PA4 -> W5500_SCS          ---------->PB12   
$ ^. t2 j& F% Q( g" \9 H* \* Z *              PA5 -> W5500_SCK          ---------->PB13  3 `) m: h4 U+ O3 z* ?' Z
*              PA6 -> W5500_MISO         ---------->PB14   5 [3 g5 k6 Q$ o  T/ A- r% o
*              PA7 -> W5500_MOSI        ---------->PB15
* |/ R& t0 u+ Z) P. [下面的引脚图是我摘出来的电路图。! j3 }. ~9 }6 C5 `
这是我改动代码的地方:
4 ?" A( L0 _* Q! q(1)初始化SPI1改为初始化SPI2(因为我用的是PB12、13、14、15,我看到数据手册里这几个引脚是SPI2)0 p" X6 v& R* p* U7 O$ ]
  1. /*4 ~3 N/ b4 n( @7 N# ]
  2.         //初始化SPI1 ' H3 v( r+ V% _( Y/ N( w
  3.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_SPI1 | RCC_APB2Periph_AFIO, ENABLE);        + X1 i  C9 ]: ]( P: y1 h& O) o; f
  4. */
    ! U7 N8 z2 Z$ l1 l( Z# j
  5.         //初始化SPI2        +++++++
    . h) i+ ~2 T: w* F; K+ i
  6.         RCC_APB1PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB1Periph_SPI2 | RCC_APB2Periph_AFIO, ENABLE);       
    " L" ~$ `: }$ m, x2 {& V; C7 J! x
  7.        
复制代码
(2)初始化SCK、MISO、MOSI引脚,把你代码中的引脚改成了GPIOB_13/14/15- K8 O2 f3 h* l& S$ J
  1. /*初始化SCK、MISO、MOSI引脚 ++++++++*/% _7 L0 ?* r7 w/ y
  2.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
    ( |+ c/ F9 \  I( g
  3.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;6 k1 ^4 H. d& e' I4 }4 ^2 G
  4.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    * k: F* }% ?8 ?$ v
  5.         GPIO_Init(GPIOB, &GPIO_InitStructure);
    3 V- M* a( I& f& E- G0 O
  6.         GPIO_SetBits(GPIOB,GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
复制代码
(3)初始化CS引脚,在这里我发现这些引脚使用宏定义的,而且我看到了相关的三个宏,所以我顺便吧这三个宏都改了:
! G3 s2 h& C: ~
  1. //初始化CS引脚
复制代码
  1. /***************----- W5500 GPIO定义 -----***************/4 b7 b7 n" h' B! \# B* O6 ?* d
  2. //#define W5500_SCS                GPIO_Pin_4     //定义w5500的cs引脚(PA4)
    - {  P, @0 q9 R
  3. //#define W5500_SCS_PORT        GPIOA
    0 v2 e2 }/ ?9 \+ S
  4. //        " k5 _/ ?: {) n3 a9 L
  5. //#define W5500_RST                GPIO_Pin_8     //定义w5500的RST引脚(PA8)
    * l5 J+ _) b5 O5 O) k7 o
  6. //#define W5500_RST_PORT        GPIOA
    " I* I* a, \( @. s$ k

  7. - N. ^; l6 p1 N' U
  8. //#define W5500_INT                GPIO_Pin_9     //定义w5500的INT引脚(P9A); A6 y0 c6 S& R2 h
  9. //#define W5500_INT_PORT        GPIOA/ p! B" A( H% u7 O7 m0 {1 I

  10. " T( H+ ^2 t5 h: V" ^2 _
  11. /**********  LSY ----- W5500 GPIO定义----- ************/7 S8 P; k* V) w
  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了)
: B6 M( v! z% [% I
  1. SPI_Init(SPI2,&SPI_InitStructure);   
复制代码
(5)使能SPI1也改为使能SPI2了:
  N/ y: `  I. e6 a; f1 H- k/ n. A
  1. SPI_Cmd(SPI2,ENABLE);       
复制代码
就改了这些,我是漏改了什么吗?跪求楼主大大帮我看看,非常感谢。
, \6 R& s+ y2 ^! N# L6 _8 p" s, i2 j9 g7 {* c$ k8 ?  P8 Q
9 N: M: f2 B$ E
# K( o& m. T1 u) o( t( b; v4 U) E

yinjiaotu

yinjiaotu
jzt2497871470 回答时间:2015-11-19 10:58:20
        if(Read_W5500_SOCK_1Byte(0,Sn_SR) != SOCK_INIT)//如果socket打开失败
- n2 d2 S3 q; L" _( [2 R        {
8 V2 ?8 p: N2 t- b; Y2 l                Write_W5500_SOCK_1Byte(0,Sn_CR,CLOSE);//打开不成功,关闭Socket
' u8 Y( n8 {9 `4 P1 q                return FALSE;//返回FALSE(0x00)6 R) x: t1 w" Z8 Q
        }/ B, L" h1 E8 c9 b
你好, 有人看看 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模块资料

谢谢分享+ N" @( o; c4 h
 
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 手机版