找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 41319|回复: 122

【11.02】我家云硬盘供电的三个BUG(掉盘的主要元凶)

 火.. [复制链接]
发表于 2019-10-31 22:30 | 显示全部楼层 |阅读模式
本帖最后由 flippy 于 2019-11-2 11:13 编辑

【关贴结论】我家云掉盘三大原因:
1. 供电部分有BUG(硬改可以解决)
2. 不支持硬盘休眠(修改内核启动参数,或是加入各种定时处理可以解决)
3. 不支持UAS协议(用软件方法可以解决,我自己的内核就没有编译uas驱动,因此不存在该问题)

没看到我的贴,或是不信任我的结论,那是你们的损失,不是我的损失,再见!



[11.02] 700g读写测试做完,共计1400g读写不掉盘,另外经过一整夜,硬盘没有休眠,读写文件秒成功,内核无任何报错

忘了说明:操作系统是Armbian 5.98, 内核是我自己编译的5.3.8, dtb文件也是自己改的。
重启后也不掉盘,16秒启动完成,附dmesg图:

dts文件也加入了各组电压,现在gpio生效了,1欧电阻可以拆掉了



[11.01] 正在做一些测试:
常规的读写,不掉盘, 休眠或睡眠后唤醒,会掉盘(如同楼下一位网友说的),所以只能禁用硬盘休眠了
禁用硬盘休眠的办法,从国外网站找到一种,适合armbian:
在/boot/armbianEnv.txt中,增加一行:
  1. extraargs=usbcore.autosuspend=-1
复制代码
我也是刚查到这个,已经加进去了,需要时间验证。


我用的常规读写测试脚本:
  1. #!/bin/bash

  2. i=1
  3. while [ $i -le 700 ];do
  4.         echo "$i"
  5.         dd if=/dev/zero of=test$i.dd bs=1M count=1024 oflag=direct,nonblock
  6.         dd if=test$i.dd of=/dev/null bs=1M iflag=direct,nonblock
  7.         i=$((i+1))
  8. done

  9. rm -rf test*.dd
复制代码
预计读写各700G,目前已经完成了读和写各135G, 一直正常,速度也很稳定。


先出结论吧,后面再说原因:
电路设计上的3个BUG造成了混乱的结果,电子开关到底是开还是关,根本说不准,APM4953有时会处于半导通状态,或是内阻较高的状态。造成输出端电压不稳,所以有的时候掉盘有的时候不掉盘

BUG1:原厂电路设计是两个反相器驱动PMOS,高电平有效,但PMOS是需要低电平有效的,本来不应该导通,但由于BUG2的存在,掩盖了BUG1
BUG2:  PMOS管APM4953的栅极漏电比较大,又采用了大阻值的g极电阻,因此即使驱动端是高电平,也能歪打正着的导通。
BUG3:第一级反相器并非工作在开关状态,而是处于线性放大状态,这也是造成供电不稳定的原因之一(放大了电源的纹波,直接影响第二级的反相器)
补充:如果有正确的dtb文件,可以由gpio导通第2只三极管,能改善APM4953的工作状态(掩盖BUG1和BUG2),但BUG3仍然存在.所以结论就是即使dtb的问题解决了也必须进行电路改造

解决方案有两种:
1. 去掉APM4953芯片,短接1脚与7、8脚, 短接3脚与5、6脚,这个方案最简单,缺点就是不太美观,而且开机时会对硬盘造成一定的冲击。
2. 改造电路

先看结果图:


对比原图:


两图区别:


PCB走线图示(给某些看不懂电路图的人参考)图中同一种颜色的线指向的焊点都是相连的


电路原理:
原电路(强行把智商提高到厂家设计师的水平才能勉强看懂)


图中R3上端的未知引脚应该是某个GPIO引脚,原设计可能是用这个引脚来导通Q2的(高电平有效),但实测一直是低电平,接近0v,GPIO无效,是因为目前没有我家云专用的 dtb,用的是Rock64的dtb


