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

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

[复制链接]
kangxuebin 发布时间:2014-9-2 10:24
本帖最后由 kangxuebin 于 2017-11-8 17:28 编辑 ) {* D+ D0 O5 G4 j: R

: D+ m  F, Q/ x2 E& ~: T2 x  d" U1 Q
8 N3 u! y$ t! B! h, h
[资料]STM32以太网入门培训课件$ b) L3 a& w4 ^9 ?
  w& v) [9 q7 a1 L
从零开始使用 CubeMX 创建以太网工程& O, a$ m; Y. r, Z7 j$ V" m
TS-W5500模块特点:' f7 O: D2 i  m) a
1、尺寸小:5CM*3CM  o, b8 y# j3 i
2、4层板设计并了TVS等保护IC,差分走线,保障了良好的EMC兼容性
  B: F6 t( ?5 s! O5 v3、5V、3V单片机都兼容
2 W& n; V6 w! x; ]W5500
7 ~; {' N1 j0 b# D4 DW5500是一款全硬件TCP/IP嵌入式以太网控制器,为嵌入式系统提供了更加简易  d. V( c7 s) k0 W; T
的互联网连接方案。W5500集成了TCP/IP协议栈,10/100M以太网数据链路层(MAC)
  z- O; \  Z0 W0 U及物理层(PHY),使得用户使用单芯片就能够在他们的应用中拓展网络连接。! g2 ?  I+ B4 G4 I$ H1 }3 M( P
久经市场考验的WIZnet全硬件TCP/IP协议栈支持TCP,UDP,IPv4,ICMP,ARP,IGMP 以: k3 @1 a6 ^3 ?0 t6 `# B  d
及PPPoE协议。W5500内嵌32K字节片上缓存以供以太网包处理。如果你使用W5500,& N) V, N; l. {
你只需要一些简单的Socket编程就能实现以太网应用。这将会比其他嵌入式以太网方案* R5 g  w6 a) l% J, \. P! `
更加快捷、简便。用户可以同时使用8个硬件Socket独立通讯。: J6 S: z5 P# T) B/ Y; E2 Z0 E
W5500提供了SPI(外设串行接口)从而能够更加容易与外设MCU整合。而且,
( R3 x7 a4 ^" `# {! e, jW5500的使用了新的高效SPI协议支持80MHz速率,从而能够更好的实现高速网络通讯。
) L7 E' C! c3 k) Z为了减少系统能耗,W5500提供了网络唤醒模式(WOL)及掉电模式供客户选择使用。; {# f0 N) _, i& [% D/ |
特点
0 S/ k1 A! g: }-  支持硬件TCP/IP协议:TCP, UDP, ICMP, IPv4, ARP, IGMP, PPPoE
% F- g. u: ?2 S+ m+ Z/ w2 C-  支持8个独立端口(Socket)同时通讯
# w+ Y+ N4 q( I, Y% i-  支持掉电模式
7 W. C4 Q; R5 A) U, D9 t( @-  支持网络唤醒6 T% @& l6 u1 A! O
-  支持高速串行外设接口(SPI模式0,3)
0 a) w3 x4 k  S0 [9 c( b-  内部32K字节收发缓存, f2 c7 ^5 c4 |! W
-  内嵌10BaseT/100BaseTX 以太网物理层(PHY)7 E- P4 m, s# U/ @  D
-  支持自动协商(10/100-Based全双工/半双工)
" P2 ^9 t- R! F+ D& T' X4 u9 H) I% B-  不支持IP分片8 J  z# x! {' I$ C4 X, k7 N) y2 ?& [
-  3.3V工作电压,I/O信号口5V耐压;+ {  q  i: k) d2 q3 \
-  LED状态显示(全双工/半双工,网络连接,网络速度,活动状态)
; Q- z$ L" P# G% F. u# |$ B-  48引脚LQFP无铅封装(7x7mm, 0.5mm 间距)
+ }& g  K+ u8 O0 o- F' L8 P+ IW5500 数据手册 版本1.0 (2013八月)    3 / 67
; t1 P, `4 M/ X; X# N. `) X目标应用; Z; }6 {1 M9 i! c/ p" w
W5500适合于以下嵌入式应用:
0 }) h* u3 ~$ {: }, t-  家庭网络设备: 机顶盒、个人录像机、数码媒体适配器4 t  ~- q3 X# k* `' a6 H' A- t, W
-  串行转以太网: 门禁控制、LED显示屏、无线AP继电器等" m. w& U1 r7 v; r/ e& g
-  并行转以太网: POS/微型打印机、复印机
4 [1 g, d1 I# e. o! z-  USB转以太网: 存储设备、网络打印机  `7 \7 o' `5 g
-  GPIO转以太网: 家庭网络传感器: N  Z  @( S# a6 d, N6 p
-  安全系统: 数字录像机、网络摄像机、信息亭
; v2 m! P0 l& m8 M( Z4 C-  工厂和楼宇自动化控制系统! _$ E. f: z" \; f
-  医疗监测设备/ h' y6 p0 E9 S5 v& y" z* s+ m
-  嵌入式服务器' p2 |' s6 X( w* s  c/ Y
TS-W5500.jpg
( F! _7 ~; v' v  z( s 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了,所以是在一个网段的)。跪求楼主大大帮我看看,非常感谢。
& }+ D# ~' C. \' E9 l* Q% k" ~# i这是我做的一些修改内容:
! p3 A& h, Q" i+ m我看到你的引脚是这样连接的:(箭头后面是我改成了这些引脚)
' V$ g) Y: I5 C( j+ @ *              PA8 -> W5500_RST        ---------->PA15
7 ^7 Y$ \: k  \* |8 s *              PA9 -> W5500_INT          ---------->PA8   
  o" E# }" _! f# P: }9 f *              PA4 -> W5500_SCS          ---------->PB12    & a+ S6 q7 Y8 [4 k. y
*              PA5 -> W5500_SCK          ---------->PB13  6 M3 J- ^3 L; m8 w% F% J' x* V; N
*              PA6 -> W5500_MISO         ---------->PB14   % M( o2 V1 a; u) Q( t
*              PA7 -> W5500_MOSI        ---------->PB150 F) m% e/ b9 _  u
下面的引脚图是我摘出来的电路图。
- _" Q4 \* L0 Q9 J这是我改动代码的地方:" o$ s# m2 `* |+ b
(1)初始化SPI1改为初始化SPI2(因为我用的是PB12、13、14、15,我看到数据手册里这几个引脚是SPI2)
# l9 J, X' y/ V, {
  1. /*
    % _) x3 ^3 g# o9 Y6 D
  2.         //初始化SPI1 / D- a3 R" l9 A% x4 W
  3.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_SPI1 | RCC_APB2Periph_AFIO, ENABLE);       
    / v* W3 W; `2 R. i8 Z
  4. */
    0 `; C3 U% h3 W' a
  5.         //初始化SPI2        +++++++
    4 J  T2 ^+ c; N4 m9 a- x' j
  6.         RCC_APB1PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB1Periph_SPI2 | RCC_APB2Periph_AFIO, ENABLE);        . J: [. K( e" M  k& M
  7.        
复制代码
(2)初始化SCK、MISO、MOSI引脚,把你代码中的引脚改成了GPIOB_13/14/15
: N8 H- W, b( u+ V, A- B
  1. /*初始化SCK、MISO、MOSI引脚 ++++++++*/6 r, T  I6 w1 t7 O
  2.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
    * A+ I$ B* a9 O1 [4 J
  3.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    : i; ^7 C* `& ?; D9 ~+ ?& Q# m8 k: ^
  4.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;/ J# E  C- O  C' j( q; Y6 ^
  5.         GPIO_Init(GPIOB, &GPIO_InitStructure);4 P+ {# Y& U4 B; T9 P: R
  6.         GPIO_SetBits(GPIOB,GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
复制代码
(3)初始化CS引脚,在这里我发现这些引脚使用宏定义的,而且我看到了相关的三个宏,所以我顺便吧这三个宏都改了:
7 [; P3 i7 m) H; @" t' d( k7 i
  1. //初始化CS引脚
复制代码
  1. /***************----- W5500 GPIO定义 -----***************/
    " v6 X4 Q7 C" |1 d' i. O& w
  2. //#define W5500_SCS                GPIO_Pin_4     //定义w5500的cs引脚(PA4): e# r  J1 W6 d" z9 Y" S3 m: }
  3. //#define W5500_SCS_PORT        GPIOA
    ( T0 a. i0 e( \1 `9 V, q
  4. //        & d5 {8 J* c! X6 T4 T; `. w. p
  5. //#define W5500_RST                GPIO_Pin_8     //定义w5500的RST引脚(PA8)* [2 N- q/ r1 b1 s
  6. //#define W5500_RST_PORT        GPIOA6 q: Z5 k2 R+ Z3 y0 F' U% H5 {7 n
  7. ' `  |; `- w. A- q5 y
  8. //#define W5500_INT                GPIO_Pin_9     //定义w5500的INT引脚(P9A)& R' f) Z" k7 p. q
  9. //#define W5500_INT_PORT        GPIOA
    ' y* b  x& g0 ^  C# _1 H3 X3 H
  10. 4 [* a& e" M: J4 T8 V9 Z& _2 k- E( r
  11. /**********  LSY ----- W5500 GPIO定义----- ************/
    2 T- r/ I0 N5 X: `& i" x$ l$ k
  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了)
1 l/ [7 @: H/ u0 p" H4 ?
  1. SPI_Init(SPI2,&SPI_InitStructure);   
复制代码
(5)使能SPI1也改为使能SPI2了:5 x, _8 R) ?! M6 K! c5 g
  1. SPI_Cmd(SPI2,ENABLE);       
复制代码
就改了这些,我是漏改了什么吗?跪求楼主大大帮我看看,非常感谢。5 c/ \' B/ }8 n, }2 N! ~

; u, O! E9 K. y
: D$ n9 `% U- G8 X! r( q( n
, W  U1 Z7 o1 S

yinjiaotu

yinjiaotu
jzt2497871470 回答时间:2015-11-19 10:58:20
        if(Read_W5500_SOCK_1Byte(0,Sn_SR) != SOCK_INIT)//如果socket打开失败
+ n. ~8 ]% L; e$ m+ @' ~) p' {        {
$ x6 r. G) k) v, p. y" O                Write_W5500_SOCK_1Byte(0,Sn_CR,CLOSE);//打开不成功,关闭Socket
4 M, F6 _2 d; {3 g  Y& c. r0 W6 k                return FALSE;//返回FALSE(0x00)
. B- g8 [& h3 `; g" G5 w* E; M* X5 ~        }# [* u0 d, F  w( E# `
你好, 有人看看 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模块资料

谢谢分享1 ?) P, N" U: e0 r5 x
 
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 手机版