泰山派NAS-原理图和PCB设计经验分享
(免责说明) 本人能力有限,且非电子专业,以下内容仅代表本人学习中的累计经验总结不保证完全100%没有错误,如介意请谨慎阅读或者离开。
未经允许禁止转载,博客地址:saisaiwa.com
1. 器件选型与PCB设计
扩展底板的原理图有6个部分,分别是:
EXP 连接泰山派的扩展接口 39P 0.3mm的FPC
Ethernet 百兆以太网
mSata 支持全高和半高的Sata协议的mSata接口固态硬盘
Power 供电
USB-HUB USB2.0的集线器
IO 从EXP上扩展出来的IO口
1.1 EXP泰山派扩展口FPC连接器
从图中可以看出39脚的FPC插座的1脚是在下面的,泰山派的EXP1脚是在上面的。这样改的目的是因为我们的排线可以使用同向39P,如果你的EXP座子的方向和泰山派保持一致那么你只能使用39P排线选择异面。什么是同面和异面排线不懂的同学可以淘宝搜一下对比就懂了。(本项目使用的是同面)
RK调试排针我们使用POGOPIN弹簧插针,其实两根就够了一根12V一根RTC,GND可以从四根铜柱上走
这里不要从EXP(5V)供电给泰山派,我们的扩展底板需要的电流很大,且泰山派需要的电流也很大 FPC线承受不住。
1.2 Ethernet 百兆以太网
为什么使用百兆而不用泰山派官方扩展板的千兆?
首先如果你没有接触过高速PCB电路板的设计,且没有接触过GMAC的设计。直接上手千兆你大概率会失败。
学习是循序渐进的不是一步到位的,我们先玩速率不高对布线要求不高信号线还较少的百兆以太网。成功后再去玩千兆的设计,这样知其然而之所以然。
笔者目前千兆以太网也调试成功了,在文章后面会分享一下对千兆以太网的设计经验分享(1.7章节)。
1.2.1 芯片选型
LAN8720A-CP-TR
LAN8720A 是低功耗的 10/100M 以太网 PHY 层芯片,IO 引脚电压符合 IEEE802.3-2005 标准,支持通过 RMI 接口与以太网 MAC 层通信,内置 10-BASE-T/100BASE-TX 全双工传输模块,支持 10Mbps 和 100Mbps。
LAN8720A 可以通过自协商的方式与目的主机最佳的连接方式(速度和双工模式),支持 HPAuto-MDIX 自动翻转功能,无需更换网线即可将连接更改为直连或交叉连接。LAN8720A 的主要特点如下:
高性能的 10/100M 以太网传输模块
支持 RMII 接口以减少引脚数
支持全双工和半双工模式两个状态 LED 输出
可以使用 25M 晶振以降低成本
支持自协商模式
支持 HP Auto-MDIX 自动翻转功能
支持 SMI 串行管理接口支持 MAC 接口
选择这款是因为找到的这款芯片支持IO电压可以配置1.8V与泰山派保持一致,在VDDIO引脚配置IO电压输入。
下图中是泰山派的IO电压,可以看到给的是1.8V
名词描述: 千兆为RGMII 我们使用百兆RMII模式。 更多信息请搜索一下
1.2.2 设计点:
- LAN8720芯片的10脚悬空则地址为0x00 (内部下拉)这里会在设备树中配置体现
- 无晶振设计,时钟来源使用RK3566提供时钟输出,设备树为output模式
有晶振的设计反而需要更多引脚配置也麻烦。
- 网口请选择带变压器的一体模块,这里我们选择型号:HR911105A
网络变压器的类型接法分为电压型和电流型
区分网络变压器类型的主要方法是:看其图的中间抽头的连接方式
若其中间抽头连接电容直接到GND,则其为电压型网络变压器。
若其中间抽头连接到VCC(3.3V、5V等)、电容和GND,则其为电流型网络变压器
更多信息请自行搜索。
1.2.3 PCB设计
四层板的设计
官方参考建议:
RMII信号阻抗及走线要求
PHY和RJ45接口布线:当速度要求高时需对Rx±、Tx±差分对进行阻抗控制,通常阻抗控制在100Ω±10%,阻抗匹配
其中TX和RX两对差分,需要对内等长。 不强制要求对外等长。走线越短越好,请保持走线距离。如果条件允许你也可以对外等长,但是没必要为了对外等长打过孔然后走线很奇葩。
以太网芯片和RJ45芯片之间的距离尽可能的近,距离一般不超过5inch
led信号管脚加粗至少10mil以上
变压器引出接地脚至少加粗10~20mil
高速信号换层时需要再附近不超过200mil打地孔增加回流
RGMII信号的发送信号和接收信号不要混合走线,一般同层走线靠近一起走线且分别要进行组内等长,单线阻抗50Ω 走线总长度推荐小于2inch。
MDI走线总长度应小于2inch
MAC控制器的PHY布线:100M的PHY的RMII,非差分,也因为速度不高,请保持50欧姆的单端阻抗,注意需要有完整的地平面参考,不允许参考地平面有其他信号线交叉存在。
注意走线长度需要严格控制PCB走线总长度要求 小于5000mil(5000 密耳=12.7 厘米)。这里包含泰山派从RK3566引出到EXP的长度+FPC排线长度+你的扩展板到LAN8720的长度。
过长的走线或者FPC排线太长会导致无法通讯,连接不稳定,等各种问题。
这里我调试千兆踩了坑买了个10cm的FPC线直接不能用。RGMII改为百兆限制100M能用但是iperf3测试速度上去后直接内核崩溃死机。
如下图所示,RX等长,TX等长即可,不强制要求TX和RX两对必须对外等长。
注意: 由于是RK3566提供时钟给到LAN8720,MCLKINOUT信号的走线我这里选择了带状线,走线内层2,且上下参考两层都有完整地平面周围有密集地过孔包裹。
这里走内层的50欧姆阻抗请选择走线层为内层2重新计算阻抗。
TXD0,TXD1,TXEN,RXD0,RXD1,RXDV,RXER和MCLKINOUT之间等长要求小于300mil
变压器连接走线设计的时候其中变压器的对地电容,MDI的差分信号终端电阻49.9R可以参考下图摆放和走线。
MDIO和MDC信号是配置寄存器用的,你可以理解为I2C不需要特殊走线处理,随便布
还有就是要遵守最小2W原则,至于2W怎么算的请务必百度下学会在继续设计PCB。
·
看到有的设计一体变压器地下做了挖空处理,也有一些开发板并没有做挖空处理。本设计中没有做全挖空处理。有懂的可以解释一下为什么可以不挖空?
完整的PCB布局参考如下图(已隐藏铺铜部分):
参考文章: https://www.waveshare.net/wiki/LAN8720_ETH_Board
https://blog.csdn.net/weixin_46158019/article/details/130939671
1.3 mSata接口设计
mSATA (mini-SATA)是迷你版本SATA
接口,外型和针脚排布与mini PCI-E完全相同,但
针脚信号定义不同,两者互不兼容。
mSata可分为半高和全高两种不同的尺寸
下图中是mSATA的定义
1.3.1 原理图
来看下本项目中的原理图设计如下图:
无特殊情况请保持电路设计一致。
SATA接口的TXP/N,RXP/N 差分信号上串接的10nF交流耦合电容,AC耦合电容建议使用0201封装,更低的ESR和ESL,也可减少线路上的阻抗变化。本设计中采用的是0402封装
1.3.2 PCB布线规则
四层板的设计
TXP/N和RXP/N尽量走在TOP层,必须要换层时,不得超过2个过孔,并靠近信号过孔放置对称的缝合地孔,缝合地孔和信号过孔中心距不得超过30mil,走线拐角尽量用弧线或者钝角,不能为直角或锐角。
TXP/N,RXP/N信号的参考层需要为完整的地平面,避免出现连续的过孔阻断信号的回流路径的情况
AC耦合电容请对称放置并靠近SATA连接座
SATA座子的焊盘和AC耦合电容的焊盘的下方必须挖空一层来保证阻抗的连续性,挖空的大小,不小于封装焊盘尺寸。
总结:
1、阻抗:100Ω±10%
2、按差分形式布线,对内AC电容两端分段等长2mil,收发无等长要求。
3、mSATA3.0信号速率大于5Gbps时,按高速规范设计,伴地孔、过孔隔离、圆弧、Stub最短等原则布线。
4、为减少串扰,同一层其它信号与差分信号线对之间的间距至少为走线相对于参考平面高度的6-10倍,一般控制在5W以上。
5、保持有完整的参考平面,确保阻抗的连续性。
6、mSATA trace远离晶振与clock信号。
7、mSATA signals 与 GND anti-etch 的距离要 >20mils。
8、mSATA3.0焊盘及过孔需做挖空扯理,换层处加地过孔。
参考链接: https://blog.csdn.net/diudiulala/article/details/133919425
电容焊盘底部参考层挖空一层,大小是焊盘的大小。
1.3.3 mSATA CAD尺寸图纸
1.3.3.1 全高版本
1.3.3.2 半高版本
1.3.4 mSATA全高3D文件模型
三星1TB 850 EVO mSATA
有需要此3D模型文件的请留言,或者加入我们的技术交流群获取!
1.4 Power供电
在供电网络这里要保证足够的电压和电流可以驱动泰山派和USB外设的供电需求。既可以支持PD快充头,与普通5V充电头。 介于泰山派所需的电压输入为12V所以我们也设计了升压电路可以稳定在总电源输入在12V。
PD这里设置诱骗12V档位
当然我们还贴心的设计了外接12V供电的需求,例如场景使用DCDC大头直接输出12V接入。
我们对C口输入的电源电压进行升压到稳定12V,即我设置的是PD诱骗12V但不一定所有的充电头都可以完美诱骗12V,例如我的MacBook的充电头只可以诱骗9V即便我设置的是申请12V。
又或者使用电脑供电没有协议只能输入5V电压。
将稳压后的12V再次转换为通用5V电压
转为系统可用电压3.3V 和1.8V
1.5 USB-HUB 2.0扩展坞集线器
这里我使用并不是大家熟知和比较简单的方案SL2.1,介于有传闻说SL2.1传输不稳定掉盘等问题。综合考虑还是稳一些不做小白鼠,使用许多工控机上常用的方案。
USB2514B-AEZC-TR
笔者做了一个验证板方案,有需要想单独想做USB2.0扩展坞的可以去下面的连接:
https://oshwhub.com/yc_chen/usb2514b-hub (USB2514B-USB Hub拓展坞)
1.5.1 原理图
此电路不需要编程配置上电即可直接使用。
原理图中可以看到使用了四个SY6280AAC,但是没有用到开关功能,使用它的原因是限流和保护电路安全。
其他没什么好说的,大家只需要按照图中的阻值一致去设计即可。
1.5.2 PCB设计
USB 90Ω 差分阻抗
HUB这里正常走线即可 无特殊要求, 一般可参考如下布线,在四周放置阻容器件,需要注意的是晶振底部请不要走线,且晶振周围使用密集地孔包围,内部不需要铺铜。
当USB差分信号走线需要换层时,确保走线上的过孔数量少于4个,不得超过6个,并靠近信号过孔放置对称的缝合地孔,缝合地孔和信号过孔中心距不得超过30mil
USB差分对尽可能参考层为完整的地平面,如果无法避免跨不同平面走线,那么必须全程包地处理,包地的走线间隔300mil以内必须有地过孔
在处理USB差分对的时候保持等长即可,USB布线要求不高不离谱即可。
1.6 IO扩展口
我们的IO扩展口是来自泰山派EXP所引出的,因为我们使用的是RMII协议百兆以太网接口所以会有一些接口是被空闲下来了,项目中设计将闲置接口全部都引出。
注意由于泰山派给的这些接口IO电平是1.8V 的电压,此电压大部分外设都不支持所以这里我们做了一个电平转换为3.3V。
背后故事:
其实一开始我的想法是使用这个接口虚拟SPI和I2C来外接屏幕的,不料I2C触摸是没问题但是模拟SPI速率真的太低了,刷屏真的像乌龟一样最终由于时间紧迫只能采用杜邦线直接接到泰山派上使用硬件SPI。虽不美观也是应急之法。毕竟选择了TFT这个屏幕。
1.7 千兆RGMII设计经验分享
千兆和百兆的最大区别在于需要更多的信号线且协议不同使用需要进行扫描中心点坐标进行设备树配置,RGMII的速率更高125M,对PCB走线有一些要求。
笔者设计的千兆口速度如下(工具iperf3):
平均最高速度维持在940Mbit,速度还是不错的很达标了。
1.7.1 原理图
在上图中,我们使用的是一体式网络变压器 HR911131A,请注意不要随便替换,不同的型号引脚位置功能各不同
在原理图中标注红色圈起来的,代表此电容请靠近IC的XX引脚就近放置。
官方RK文档描述:
Ethernet PHY的Reset信号需要用GPIO来控制,GPIO电平必须和PHY IO电平匹配,靠近PHY管脚必须增加100nF电容,加强抗静电能力,注意: RTL8211F/FI的复位管脚只支持3.3V电平;
RTL8211F/FI的INTB/PMEB为开漏输出,外部必须增加上拉电阻,参考图默认使用RK3568 IO内部带的上拉电阻。
PHY使用外置晶体时,晶体电容请根据实际使用的晶体的负载电容值选择,控制频偏在+/-20ppm以内;
RTL8211F/FI的RSET管脚外接电阻为2.49KΩ精度为1%,不得随意修改
MDIO必须外部加上拉电阻,推荐1.5-1.8Kohm,上拉电源必须和电源保持一致;
RTL8211F/FI的变压器中心抽头的连接必须按照参考图接,如果换其它Ethernet PHY,那么变压器中心抽头的连接,建议参考各Ethernet PHY厂家的参考设计,因为不同的PHY厂家会有不同的连接方式;
1000pF隔离电容建议采用高压安规电容,有足够大的电气间隙保证雷击的安全性;
网络变压器高压侧的75 ohm电阻建议采用0805以上的封装;
雷击防护等级达到4KV以上需要增加防雷管,普通的隔离变压器只能满足2KV等级要求;
如果有雷击差分测试要求,MDI差分对间需要增加TVS管;
务必确认RJ45封装和原理图是否一致,RJ45有分Tab down和Tab up,信号顺序刚好是相反,如果使用RTL8211F/FI建议采用Tab down,MDI顺序是顺的;
PHY的初始化硬件配置必须和实际需求匹配。
1.7.2 PCB设计
四层板的设计
先看下总体的PCB布线布局样式
可以看到在RJ45处进行了挖空处理减少高速信号中的串扰。
晶振进行了密集地孔包围,且表面禁止铺铜。RJ45的对地电容放在了附近
(官方定义)以RTL8211F/FI为例,PHY侧的注意点:
晶体电路布局需要优先考虑,布局时应与芯片在同一层并尽量靠近放置以避免打过孔,晶体
走线尽可能的短,远离干扰源,尽量远离板边缘。
晶体以及时钟信号需要全程包地处理,包地线每隔100mil至少添加一个GND过孔,并且必须保
证邻层的地参考面完整。
务必确认RJ45封装和原理图是否一致,RJ45有分Tab down和Tab up,信号顺序刚好是相反。
如果使用RTL8211F/FI建议采用Tab down,MDI顺序是顺的。
网络变压器尽可能靠近RJ45座子,MDI走线不得超过4.5inch
RSET电阻必须靠近RTL8211F/FI的管脚,走线不得超过800mil,远离其它干扰信号。
PHY到网络变压器的MDI差分信号差分阻抗为100Ω ±10%。
PHY到网络变压器的差分信号MDI0+、MDI0-、MDI1+、MDI1-、MDI2+、MDI2-、MDI3+、MDI3-差分对内长度偏差控制在±5mil以内,MDI差分对应严格遵循差分规则走线。例如,必须保持相同的长度、相同的宽度、相同的层和固定的线距,并尽可能保持对称
MDI差分对间线长延迟控制在800mil以内。
MDI0/1/2/3之间空隙:>=3倍线宽
MDI0/1/2/3和其它信号之间空隙:>=4倍线宽。
MDI尽量减少换层过孔,必须要换层时,最多只能打2次过孔,并靠近信号过孔放置对称的地缝合孔。
MDI差分对的参考层需要为完整的地平面,避免出现连续的过孔阻断信号的回流路径的情况
网络变压器高压侧的MDI差分对,走线线宽建议尽量走粗,建议8mil
网络变压器高压侧的75 ohm电阻走线建议25mil以上。
网络变压器中心抽头滤波电容必须靠近网络变压器对应的管脚
PHY芯片电源的去耦电容,都需要尽量靠近PHY芯片各管脚放置,走线时尽量先经过电容焊盘,再到芯片管脚,管脚和电容之间走线长度不得超过100mil
RTL8211F/FI内部自带的DCDC,电感必须靠近芯片管脚,LX走线要尽量短而粗,宽度不小于60mil,长度不得超过200mil,输出电容必须靠近电感,走线时,必须先经过输出电容再到后级。PiN21和Pin3,8,38必须星形分开走线,走线线宽30mil以上
如果PHY IO采用3.3V时VCCIO_PHY和VCC3V3_PHY电源走线必须走星形,走线线宽30mil以上
PHY芯片的中心焊盘必须良好接地,放置的过孔至少保证5X5个0.5*0.3mm的过孔
防雷管的接地必须良好接地,建议不少于3X3个0.5*0.3mm的过孔,否则会降低防雷管作用
网络变压器高压侧的相关器件必须远离PCB板的主地
RJ45接口和网络变压器高压侧属于高压区,禁止覆铜,建议和低压区间隔至少4mm以上
总结
以太网芯片和RJ45芯片之间的距离尽可能的近,距离一般不超过5inch
led信号管脚加粗至少10mil以上
变压器引出接地脚至少加粗10~20mil
高速信号换层时需要再附近不超过200mil打地孔增加回流
MDI信号需要对内差分等长,不需要对外等长。MDI差分100Ω
RGMII信号的发送信号和接收信号不要混合走线,一般同层走线靠近一起走线
且分别要进行组内等长,单线阻抗50Ω 走线总长度推荐小于2inch,最长不超过6inch
MDI走线总长度应小于2inch
MDIO和MDC信号是配置寄存器用的,你可以理解为I2C不需要特殊走线处理,随便布
MCLKINOUT 时钟信号线在布线的时候请与其他信号线保持间距并有条件打地孔包裹处理
看完上面的理论部分,简要分析下笔者设计中的要点
四根MDI差分对要保持组内等长,对外不强制必须等长。
RGMII信号线请按照图中进行分组设置等长规则,单端阻抗50Ω,保持组内等长,组外不限制强制性等长。
(TIP: RX_1是串联22Ω电阻的分割部分,这个不要忘了)
等长的依据请根据CLK信号线为参考,CLK线有条件请在周围打上地孔包围。 在走线RGMII信号线的时候请一定保证阻抗的连续性,参考阻抗层请给一个完整的地平面不要走任何其他信号线。
保持最小2W间距原则,发送信号和接收信号不要混合走线。
走线长度严格限制,走线长度严格限制,走线长度严格限制 重要的事情说三遍
需要严格控制PCB走线总长度要求 小于5000mil(5000 密耳=12.7 厘米)。这里包含泰山派从RK3566引出到EXP的长度+FPC排线长度+你的扩展板到LAN8720的长度。
过长的走线或者FPC排线太长会导致无法通讯,连接不稳定,等各种问题。
这里我调试千兆踩了坑买了个10cm的FPC线直接不能用。RGMII改为百兆限制100M能用但是iperf3测试速度上去后直接内核崩溃死机。
越短越好——
下图是隐藏了铺铜的部分为了更好的展示走线。
评论区