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

RTL8201网络芯片讲解

[复制链接]
STMCU小助手 发布时间:2021-7-30 13:40
01 基础问题
% B- h. D/ \" R5 e6 ?; e
0 u$ W7 ?6 A6 M7 L. r* P9 \9 n
. b5 X5 N+ R% u# O; @
1.1、芯片数据接口
( w. k7 H2 A1 V
1 _3 |( e$ X9 T( c1 Y

/ B1 ^0 J4 n6 b1 L. f- `& Z- H( K9 ]- Z 1.png - F0 d6 `  j& \; V5 }) l2 }, t, x
0 \3 F: O1 t, n7 `: r$ h  f8 p

$ V7 a  L& v& g8 m$ IRTL8201E(L)是一种单芯片/单端口快速以太网物理接收器,支持MII接口,RMII接口,SNI接口。1 A/ _& [5 \! w
; _4 p5 U& K# q, ^8 ?  }

( P; _4 |$ U0 ZMII接口和RMII接口切换在8.1.1章节有讲到,如下图:+ n1 g: c& g/ L% f

5 O  b; R2 }7 S9 t

2 E3 V7 A* }7 S8 {+ l+ I 2.png
; s8 o) y0 e7 ?
$ t# ]1 S  Q1 X3 d4 R: r7 z
" a8 k* F6 C  N( j/ S+ g# [7 E0 E6 S
选择MII接口,把COL/SNI脚拉低。# ?; G% s2 r* |
. Q, G5 i2 k: K1 {

7 |- n+ N, {( J% y6 |RTL8201E的框图如下5 g, m# ^  D% {: H

/ w- j5 w- C+ K& s# T7 W4 R  R  E

0 g/ o0 L  p2 l* f) C2 v8 W 3.png
& T0 q, \  ]7 u+ [. r6 G8 }
. h! u& v; w" r" v
7 n  m, |8 p# a1 q$ B1 S
和MCU连接的系统框图如下:& u- b. g* ^" P# s

( ^" r( T  ~3 g& b% r- @4 k5 `

