|
本帖最后由 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中,增加一行:
- extraargs=usbcore.autosuspend=-1
复制代码 我也是刚查到这个,已经加进去了,需要时间验证。
我用的常规读写测试脚本:
- #!/bin/bash
- i=1
- while [ $i -le 700 ];do
- echo "$i"
- dd if=/dev/zero of=test$i.dd bs=1M count=1024 oflag=direct,nonblock
- dd if=test$i.dd of=/dev/null bs=1M iflag=direct,nonblock
- i=$((i+1))
- done
- 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 |
风清云淡、飘逸悠然……极爽! |
查看全部评分
|