一次电路倒灌调试
一次电路倒灌调试
发现问题
板子上有GPIO,发现上电GPIO初始化一直是2.4V,并且有个阶梯。
如图:

GPIO的电路,GPIO_IO2直连SOC,IO2_CH直接到接插件悬空状态。

分析
GPIO默认状态应该是到3.3v的,但是现在是2.4V,先调试这个问题。
分析电路之后,把二极管和上拉电阻都去掉。先看下GPIO被SOC设置的处于什么状态,我看网上说的是浮空状态,然后万用表量了0V,就没多想。然后一直以为电路有问题。
中间我猜测可能是时序问题后延开始200ms
power_ext_3_3: power-ext-3_3 {
compatible = "regulator-fixed";
regulator-name = "power_ext_3_3";
gpio = <&gpio3 RK_PA3 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_power_3_3_ext>;
regulator-always-on;
regulator-boot-on;
enable-active-high;
startup-delay-us = <200000>; // 打开后等待 200ms
vin-supply = <&power_ext_5_0>;
};
然后:


发现先1V再2.4V再3.3v,延时时间和2.4v的持续时间一样。这时候我把GPIO的初始化默认状态的引脚放到 power_ext_5_0 节点里面了。 2.4v就说明是GPIO没有配置为拉高状态,是拉低了。
后来查看datasheet,就是默认拉低的。就是图中的上拉10k和CPU里面的下拉电阻串联分压了,成2.4v了。
然后配置设备树GPIO为默认上拉状态,加到已经引用的pinctrl组里面让他帮助初始化。
<3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up_drv_level_10>,
<3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up_drv_level_10>,
之后编译烧录,发现: 蓝色的是GPIO初始状态,黄色的是3v3的稳压器。

就是现在电压可以了,该解决这个1v的阶梯问题。
这个1V,把所有的1.8V和5.0v的外部供电全部去处,发现还有这个问题,之后把所有的上拉电阻,去一个功能范围的电阻就示波器看一下。之后发现正常了。

然后开始加外部供电,还是正常。说明不是外部其他供电造成的。然后加到PHY,就会出现这个1V,有两个PHY,加一个是0.5v的倒灌电压,两个是1V。
结论
GPIO默认配置问题,以及PHY的电流倒灌。

其中 VCC_ENET1_3V3A 是给PHY后供电的。 实际上是 VCC_ENET1_3V3 倒灌给 VCC_EXT_3V3 。就是CPU MAC和PHY的线路倒灌的。

解决
配置GPIO初始化状态,把PHY的3v3供电R76位置的电阻换成二极管。
本文来自博客园,作者:杨旭0324,转载请注明原文链接:https://www.cnblogs.com/allalonewithyou/p/19213303,个人邮箱:yaonie4444@foxmail.com

浙公网安备 33010602011771号