: W9 O. L; J* \( t  _+ o3 I 4.png * A# P( O8 h$ o9 k4 x1 @
  H! J8 t8 V$ u# q' S

, ~5 E& i( l  ?: L9 x0 e* [& R①RJ45也就是网口,就是我们常见的网口,如下图:# F" V; n, x- n$ w
6 b9 u) E% j# u0 m1 J
9 |2 q  b! g+ F6 s
5.png 5 a7 |3 @) {% y# ^

2 v$ o- o7 c9 K( O) I& u

9 j/ I5 v' i1 a' F/ e8 b②magnetics,直译磁性元件,这里的通常叫法为:网络变压器。网络变压器又名网络隔离变压器、以太网变压器、网络滤波器,主要有信号传输、阻抗匹配、波形修复、信号杂波抑制和高电压隔离等作用。如下图
' J0 z8 O( J4 f3 D$ \0 U9 Q1 e' b* n7 V4 h$ j
1 s3 B8 N/ @3 [  p
6.png
, C; j% u; g" B
3 H! h) P" ^7 |( y' V9 R1 N! p
1 `" e) h+ u) }+ f1 R0 x2 b
③PHY芯片,中文可称之为端口物理层,PHY连接一个数据链路层的设备(MAC)到一个物理媒介,如光纤、铜缆线或网线等。也就是本文重点讲解的内容,如下图
6 b% w8 I- s5 t- Q* u8 O$ q  y7 N
/ P8 D5 j; z/ J8 O2 ]- E* M, }8 Q
! j1 V) f; t( H( X7 m
7.png
& Y" i; ]% G" l* Y5 s1 u) j
4 g: N: m4 ~9 j4 m8 Z8 {, R
& T+ j4 `2 J2 K
④MAC部分,主要是STM32的ETH外设部分,这方面之前的文章已经讲解过了
5 c- U$ J$ C' s. m' @0 r6 A3 N. W6 z, S8 T# U

* x/ A$ {$ f. W& \2 Q/ F2 C 8.png 9 _2 H) E* k6 Q9 \3 S, ?7 R
: q$ J- ?# {; l6 h9 b
- a% y- l2 w6 z0 K: ~/ B2 z
涉及到的文章有《STM32网络之SMI接口》《STM32网络之MII和RMII接口》《STM32网络电路设计》《STM32网络之MAC控制器》《STM32网络之DMA控制器》《STM32网络之中断》
3 ?# ^- q: j/ _+ T7 V) z: x% c8 p1 x  s$ N5 M. ~: g! O- L3 K
9 k) O2 t6 {4 b+ j% M- n
1.2、芯片地址4 ?' M- X: {, P+ m% w2 K( x* |

( y/ I( Y/ D7 i$ r' g2 I

0 g9 J) m8 S- C2 A: t8 y0 ~MCU如何选择PHY芯片的地址,参看芯片的SMI接口
) P2 _; n. Z* H0 e1 d0 q# Z6 {6 ?: k

8 x' y- c# \$ F4 N" z3 l+ j' z% b( M0 eRTL8201的PHY地址经过两个管脚配置的
* Q4 Q. j' _; o  Y
3 N8 e$ z$ u) h; X
) {3 w% o3 ^2 M8 D% b
9.png 1 `( i7 ]( `, \; o% F! }

/ b/ d4 b6 C, E3 c. D7 e
/ q0 K# s( q4 F
在这里我们看出,这两个管脚和LED灯的管脚是复用的
; L1 r; ~' Z) b2 J: A
1 u$ A9 E0 n1 V% M' b; b+ \

: q* \3 F/ \2 y7 x/ N 10.png
* V  v* W4 W3 S3 |. z- t! L! M6 y8 o0 l, J7 V

; S* S7 I! J0 ~为了减少RTL8201EL的引脚数,LED引脚和PHY地址引脚复用。额外的捆绑考虑和LED使用必须被考虑,为了避免争用。具体的来说,当LED的输出被直接用来驱动LED时,每一个输出驱动的活跃状态依赖于相应的PHAD输入在上电和复位采样的逻辑电平。例如,如图6(左侧)显示,如果一个给定的输入电阻PHYAD拉高,那么相应的输出将被配置为低电平驱动。在右边,我们可以看到,如果一个给定的输入电阻拉低PHYAD然后相应的输出将被配置为一个高电平驱动。PHY地址配置脚不应该直接和VCC或GND相连,但是一个电阻(比如5.1KΩ)拉高或拉低。如果没有LED指示灯,LED的路径组件(LED+ 510Ω)可以被删除。) F8 ]1 f" x0 y% f4 b% |) C
5 y) e* U/ o2 I, q" \! V; z
0 P) I4 _/ V# D
11.png
! ?9 Y, ~6 A* d7 }5 `. l( ~& j$ j. F; F2 A5 Z1 ?$ ^
1 F* r9 E% y1 a
查看PCB得知,我们的控制卡PHY的地址是06 ~# c& ]5 A: y% f" h

" J- q: N5 w2 |, g/ e/ w- j0 Y! p

! z# H! u4 h0 T, X$ ^; s. w1.3、时钟源的选择! g) m/ Z/ x3 T
' X5 I1 g+ G' E; F

' H  E. l* p  A/ {! i+ m+ Q7 \ 12.png ! g! P: F% Y$ M& F3 q: _# {& E

/ T0 h( o- w" h1 S. _& A
; ?+ S! }4 l5 Q9 y$ U  O
CKXTAL2 25MHz晶振输出(25MHzCrystal Output):该引脚提供25MHz晶振输出。当X1用一个外部的25MHz振荡器驱动时该引脚必须悬空。
7 _8 ?# I3 A" n( @1 ?: G/ n+ U9 X2 m1 J; `% I
% {4 P3 |% C) n) [& Q0 b) b/ A1 `
CKXTAL1 25MHz晶振输入(25MHzCrystalInput):该引脚提供25MHz晶振输入。如果使用一个25MHz的振荡器,连接X1到振荡器的输出。参见9.3节对时钟源的说明。
' G* T# A, V. V6 y/ q" I
( s$ n# X2 s! r% H7 ~9 A6 ?

) m6 v1 u% R2 y2 O7 K* a! w  K# } 13.png # d# w( _+ ]9 e- g% n
  g* h- F$ J4 t% K, A% k! q) U

) L: Y) \* c3 X& P我们使用MCU的MCO1提供时钟,查看电路图,X2是悬空的。  \% c. W: x' Y
$ z# o" Y9 G& i8 [

# _0 O0 k1 s# G0 f: \( n7 `4 `+ k& Q& y备注:
, j# X+ {; H" T6 K: G$ E
* I# @* O) i( D" K3 b! n
' C1 ~4 |) v' E! s* y! ^# G! {! l
如果使用25MHz无源晶振,两个脚都需要连接,和MCU的无源晶振连接相同,关于晶振方面知识,可以参考《晶振原理讲解》
( X! k, k  {  R9 L
; f8 Z4 m* ^) v: _0 a- h3 q% o

) @0 G8 D8 }5 o
( o+ L3 D2 p/ @
$ P7 y8 o6 s, t
02 寄存器
- z: O" o$ n* e
' m) O/ ?8 F1 M* x: s. ?6 B

, w8 w- k! O* R! S6 TPHY寄存器是由IEEE802.3定义的,一般通过SMI对PHY进行管理和控制,也就是读写PHY内部寄存器。PHY寄存器的地址空间为5位,可以定义0~31共32个寄存器。IEEE802.3定义了0~15这16个寄存器的功能,16~31寄存器由芯片制造商自由定义。
- S6 R, ]* P2 Z8 w" U1 T( C
. k9 ^6 {, h. @

* Y. V/ e. R% t- C9 ?4 Q寄存器0、寄存器1和寄存器15讲解以及IEEE802.3官方文档,请看《PHY寄存器》
5 d9 |) e5 e+ W1 o- q0 g  |5 x, P$ F

( Y' a8 a2 X) m. |自定义寄存器164 b; g$ Q* ?# Y' X- X- U
获取PHY芯片的链接速度
$ K4 H1 f3 Y$ j4 m! Z9 U# mST官方库文件的驱动在stm32f2x7_eth_conf.h最后部分) V9 O! w8 y3 ~9 V8 |! J: E# }

1 ^1 X/ v6 A+ ~0 S) j
- d: n4 T+ U2 y7 s; V/ O
14.png
7 R5 j4 g( T" ~( f; h3 z7 b0 M% t
, I, C4 r& I" a0 w( e" y

1 n/ X2 R7 B1 Y: O7 iST官方使用的是DP83848芯片,寄存器16可以用来获取芯片的速度,这个寄存器就是DP83848芯片厂家自定义的寄存器,所以在移植STM32官方代码时注意这个问题。
! b9 [6 O$ \) h1 ?, u3 }' L3 s6 R1 L- j, ^4 @$ y3 j3 h! \5 W6 `
( E' N) \! ]+ n, m" t9 R. f7 Q1 {
我们使用的RTL8201芯片也是并不是这样的; d0 f8 e6 t! B5 s" V5 a

8 o3 l1 K: d) p/ E) h

