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

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

[复制链接]
kangxuebin 发布时间:2014-9-2 10:24
本帖最后由 kangxuebin 于 2017-11-8 17:28 编辑
. i' M+ d5 m3 X9 \
3 k- ~4 G7 o0 b6 `' L8 m# Y* Y- a$ ^+ }, h9 G* e

+ ^2 e) Q* j0 `! t[资料]STM32以太网入门培训课件
% B& m& R9 K$ Q- t% z3 D. p6 u" ?6 L0 E- S5 p* X
从零开始使用 CubeMX 创建以太网工程、4 L9 t5 m) i% J! ~& G0 H
TS-W5500模块特点:% x( a) X# h' y% B# C
1、尺寸小:5CM*3CM  L! ^4 t( G0 S6 ]5 x$ {
2、4层板设计并了TVS等保护IC,差分走线,保障了良好的EMC兼容性7 x/ J) w. `/ w0 O" i7 A
3、5V、3V单片机都兼容
! U2 y! u# w; YW5500. r- P7 `3 P! ^% r. @5 l4 ]
W5500是一款全硬件TCP/IP嵌入式以太网控制器,为嵌入式系统提供了更加简易
& |; s; {) L# V, Y/ V- g* v# f7 N的互联网连接方案。W5500集成了TCP/IP协议栈,10/100M以太网数据链路层(MAC)
, i0 J! P' O7 n5 t" B及物理层(PHY),使得用户使用单芯片就能够在他们的应用中拓展网络连接。
8 G  u( a& Q/ K( O; \8 I% F  h% U久经市场考验的WIZnet全硬件TCP/IP协议栈支持TCP,UDP,IPv4,ICMP,ARP,IGMP 以! e: c, c9 [  W1 u9 A( B8 A5 D
及PPPoE协议。W5500内嵌32K字节片上缓存以供以太网包处理。如果你使用W5500,- v9 f! j2 ?1 |- D
你只需要一些简单的Socket编程就能实现以太网应用。这将会比其他嵌入式以太网方案
' q( J8 H) L6 K* S6 e4 o更加快捷、简便。用户可以同时使用8个硬件Socket独立通讯。% @% d$ _# ?; X- X/ Q
W5500提供了SPI(外设串行接口)从而能够更加容易与外设MCU整合。而且,
0 U8 k$ b& b( L7 }/ w; X# ]' |W5500的使用了新的高效SPI协议支持80MHz速率,从而能够更好的实现高速网络通讯。
: K3 b2 r% Q$ `为了减少系统能耗,W5500提供了网络唤醒模式(WOL)及掉电模式供客户选择使用。( u0 V5 `& w) f
特点
. {: ?. P% k2 T6 m5 S& X& T- N-  支持硬件TCP/IP协议:TCP, UDP, ICMP, IPv4, ARP, IGMP, PPPoE
  b( y8 E4 k. z; O/ S-  支持8个独立端口(Socket)同时通讯/ }8 _& S2 N& Z# g) Z
-  支持掉电模式
" `% j6 Q' s9 Z- Y1 A-  支持网络唤醒) Z7 K' _; J5 ?3 D) Y+ Y
-  支持高速串行外设接口(SPI模式0,3)% M& C9 G5 [# v0 k$ i
-  内部32K字节收发缓存
0 a7 Q3 X* s8 e' v: ?-  内嵌10BaseT/100BaseTX 以太网物理层(PHY)
7 M1 t2 W1 J; K# [-  支持自动协商(10/100-Based全双工/半双工)
) q3 }& K- C& P/ x-  不支持IP分片
8 `9 m/ }$ {, C$ ~-  3.3V工作电压,I/O信号口5V耐压;
' r9 `6 z; B* k-  LED状态显示(全双工/半双工,网络连接,网络速度,活动状态). R* g6 p& h/ z
-  48引脚LQFP无铅封装(7x7mm, 0.5mm 间距)
1 G. A+ g% A4 uW5500 数据手册 版本1.0 (2013八月)    3 / 67" V& k* _/ k7 R5 ?) }- s7 U+ B
目标应用
6 R* Z& p7 Z0 P% `W5500适合于以下嵌入式应用:) s% B; M0 A! }8 F
-  家庭网络设备: 机顶盒、个人录像机、数码媒体适配器6 \' ?+ [; y' Z# \( Y
-  串行转以太网: 门禁控制、LED显示屏、无线AP继电器等
: C& P' p; c+ I$ `& D2 j% y-  并行转以太网: POS/微型打印机、复印机6 _# M* }6 S7 ^' X7 D9 N5 C, h
-  USB转以太网: 存储设备、网络打印机
0 m4 B3 z- T7 t. r! Y-  GPIO转以太网: 家庭网络传感器+ h% t* I# I5 |; a* E
-  安全系统: 数字录像机、网络摄像机、信息亭
$ X5 C' C2 p+ ^" m-  工厂和楼宇自动化控制系统8 f, q. w1 \% V/ Q  }: E
-  医疗监测设备6 i5 S1 x1 f9 {. p/ f
-  嵌入式服务器4 P) b9 _' t# ^: l- e
TS-W5500.jpg
" |2 |+ o* N1 u. m/ W/ M* D 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了,所以是在一个网段的)。跪求楼主大大帮我看看,非常感谢。
  ?/ S6 y& ~5 @) m( ~这是我做的一些修改内容:
7 W/ G8 E9 b- V( R$ P# J我看到你的引脚是这样连接的:(箭头后面是我改成了这些引脚)
- }" l2 `# V% u  N4 F1 P *              PA8 -> W5500_RST        ---------->PA15  P: D# }1 |. _. f0 r
*              PA9 -> W5500_INT          ---------->PA8   ' ]5 |. b/ @% R: T" ~
*              PA4 -> W5500_SCS          ---------->PB12   
: [; ^- ~3 O- v5 u" A6 Y *              PA5 -> W5500_SCK          ---------->PB13  " ~; S+ K. g% k* t, O+ G
*              PA6 -> W5500_MISO         ---------->PB14   ' Q1 _3 l3 F' j: Z; J, M
*              PA7 -> W5500_MOSI        ---------->PB152 O! y9 b$ y! _! E) r" x4 W
下面的引脚图是我摘出来的电路图。6 T% g* R" L, O8 P8 i( K  ]9 a
这是我改动代码的地方:' _& m3 m" ^+ i1 g" o: w
(1)初始化SPI1改为初始化SPI2(因为我用的是PB12、13、14、15,我看到数据手册里这几个引脚是SPI2), z1 x- B7 {; j/ I
  1. /*
    2 ]6 I2 v; y; U5 R3 `
  2.         //初始化SPI1 7 u# Y; C7 `) W& U9 N" A
  3.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_SPI1 | RCC_APB2Periph_AFIO, ENABLE);       
    3 |) L% [) K7 G& i
  4. */3 D$ }) J7 ^+ L  a; Z; d5 E0 ^
  5.         //初始化SPI2        +++++++1 ^  f/ g& X+ I
  6.         RCC_APB1PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB1Periph_SPI2 | RCC_APB2Periph_AFIO, ENABLE);        $ @: m& _3 _- g/ j; ^
  7.        
复制代码
(2)初始化SCK、MISO、MOSI引脚,把你代码中的引脚改成了GPIOB_13/14/15
4 s, D% \) t% B! z/ Q0 s
  1. /*初始化SCK、MISO、MOSI引脚 ++++++++*/
    : z" k6 a& p4 }  d+ }4 g' d- R; |
  2.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;# O# b& `, W2 ]2 O
  3.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    ! H! L' L3 j( L/ o
  4.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    $ ~: p% r) ^& A7 `
  5.         GPIO_Init(GPIOB, &GPIO_InitStructure);
    ; U: b/ A, R# y# Q' w, m
  6.         GPIO_SetBits(GPIOB,GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
复制代码
(3)初始化CS引脚,在这里我发现这些引脚使用宏定义的,而且我看到了相关的三个宏,所以我顺便吧这三个宏都改了:
' n! X  G1 [) Y( `; h
  1. //初始化CS引脚