下面分析原电路为何有问题:
1. 电路结构是PMOS电子开关,有一定的延时(具体延多少时间不知道,也懒得计算了)
2. PMOS电子开关是低电平有效,也就是G极电压低时开关导通,G极电压高时开关关闭
3. 原电路用了两个三极管,两级反相,结果相当于没反相,因此上电以后G极电压是高的(BUG1), 按此电路来看,上电以后开关是永远不导通的,除非Q1的c极断开,并把Q2的b极(依靠GPIO引脚)拉高才能导通。
     问题来了:为何G极电压为高,开关仍然导通呢?
     实际测试:R5(100K)电阻上大约有6.5V的压降,导致vg对地电压大致在5.3V左右,因此vgs(12v)= 5.3 - 12 = -6.7v,可以导通,但另一路vgs(5V)只有0.xv, 为何也能导通感到很奇怪,但事实上两路都是导通的,只能归结为器件本身的特点吧。

     理论上学习过,MOS管输入阻抗是兆欧级别的,可视为无穷大,因此R5上不应该有压降才对(换了IRF9358后证实了此理论,换上9358后,R5压降为0, vgs(12v)为0, vgs(5V)为+7v, 开关不导通。因此说明APM4953本身G极有漏电,才歪打正着把开关给导通了!)这是BUG2,  APM4953的G极漏电电流大约是 6.5v /100k = 65uA
    这种BUG式的导通是有缺陷的,因为g极电压未拉低到0v,所以vgs不够大,即使导通了内阻也是比较大的。实际测试在硬盘读写过程中,5v电压一直有比较大的波动,我这台算是好的,即使波动也能保持在5v以上。
   

4. 原电路的R1(15K),R2(1K),给Q1的b极分压,实测电压vbe大约是0.52v,未达到饱和导通条件(饱和导通时,vbe应该有0.65v左右),所以这又是一个BUG(BUG3),这种设计一般是用在线性放大电路的,而开关电路要么开要么关,这种半开半关的是什么路数?
综上所述,电路设计上的3个BUG造成了混乱的结果,电子开关到底是开还是关,根本说不准,APM4953有时会处于半导通状态,或是内阻较高的状态。造成输出端电压不稳,所以有的时候掉盘有的时候不掉盘

改造后的电路:

改造原理:
1. 两级反相改成一级反相,简单明了
2. 去掉分压电阻R2(1K),让Q2能彻底导通
3. PMOS管换成IRF9358,性能优良

最后,关于电路图中的R3另一端的未知引脚,改造后由于是常通,所以用不到了,10K电阻保留没有副作用。

补充:原电路下,硬盘在读写过程中,5v电压是有波动的,波动幅度大约0.2v左右(2.5寸硬盘,没用到12v),改造之后,波动幅度0.02v左右

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 5恩山币 +6 收起 理由
xunlie + 1 感谢你的分享,无论怎样,你都是最无私的人.
Dinzy + 1 几亿网民,我们俩竟然神奇的在恩山相遇了!来,1分也是分!
czy888 + 1 风清云淡、飘逸悠然……极爽!
tool + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
agemoon + 2 风清云淡、飘逸悠然……极爽!

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-10-31 22:38 | 显示全部楼层
为什么要换成irf9358

点评

不换也可以,但irf9358的性能比apm4953高两倍,可以自己去查pdf.  详情 回复 发表于 2019-10-31 22:43
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-10-31 22:43 | 显示全部楼层
jiguangcarl 发表于 2019-10-31 22:38
为什么要换成irf9358

不换也可以,但irf9358的性能比apm4953高两倍,可以自己去查pdf.

点评

电路图看明白了谢谢。不过掉盘到底指的什么现象?我刷的说是不掉盘的固件,一次拷200多g的文件没有问题。但是系统不熟悉,aria2显示 未连接 不能用, bt下载器下载路径设置后不管用, docker控制器账号密码不知道无  详情 回复 发表于 2019-11-1 03:50
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-10-31 22:46 | 显示全部楼层
技术活,路过帮顶国。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-10-31 22:51 | 显示全部楼层
能分析下原电路掉盘原因吗
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-10-31 23:06 | 显示全部楼层
摩拜大师
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-10-31 23:13 | 显示全部楼层
我只记得大学模电考了59分!

