最近在调试RK3568配合RTL8211FSI-CG,调试过程中遇到的一些问题,在此记录一下。
产品形态:单板使用RK3568的核心板通过RGMII于RTL8211进行通讯
问题原因:RTL8211FSI的内部输出电压1.0V和1.8V电平不对,25M波形异常,全都因为外围电路一个磁珠位置摆放错误,引起的RTL8211FSI各种异常情况。
如上图所示的错误位置,由于RTL8211FSI外围电路LX是芯片中DCDC输出的1V,由于B10的位置摆放错误,产生了自激震荡,引起电压的纹波比较大,产生芯片的工作异常。
软硬排查验证:
1. 软件排查:单板测量电源阻抗后,直接上电,发现RK3568通过RGMII无法访问PHY芯片。使用的指令包括mii dump和if config eth0 up指令都验证了,仍然是无法找到PHY芯片
由于总计是3块板子,测量给芯片供电的电压没问题后,三块板子上电,均发生了同样的现象,判断不是代码或者访问的事情,由于RTL8211FSI-CG芯片有MDC和MDIO接口,原本是希望通过读取寄存器看看是不是配置的问题,结果发现并不是,因此排查了硬件。
2. 硬件排查:由于三块板子同样的问题,因此排除芯片本身的批次问题,也同样把图纸发给开发过该芯片的前辈,均没有发现问题,排查方向改为RTL8211FSI-CG芯片的外围电路,电源,时钟,复位,配置等。
2.1 电源部分,
对比该芯片的电源,发现输入端仅需要一个3.3V就能工作,检查3.3V电压在3.21V,供电正常。
排查芯片本身产生的1.0V电压,该位置是芯片自己通过LX输出的1V给到VDDL和AVDDL端,测量电压值,LX=1.1V有问题。
继续排查芯片的1V8,此处电压是芯片给MDC做上拉使用,并且是配置RGMII电平的,测量发现DVDD_RGMII=0.45V,也存在问题。
3. 排查时钟两端的波形
由于使用的25Mhz的无源晶振,发现波形异常,开始时有波形,后续没有25M的波形
4. 排查RSTB复位引脚
怀疑可能是复位的时间不够(同事之前沟通过,由于RST时间不够导致的芯片起不来,最好把RST和INT给到CPU的IO来控制上电时间),导致芯片没有正常启动,根据芯片手册查询,至少要保证最少10ms的时间才行,根据示波器抓到的波形,PHYRSTB引脚给到了924ms时间,因此排查不是复位问题。
5. 分析过程:
经过以上的排查发现,芯片本身的外围电路并不复杂,仅需要一个供电和时钟,并结合合适的复位,芯片就能够正常工作,因此定位问题产生在电源和晶振位置,由于晶体本身是无源器件,怀疑问题就是出现在电源上。
由于芯片本身只有3.3V供电而且并没有问题,因此芯片自身产生的1.8V和1.0V有有过压和欠压的现象,根据手册中给到的电压数值,电压值不符合要求,如果说1.1V电压值超出不算太多,那么1.8V电平欠压严重。将所有和1.8V的电平电压全部断开,让1.8V不接任何负载,结果电压仍然是0.45V。
6. 发现问题和验证
陷入僵局时,冷静下来思考,发现手册中对1.0V有一段这样的描述,并结合网上对RTL8211的硬件调试情况产生的灵感,发现的突破口(结尾附上链接),对1.0V的电压进行纹波测试,发现1.0V的纹波很大!!!
因此,重新核对手册中对1.0V的描述和原理图,发现原理设计中的问题
此处的LX引脚为输出,根据常用的DCDC的设计,电感后端摆放电容进行滤波和储能,结果原理设计时,不注意将电感后端摆放的磁珠,产生了自激震荡,正确位置是磁珠应该摆放在电容后端,因此直接将磁珠改为0R电阻,直接测试电压降低为1V,而且纹波很好。
继续排查后面的1.8V,同样输出正常电压为1.79V,因此问题排除。
总结:
1. 任何比较严重的问题,都要将问题一层一层的剖析排查,一段一段的排除
2. 硬件设计出现的问题,归根到底还是阻容感这些基本器件产生的问题
3. 之前的硬件前辈告诉我,“盗”亦有“道”,每个原理图中的小细节,超图时,搞定出每一块的作用,每个电阻,电容的作用,在大脑里放置每个原件时,都把需要的指标过一下,问几个为什么?
网上搜到的RTL8211FSI的调试记录,帮助很大给几个工程师点赞!!!
https://zhuanlan.zhihu.com/p/668435075
https://blog.csdn.net/qq_43092637/article/details/126133189
https://blog.csdn.net/niewei120/article/details/126520561
大家如果对RTL8211FSI调试过程中产生问题,可以私信交流,会持续查看关注