复制代码
  1. /***************----- W5500 GPIO定义 -----***************/
    ) w9 W! E( j% f. l. j. P
  2. //#define W5500_SCS                GPIO_Pin_4     //定义w5500的cs引脚(PA4)
    * F* H  _% j2 J. o
  3. //#define W5500_SCS_PORT        GPIOA
    / p2 n: y! i: Y
  4. //        5 u3 O8 V2 @+ O. {  v% ^. \3 i. b
  5. //#define W5500_RST                GPIO_Pin_8     //定义w5500的RST引脚(PA8)
    ; r( `3 t% }1 L/ b  [- W1 x# C
  6. //#define W5500_RST_PORT        GPIOA
    8 d3 \. c; }2 W: n

  7. . \9 D. n3 y. Y
  8. //#define W5500_INT                GPIO_Pin_9     //定义w5500的INT引脚(P9A)8 u7 X: E5 ~% a0 y
  9. //#define W5500_INT_PORT        GPIOA! q- F4 V: g  d0 F& ]& V

  10. 9 W4 n; D& S8 S
  11. /**********  LSY ----- W5500 GPIO定义----- ************/
    " E+ D8 m) \8 u. e! F6 o5 V
  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了)  n. A: W/ Y- y1 a: v) T4 p9 b5 s
  1. SPI_Init(SPI2,&SPI_InitStructure);   
复制代码
(5)使能SPI1也改为使能SPI2了:% o/ X4 o3 s+ f% F& n1 s
  1. SPI_Cmd(SPI2,ENABLE);       
复制代码
就改了这些,我是漏改了什么吗?跪求楼主大大帮我看看,非常感谢。
4 b! X8 e3 {0 G: m; W; N6 g- c9 {2 x
5 s' z0 n) B( j- f' ^
* i+ B/ ?; C* }

yinjiaotu

yinjiaotu
jzt2497871470 回答时间:2015-11-19 10:58:20
        if(Read_W5500_SOCK_1Byte(0,Sn_SR) != SOCK_INIT)//如果socket打开失败
4 G& C9 R# s. S, V5 r        {
7 g$ H( f$ j8 ]$ D/ Y5 T4 n- N                Write_W5500_SOCK_1Byte(0,Sn_CR,CLOSE);//打开不成功,关闭Socket
7 }8 p8 I8 w2 D# c* |1 ]                return FALSE;//返回FALSE(0x00)
3 }( b: S( o" i) l+ B        }, d5 K% o( `* u$ h" f
你好, 有人看看 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模块资料

谢谢分享, Z: J$ P! c6 p
 
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管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版