点评

你说的很对,我赞同你的说法。: 5.0
你说的很对,我赞同你的说法。: 5
  发表于 2020-3-4 23:03
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-10-31 23:15 来自手机 | 显示全部楼层
电路分析的很好,但是这只能解决硬盘电源问题,方案一的短接mos和飞线电源是一个效果,实测即使飞线5v和12v到硬盘,一样掉盘

点评

那还有第二招,加电容,在12v和5v的mlcc电容上并联固态电容  详情 回复 发表于 2019-10-31 23:17
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-10-31 23:17 | 显示全部楼层
Mrmay 发表于 2019-10-31 23:15
电路分析的很好,但是这只能解决硬盘电源问题,方案一的短接mos和飞线电源是一个效果,实测即使飞线5v和12v ...

那还有第二招,加电容,在12v和5v的mlcc电容上并联固态电容
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-10-31 23:18 | 显示全部楼层
改造后还会掉盘吗?

点评

还在测试中,暂时没掉,过几天可能有结果。  详情 回复 发表于 2019-10-31 23:20
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-10-31 23:20 | 显示全部楼层
yehgl 发表于 2019-10-31 23:18
改造后还会掉盘吗?

还在测试中,暂时没掉,过几天可能有结果。

点评

hdparm -y休眠 然后唤醒多试几次指定扛不住,不知道你刷的什么系统,开硬盘休眠试试,过段时间sda会成sdb  详情 回复 发表于 2019-10-31 23:24
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-10-31 23:24 来自手机 | 显示全部楼层
flippy 发表于 2019-10-31 23:20
还在测试中,暂时没掉,过几天可能有结果。

hdparm -y休眠 然后唤醒多试几次指定扛不住,不知道你刷的什么系统,开硬盘休眠试试,过段时间sda会成sdb

点评

好像是这样的 我用了原装3A 也用了中央供电的 都会出现sda变sdb了 要重启才行  发表于 2019-11-10 13:02
经过上网搜索,尚不确定是软件原因,有人是电源不稳定导致的,我后面会加上固态电容以及更换电源适配器再测试。  详情 回复 发表于 2019-11-1 00:02
嗯,确实出现了你说的情况,应该是内核驱动的问题  详情 回复 发表于 2019-10-31 23:44
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-10-31 23:39 | 显示全部楼层
本帖最后由 cfanzp 于 2019-11-1 00:10 编辑

那个10K是接去gpio的,用来控制硬盘上电的,论坛上有个大佬分析出了那个gpio的状态,包括硬盘上电,红led,蓝led,风扇pwm。据说短接了硬盘mos还是会掉盘,掉盘的原因是USB > SATA的转接芯片在linux下驱动不完善导致的,去掉那个芯片换成通用性比较好的sata桥就能完美解决。强行短接mos后会导致我家云硬盘没法进入休眠状态,硬盘会一直转。  我家云硬盘电源设计是给低功耗3.5硬盘用的,你接2.5硬盘只用5V电流稍大,不知道会出问题。还是建议用低转速的3.5硬盘,电机驱动会用12V,两路均衡一下,减轻DC-DC负担。   不过看参数确实irf9358比apm4953好很多,手头上有现成9358确实可以换上硬盘电源状态应该会更好。   

点评

短接后仍可以休眠  详情 回复 发表于 2019-10-31 23:46
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-10-31 23:44 | 显示全部楼层
Mrmay 发表于 2019-10-31 23:24
hdparm -y休眠 然后唤醒多试几次指定扛不住,不知道你刷的什么系统,开硬盘休眠试试,过段时间sda会成sdb

嗯,确实出现了你说的情况,应该是内核驱动的问题
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-10-31 23:46 | 显示全部楼层
cfanzp 发表于 2019-10-31 23:39
那个10K是接去gpio的,用来控制硬盘上电的,论坛上有个大佬分析出了那个gpio的状态,包括硬盘上电,红led, ...

短接后仍可以休眠
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-23 17:42

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表