
基于JMS578的USB转SATA的硬盘盒【已验证】
简介
基于JMS578+VL160的TYPE-C USB3.2 Gen1 转SATA
简介:基于JMS578+VL160的TYPE-C USB3.2 Gen1 转SATA开源协议
:GPL 3.0
描述
一、主控
1.总览
JMS578是一款USB 3.2 Gen 1至SATA 6Gb/s桥接控制器,是面向外部固态硬盘、机械硬盘和光盘的低功耗高性能解决方案。与以前的产品相比,JMS578拥有更高的数据传输速率和更低的功耗,此外,JMS578还是采用两层印刷电路板设计的数据存储解决方案,因此能够提供较节约成本的方案给客户。
2.主要特点
符合第3.2版SATA 6Gb/s电气规范
符合USB 3.0规范、USB大容量存储类(USB Mass Storage Class), BOT规范以及UASP规范
支持USB超高速/高速/全速运行
支持SHA-1/SHA-256 for IEEE-1667摘要计算
支持用于USB 2.0/USB 3.0设备控制器的Vendor VID/PID的外部SPI NVRAM
支持ATA/ATAPI PACKET命令集
提供硬件控制的PWM
3.方框图
二、接口定义
1.传输标准与接口的支持关系
2.Type-C 24Pin
因为需要用到USB3.0(USB 3.2 Gen1)的数据传输 又考虑到C口的数据线更常用 故选用此接口
下图为24Pin Type-C公头和母头的引脚功能及定义
母头/母座
公头/插头
可以很明显看出,插口内的Pin功能相对于中心对称。公头插入母头,无论正反插,引脚功能都完美契合。而且电源VBUS/GND都拥有4个Pin,最大支持5A电流,在保证高速数据传输的同时也提高了电流承载能力。
引脚功能定义
3.SATA
接口定义
数据接口(7针)定义
电源接口(15针)定义
三、硬件设计要点
1.USB3.0设计注意事项
- 阻抗控制: 建议USB3.0的差分阻抗控制90Ω误差10%,USB2.0差分阻抗控制90Ω误差10%。
- 时延控制: 建议USB3.0差分对内需等长设计,误差小于5mil。USB2.0等长误差控制小于10mil。
- 隔直电容: 建议选取0402以下封装电容,容值官方SPEC要求75nF-265nF之间,布局时靠近端子放置。
- 对内交叉: USB3.0 的P/N如果走线上有交差,可以将差分对的P/N交换,USB3允许P/N反转。(切记只是USB3.0 不要把2.0的也交换了!)
2.SATA设计注意事项
- AC耦合电容值10nF(12nF以下) 靠近连接器摆放。对称放置
- AC耦合电容尽量选取小封装器件 至少不大于0402
- STAT的收发耦合电容都放置在连接器端 避免板上的反射传递给设备。
- 100Ω差分阻抗设计
- 收发无等长要求
- 焊盘处及过孔做挖空处理 换层处增加地过孔
- 2对差分信号远离晶振及高速时钟布置
- 要有完整的地参考 保证阻抗的连续性
四、实物测试
手头实在是没有合适的硬盘 就拿了一些拆机的闲置盘
1.希捷机械硬盘 500G(空盘)
说咱有刀具... 放不出来...
2.三星固态硬盘 256G(半盘)
五、关于固件
固件已经附上 这个能用的固件是从买来的易驱线里面复制的 因为固件的问题还以为之前画的双层板有问题 因此才有了这个简陋的四层板版本(指根本不做DCDC和电源管理 直连倒是不容易出错)
实测最新版188.02.00.01不行 上电认不到盘 即使不插硬盘在磁盘管理中仍可看到多出一个硬盘 现象如下图
如果SATA的TX/RX画反也会有"函数不正确"的现象 这种情况可以飞线解决
至于FLASH的话是SPI就行 容量最好是512Kbit(64KB)
如果有闲置的256Kbit或许也可以 就烧录的时候会报错 但是仍然可以使用
六、其它
JMS578+VL160的这个方案完全可以用AMS235或VL716等单芯片方案 但马云网上578和160最便宜的都只要4块钱(还真能用) 这样总成本可以控制在10元左右 也不会比其它方案贵多少(主要是因为还有VL160的存货)
如果对自己焊接没有信心可以先不焊接VL160部分元件 先测试USB2.0是否成功(上电前记得测试有无短路哈)
设计图

BOM


评论