, k9 \. X* s: O+ g寄存器16  Nway设置寄存器
3 ~. _5 G$ [7 I9 T( w% y# U  {: w+ D! U1 N7 P6 a

. D5 n* f% @0 I" G1 \3 O 15.png $ g# h2 h5 M1 H
# m2 x3 @! r. r" {6 z3 a# l1 @
1 K" H) J1 H4 Y. S5 H# ?5 l0 K
翻译成中文如下
; s' [: P  P) L, P其他寄存器并非必须的寄存器,重要的寄存器0和寄存器1已经在《PHY寄存器》讲解过了。1 V- y. I1 R- b2 {) C8 I3 Y
16.png " u! F. \' x, a4 m, t4 J8 f" V# x
RTL8201资料下载:0 h$ a/ F6 X! Y5 W: G1 ]
& B6 Q( W) ~0 w" e  h4 v

2 }+ z% V. v- k1 e" Z. @链接:https://pan.baidu.com/s/1hKQcp9KCyICbTiZRANTiZA
' y; y, o" `" E! S/ U7 }
+ ^+ k* k' z9 v9 r0 w

% f, G! p+ m' n. |; f- ~5 F7 Y提取码:wkr1$ Y+ g7 h2 G( Y. }& N

/ {8 O! t5 G" \
收藏 评论0 发布时间:2021-7-30 13:40

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版