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

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

[复制链接]
kangxuebin 发布时间:2014-9-2 10:24
本帖最后由 kangxuebin 于 2017-11-8 17:28 编辑
) q+ \( e+ _' l2 f, p
0 ~5 p; A- M: H& @9 _9 f+ A, Y. I2 Z. e, F

( ^: {: o4 j- ]9 h# }, Q) o! ~) y[资料]STM32以太网入门培训课件
' z) T6 y0 @- u2 N" m& ~0 t3 ^
! `) Y- z: z  i9 z! q" b
从零开始使用 CubeMX 创建以太网工程' t, M" ]; l8 d0 `$ X7 J
TS-W5500模块特点:
& T/ G5 K4 s4 d- A8 }; ^1、尺寸小:5CM*3CM
+ T' L' h( s( g3 v; @2、4层板设计并了TVS等保护IC,差分走线,保障了良好的EMC兼容性$ {3 P6 \% M: c! F; H
3、5V、3V单片机都兼容5 k. I- v" o& }6 W2 M4 q. p
W5500
# ?  Y9 D1 u/ j7 f2 C* @9 Y2 o. yW5500是一款全硬件TCP/IP嵌入式以太网控制器,为嵌入式系统提供了更加简易
( C4 m" R+ `; k9 I+ D# ^! Q3 A的互联网连接方案。W5500集成了TCP/IP协议栈,10/100M以太网数据链路层(MAC)5 p2 J6 k5 H" [% K4 u$ W4 t
及物理层(PHY),使得用户使用单芯片就能够在他们的应用中拓展网络连接。
# @9 C, x' c4 [6 t- \- ?久经市场考验的WIZnet全硬件TCP/IP协议栈支持TCP,UDP,IPv4,ICMP,ARP,IGMP 以
5 t5 r' ~5 t6 a及PPPoE协议。W5500内嵌32K字节片上缓存以供以太网包处理。如果你使用W5500,/ `$ K* s! h; s8 c! s  N* U8 I
你只需要一些简单的Socket编程就能实现以太网应用。这将会比其他嵌入式以太网方案$ p  y8 n! m- q
更加快捷、简便。用户可以同时使用8个硬件Socket独立通讯。
9 M, g* o- Z7 [! D+ ]' JW5500提供了SPI(外设串行接口)从而能够更加容易与外设MCU整合。而且,
2 h3 O  e8 n- ~* K) [5 O3 SW5500的使用了新的高效SPI协议支持80MHz速率,从而能够更好的实现高速网络通讯。
; A& V' X" C* F为了减少系统能耗,W5500提供了网络唤醒模式(WOL)及掉电模式供客户选择使用。
! o6 ?8 F2 l2 |6 l特点
1 L$ [) ?( [# f-  支持硬件TCP/IP协议:TCP, UDP, ICMP, IPv4, ARP, IGMP, PPPoE( b2 L) Q$ O, O
-  支持8个独立端口(Socket)同时通讯0 t2 }$ L- a- h; p$ H
-  支持掉电模式9 c& u" Y! b2 T3 @: ?: D' a6 d
-  支持网络唤醒8 }3 |% ^2 w2 m' Z& D0 G6 H
-  支持高速串行外设接口(SPI模式0,3)1 ~# I; Z! H$ Q( m( I
-  内部32K字节收发缓存
8 J- i% H. I9 ^& ^& ~! z-  内嵌10BaseT/100BaseTX 以太网物理层(PHY)
2 y; H( ^1 i( |# e-  支持自动协商(10/100-Based全双工/半双工)
3 n" ~& y, t9 l+ r* n7 O-  不支持IP分片
( b3 i7 t  u& B5 D3 l2 @% b# z! k1 ^-  3.3V工作电压,I/O信号口5V耐压;
7 ^; c6 l& A' w8 k5 c-  LED状态显示(全双工/半双工,网络连接,网络速度,活动状态)
, U4 y6 v! q  [& q5 {6 d-  48引脚LQFP无铅封装(7x7mm, 0.5mm 间距)2 c- g' X6 M) K: X6 L5 m; \
W5500 数据手册 版本1.0 (2013八月)    3 / 670 L- h- ?1 l  X+ l0 a6 i9 R" {
目标应用
4 m( Z; _! ?1 j: h/ O$ iW5500适合于以下嵌入式应用:
$ I5 Y8 [9 x9 Z! g; M! @, V  H-  家庭网络设备: 机顶盒、个人录像机、数码媒体适配器
4 C3 {- Y0 H2 B1 F3 Q-  串行转以太网: 门禁控制、LED显示屏、无线AP继电器等
9 m# R( }7 z5 L-  并行转以太网: POS/微型打印机、复印机' i9 `2 }+ E; ^! k" S% U
-  USB转以太网: 存储设备、网络打印机
4 A' _: ^" _' x+ O' ^! N3 }-  GPIO转以太网: 家庭网络传感器7 C# N9 _" E: e
-  安全系统: 数字录像机、网络摄像机、信息亭
( y3 D% A3 P! ~9 W-  工厂和楼宇自动化控制系统
1 L, Q1 r3 ?5 r' c9 D$ R6 U$ [  e-  医疗监测设备! O5 k/ g6 Q* |, I. O. T& q
-  嵌入式服务器1 q! H0 r# N! P0 e, v/ V1 [! i
TS-W5500.jpg
5 k: ^  Y  W4 I& ?) K7 I: N 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了,所以是在一个网段的)。跪求楼主大大帮我看看,非常感谢。
8 y8 v& b/ [5 L这是我做的一些修改内容:+ F% m# ^5 o5 U( }: e9 ^
我看到你的引脚是这样连接的:(箭头后面是我改成了这些引脚)8 r5 Z$ v% I8 q* _
*              PA8 -> W5500_RST        ---------->PA15
  x7 t% p* e& l3 h1 N! d- l2 F$ h *              PA9 -> W5500_INT          ---------->PA8   
) C: o5 X0 K9 m) g *              PA4 -> W5500_SCS          ---------->PB12      E0 i* Q/ x" G7 a
*              PA5 -> W5500_SCK          ---------->PB13  6 o5 X+ G+ u+ W) i# ~) x8 r
*              PA6 -> W5500_MISO         ---------->PB14   
+ _; G$ R! H& R. t6 m, c( [% T *              PA7 -> W5500_MOSI        ---------->PB15' C# ^/ n8 U5 `( l. ?! K& B
下面的引脚图是我摘出来的电路图。1 X: }+ @7 T* _+ E* \0 V
这是我改动代码的地方:
* F$ e: B- y: F. U(1)初始化SPI1改为初始化SPI2(因为我用的是PB12、13、14、15,我看到数据手册里这几个引脚是SPI2)! j; G' @9 M# N. U2 r/ O
  1. /*8 }6 n( J8 ~- o: }# G: K8 n
  2.         //初始化SPI1
    " S  |' o6 u1 p
  3.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_SPI1 | RCC_APB2Periph_AFIO, ENABLE);       
    3 ^( u% o6 w1 |
  4. */
    ) f. Y% r, F( U
  5.         //初始化SPI2        +++++++7 ?8 t2 ~! Q9 d0 j$ H0 q
  6.         RCC_APB1PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB1Periph_SPI2 | RCC_APB2Periph_AFIO, ENABLE);        9 M  n6 p0 q6 u0 f" S! L# S
  7.        
复制代码
(2)初始化SCK、MISO、MOSI引脚,把你代码中的引脚改成了GPIOB_13/14/15
% n+ e, H  l8 u4 X9 u
  1. /*初始化SCK、MISO、MOSI引脚 ++++++++*/
      X  c( N" d7 F& S0 W
  2.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
    " H1 I+ p4 q$ K$ H; Y4 N
  3.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;, T, F5 T% F& S& \
  4.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    ( X2 A9 d2 ?5 B3 C) u
  5.         GPIO_Init(GPIOB, &GPIO_InitStructure);2 f  L% ]6 J) ]: ~) h7 d1 J& Z
  6.         GPIO_SetBits(GPIOB,GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
复制代码
(3)初始化CS引脚,在这里我发现这些引脚使用宏定义的,而且我看到了相关的三个宏,所以我顺便吧这三个宏都改了:
3 C2 c. N; I" F' V$ @
  1. //初始化CS引脚
复制代码
  1. /***************----- W5500 GPIO定义 -----***************/
    , `( H5 n5 P& H# q' v
  2. //#define W5500_SCS                GPIO_Pin_4     //定义w5500的cs引脚(PA4)! |; l; W" I9 h, T  n# s
  3. //#define W5500_SCS_PORT        GPIOA& w, @5 f, |: c3 r9 i9 N6 ^, G
  4. //       
    4 Q6 r2 W/ \; F: o6 h
  5. //#define W5500_RST                GPIO_Pin_8     //定义w5500的RST引脚(PA8)
    ; g/ l) y( m) A: `  u+ z& r% P9 t9 e
  6. //#define W5500_RST_PORT        GPIOA
    3 |. {& F- \! p6 n4 Z, ~' g

  7. . ?: s, `- w% q! {; I" H+ a' P1 |
  8. //#define W5500_INT                GPIO_Pin_9     //定义w5500的INT引脚(P9A)
    ( Z0 j5 z* P9 r5 e& S$ a9 _
  9. //#define W5500_INT_PORT        GPIOA) Q6 P7 @: t$ C9 a; |& C6 n7 g

  10. + F( k9 X( O8 L/ ^
  11. /**********  LSY ----- W5500 GPIO定义----- ************/  [7 [( f9 w5 M' {
  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了)4 ]3 U, N+ U* k( G
  1. SPI_Init(SPI2,&SPI_InitStructure);   
复制代码
(5)使能SPI1也改为使能SPI2了:  J' N: Q4 k, B+ \
  1. SPI_Cmd(SPI2,ENABLE);       
复制代码
就改了这些,我是漏改了什么吗?跪求楼主大大帮我看看,非常感谢。7 b6 i. Q; `( m: [, U

# R) u+ ^9 b+ h+ q8 S5 X
6 Z" \+ l7 g/ s! H  _- W' i0 h9 Z5 J! {. E+ G5 |% j& x( O5 y5 s

yinjiaotu

yinjiaotu
jzt2497871470 回答时间:2015-11-19 10:58:20
        if(Read_W5500_SOCK_1Byte(0,Sn_SR) != SOCK_INIT)//如果socket打开失败0 R7 l2 e% o" Z$ W% \1 Q5 l
        {7 M& L4 g% C/ w# Y& @" i$ l( ?
                Write_W5500_SOCK_1Byte(0,Sn_CR,CLOSE);//打开不成功,关闭Socket) t2 h3 s7 t$ }% F
                return FALSE;//返回FALSE(0x00)2 a2 @" F5 l  u4 I( z! N' @
        }
" p/ h4 b. |- P你好, 有人看看 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模块资料

谢谢分享! j7 o6 f8 t& ^& c/ ]
 
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 手机版