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

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

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

[复制链接]
kangxuebin 发布时间:2014-9-2 10:24
本帖最后由 kangxuebin 于 2017-11-8 17:28 编辑 ) b+ W2 B& Y2 c

& i/ y0 h" @: D0 Y. {: `$ Z
4 u- {1 T6 y7 j3 r4 b
, e  g9 T( J( c6 l[资料]STM32以太网入门培训课件1 ^7 `9 j( i% y; I
( p7 v+ v5 x* i& _9 P7 n
从零开始使用 CubeMX 创建以太网工程
5 R* t' W  ~4 OTS-W5500模块特点:, n8 W' n0 u5 z4 R/ Q+ `
1、尺寸小:5CM*3CM# e; b: F. y& H7 I
2、4层板设计并了TVS等保护IC,差分走线,保障了良好的EMC兼容性
' I4 K! B% N2 Q$ N3、5V、3V单片机都兼容9 A+ G0 a$ W  Y0 T4 M3 N6 s* f
W5500
& \' x2 l4 @; n/ lW5500是一款全硬件TCP/IP嵌入式以太网控制器,为嵌入式系统提供了更加简易: l! |; T# w. q
的互联网连接方案。W5500集成了TCP/IP协议栈,10/100M以太网数据链路层(MAC)
  z9 b2 ?7 F; D' k& k及物理层(PHY),使得用户使用单芯片就能够在他们的应用中拓展网络连接。! Q+ N; y6 j* ?% O8 @( P' M- W
久经市场考验的WIZnet全硬件TCP/IP协议栈支持TCP,UDP,IPv4,ICMP,ARP,IGMP 以8 x8 a- T8 D3 n2 s
及PPPoE协议。W5500内嵌32K字节片上缓存以供以太网包处理。如果你使用W5500,
+ L9 P2 h0 R6 ]- [5 Q' i* C& M. B你只需要一些简单的Socket编程就能实现以太网应用。这将会比其他嵌入式以太网方案
- }, O1 ^. r8 N6 Z$ Q更加快捷、简便。用户可以同时使用8个硬件Socket独立通讯。
+ d3 C  A. A: O  C5 _W5500提供了SPI(外设串行接口)从而能够更加容易与外设MCU整合。而且,
5 E: K% F7 ?& b, z+ b! eW5500的使用了新的高效SPI协议支持80MHz速率,从而能够更好的实现高速网络通讯。
* i6 K* o4 k2 j* N3 h' [0 I为了减少系统能耗,W5500提供了网络唤醒模式(WOL)及掉电模式供客户选择使用。
; j+ P6 t2 t& _) Z+ h特点( c6 q9 |: n! Y! S
-  支持硬件TCP/IP协议:TCP, UDP, ICMP, IPv4, ARP, IGMP, PPPoE3 X9 r1 ?' E2 y; W, ^: p4 V
-  支持8个独立端口(Socket)同时通讯
" q. i9 v! X* q' u-  支持掉电模式
! I1 W" @6 t* _# ?2 u-  支持网络唤醒
3 j% w# M$ c$ U-  支持高速串行外设接口(SPI模式0,3)
6 M5 H) \9 t) s/ f3 @( }2 h-  内部32K字节收发缓存
6 q) H0 i5 M9 ^- s8 g2 S/ G-  内嵌10BaseT/100BaseTX 以太网物理层(PHY)! W+ J9 m- y, L2 X, T
-  支持自动协商(10/100-Based全双工/半双工)
/ p- W8 D: ?. e1 \& B-  不支持IP分片
- {4 y8 j  \/ |# `-  3.3V工作电压,I/O信号口5V耐压;) i# P, m! u1 k, P/ C
-  LED状态显示(全双工/半双工,网络连接,网络速度,活动状态)
$ y. ^5 o, U. G% _: [8 X+ D" G-  48引脚LQFP无铅封装(7x7mm, 0.5mm 间距)
6 h8 x8 i$ S$ I% H# k. rW5500 数据手册 版本1.0 (2013八月)    3 / 67
) j8 F: ]7 E$ s# |$ T% y目标应用* ~) l5 H- J& n( X4 Y: W9 G# P
W5500适合于以下嵌入式应用:$ [; Y! |& N1 t, N4 q/ r
-  家庭网络设备: 机顶盒、个人录像机、数码媒体适配器
4 P, d- q, i: ]! U" D-  串行转以太网: 门禁控制、LED显示屏、无线AP继电器等+ w& _0 j( ~  |' r- G
-  并行转以太网: POS/微型打印机、复印机
) q, H: r& c+ D7 K4 S2 H$ F) w4 K-  USB转以太网: 存储设备、网络打印机" r& Z7 P: b) x- g
-  GPIO转以太网: 家庭网络传感器
1 k$ e5 R" Y1 E1 m/ D9 k" T-  安全系统: 数字录像机、网络摄像机、信息亭
& l# J1 k/ L) {0 e- h-  工厂和楼宇自动化控制系统
: H0 W! K2 d+ ]( o& P8 Q-  医疗监测设备
  R; R" ]* k- V0 U% }. }-  嵌入式服务器; J5 L9 }( S8 e7 f% o2 x6 P  ^
TS-W5500.jpg
7 Q) O% B) I& ?7 \8 _, _2 _ 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了,所以是在一个网段的)。跪求楼主大大帮我看看,非常感谢。
6 S7 l) x- W# J这是我做的一些修改内容:
* B8 T0 D% i% Q2 E我看到你的引脚是这样连接的:(箭头后面是我改成了这些引脚)2 ?( q9 A6 l! J- I2 ~  v
*              PA8 -> W5500_RST        ---------->PA15# T% S: e" D6 b* d( o
*              PA9 -> W5500_INT          ---------->PA8   , U+ `6 Z! H: b' N- z3 E
*              PA4 -> W5500_SCS          ---------->PB12    ' p6 A- _9 Q, |
*              PA5 -> W5500_SCK          ---------->PB13  
* T+ h5 V3 |& C+ p$ z/ } *              PA6 -> W5500_MISO         ---------->PB14   
, ?% r3 w0 Z+ A; z* D3 e *              PA7 -> W5500_MOSI        ---------->PB15# e% {" c" V/ [6 I+ b
下面的引脚图是我摘出来的电路图。
& X- p/ |* w4 {+ ~0 W1 O9 s这是我改动代码的地方:) U# u5 L$ ?1 ^0 o( t1 z
(1)初始化SPI1改为初始化SPI2(因为我用的是PB12、13、14、15,我看到数据手册里这几个引脚是SPI2)
& W  C: Y5 E2 D8 a% R2 E
  1. /*% x+ ?( [- j+ y
  2.         //初始化SPI1 ' r3 \& M) f' R( ]3 n* p( ]
  3.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_SPI1 | RCC_APB2Periph_AFIO, ENABLE);       
    & x9 E# J' s0 B# A4 X) e& f
  4. */
    0 {7 X5 E& X) y( X/ C* C# Y
  5.         //初始化SPI2        +++++++
    ) I/ K, z' t) }; e: W6 T+ [) O6 ~
  6.         RCC_APB1PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB1Periph_SPI2 | RCC_APB2Periph_AFIO, ENABLE);       
    # y  A: \( q/ @* r
  7.        
复制代码
(2)初始化SCK、MISO、MOSI引脚,把你代码中的引脚改成了GPIOB_13/14/155 G$ t; j. p" @
  1. /*初始化SCK、MISO、MOSI引脚 ++++++++*/
    . l9 x- B$ a" ^+ _( E' m# g5 k/ n
  2.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
    % F( S, N  E& D  a6 m* b
  3.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;8 Z4 [6 `) q5 r
  4.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    - y" c5 y* b# l& ~2 X
  5.         GPIO_Init(GPIOB, &GPIO_InitStructure);
    3 W& {) u" N% H" `' f! i
  6.         GPIO_SetBits(GPIOB,GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
复制代码
(3)初始化CS引脚,在这里我发现这些引脚使用宏定义的,而且我看到了相关的三个宏,所以我顺便吧这三个宏都改了:
. g! h/ r# N/ F" O$ U5 l
  1. //初始化CS引脚
复制代码
  1. /***************----- W5500 GPIO定义 -----***************/
      ~! G2 ^& h9 w! P7 _
  2. //#define W5500_SCS                GPIO_Pin_4     //定义w5500的cs引脚(PA4)) L' O  t) W9 l# q) o
  3. //#define W5500_SCS_PORT        GPIOA
    " C* z9 w8 f, K
  4. //       
    - }4 Z: J, n7 c; d! i
  5. //#define W5500_RST                GPIO_Pin_8     //定义w5500的RST引脚(PA8)  j) j+ P  H! ]6 a# {( [* l7 k+ D. @  E
  6. //#define W5500_RST_PORT        GPIOA3 `' {/ S" K4 P  Z- a* w

  7. # \# E% n5 T* ?, b: Y& D$ w! }
  8. //#define W5500_INT                GPIO_Pin_9     //定义w5500的INT引脚(P9A)9 m$ n$ _" N; d8 ?. x9 l, k
  9. //#define W5500_INT_PORT        GPIOA
    . O1 \- Y; R! Y- `8 I# F1 h4 |: T
  10. / Z# W1 l9 ~* |" m' J0 H
  11. /**********  LSY ----- W5500 GPIO定义----- ************/) O: a9 j0 r+ u! T/ W; n- S
  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- N* L0 V9 M+ a. _' b4 j' R
  1. SPI_Init(SPI2,&SPI_InitStructure);   
复制代码
(5)使能SPI1也改为使能SPI2了:
8 C& P. i* S" d' Y& N. \* d7 t
  1. SPI_Cmd(SPI2,ENABLE);       
复制代码
就改了这些,我是漏改了什么吗?跪求楼主大大帮我看看,非常感谢。# [  b: D& {' t. H" Q! V  g# p2 X
# P3 Y. {. ^6 V6 T
, a& J% f4 H, Q

+ E! a( T* o* p: M8 e2 @! G

yinjiaotu

yinjiaotu
jzt2497871470 回答时间:2015-11-19 10:58:20
        if(Read_W5500_SOCK_1Byte(0,Sn_SR) != SOCK_INIT)//如果socket打开失败
; L0 H3 \. O+ X: x        {4 V$ Y3 j% E, H
                Write_W5500_SOCK_1Byte(0,Sn_CR,CLOSE);//打开不成功,关闭Socket9 s5 X. a5 |# a6 O6 r
                return FALSE;//返回FALSE(0x00)
% B( ^# `6 ~& n, P) Q        }/ _. i) L! V0 `$ [6 F+ l
你好, 有人看看 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模块资料

谢谢分享
/ \' W, T4 A: Y4 R% _" j* K2 h; W 
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 手机版