之前的文章呢,解读了一下华为的ADC,后面又拿到了最新的手册,我觉得里面有意思的东西还是很多的,感觉可以写一点小文章(也算是学习之余的娱乐了)
事实上,现在除了超级快的接口使用LVDS或者是JD什么什么,现在绝大多数都是使用了SPI,或者是相关的一些衍生版本:
重启必须有,参考我以前的确定事件的论述,剩下就是一个SPI的标配,接着是数据这里,8个就是一个字节嘛,后面又是时钟和中断线。
芯片上电后默认处于 寄存器配置模式:
切换至转换模式:向 寄存器地址 0x002
写入 0xA5A5
切换回配置模式:向 0x002
写入 ≠ 0xA5A5 的任意值
|
|
|
---|---|---|
|
|
|
|
0x002 可写 |
|
整个过程是这样的:
配置阶段(SPI配置模式):
上电 → 等待稳定 → 硬复位(RSTN);写入寄存器完成参数配置(增益、输出格式、Lane数等)。
启动转换(转换模式):写 0xA5A5
至 0x002
;配置 CNV 上升沿 → 启动一次采样;等待 BUSY 下降或 tCONV 时间后开始读取
读取数据:拉低 CSN;主控提供 SCK(SPI模式)或等待 SCKOUT(回波/主时钟);按 Lane 数读取数据位宽(如 4 Lane × 8bit = 32bit)。
华为叫这个是QSPI,这对吗?
以前的QSPI都是储存,但是这里并非用于存储访问,而是用于高速 ADC 数据回读,每次转换输出数据位宽 24bit/32bit;可用 SDO0~SDO7 多 Lane 并行输出,提高吞吐;主控只需拉低 CSN + 提供时钟(或等待时钟输出)即可读取;
实际最大吞吐可达:

这是所有的引脚
|
|
---|---|
|
|
|
|
|
|
|
|
|
|
另外AC9610D-24 支持3 种 SPI 时钟模式,可用于不同的系统主控架构和隔离要求:
|
|
|
|
|
---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
看个随笔的版本:
|
|
|
|
|
---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
这片子的场景肯定是很精密的场景,所以需要做很好的隔离,但是这个时钟在隔离器件这里就有不少头疼的地方,所以这也是文章有意思的地方。
SPI 时钟模式(默认)
外部主控提供 SCK;SCK 下降沿输出(SDR 模式);
BUSY_SCKOUT 引脚:用于输出 BUSY 信号(可用于同步转换完成);
数据输出格式:1、2、4 Lane 可选,默认 1-Lane。
可通过 BUSY 引脚判定数据转换完成;最简单对接 MCU(简单nm)。
回波时钟模式(Echo Clock Mode)
外部 SCK;芯片内部复制 SCK → 输出到 SCKOUT(BUSY_SCKOUT 引脚);数据输出同步 SCKOUT 上升沿(SDR)或双边沿(DDR);BUSY 信号失效(SCKOUT 用作时钟)
(主控)打拍子,但 ADC 不直接听,而是“学着主控”的节奏自己再拍一遍(ADC 复制 SCK 为 SCKOUT)。然后我们就按照 ADC 的回拍节奏来收它的数据。
主控提供原始时钟 SCK;ADC 回传一个节奏 SCKOUT,主控听它的再读数据。
我觉得可以叫:节奏“回声反馈”模式 更加的通俗,适合中间有“墙”(比如光耦隔离器)——你拍了它回给你,确保节奏没偏;但你看不到它是不是“还在写”(BUSY 信号被占用)。
这种模式适用于数字隔离器系统;保证数据输出同步性,无需 MCU 时钟与采样精准对齐。
主时钟模式(Host Clock Mode)
芯片内置振荡器 + 分频器;SCKOUT 由芯片内部提供(无需外部时钟);数据同步 SCKOUT 输出,支持 SDR / DDR;BUSY 无法使用。主机无需控制时钟,仅需拉低 CSN → 自动输出数据;极简设计,适合主控能力弱、超低功耗主控系统;可通过 OSC_DIV
选择分频因子(如 ÷1、÷2、÷4、÷8)控制时钟频率。我称为到访天罡!
数据总线宽度
|
|
|
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
使用多 Lane 可降低单路 SCK 频率 → 降低 EMI;配合回波/主时钟模式效果更优,适合高速隔离数据系统。
采样控制 & 数据读取时序(CNV 控制)
CNV 管脚上升沿启动一次采样 + 转换过程;转换完成时间(tCONV)约为 430 ns;CSN 拉低时输出当前采样值(必须等待 BUSY 拉低或 tCONV 时间后);推荐读取窗口避免 CSN 穿越 CNV 上升沿);
CNV 信号需具备低抖动特性,否则会影响 ADC 精度;如果使用外部隔离,建议使用回波/主时钟模式保证同步性;
状态同步 & 控制机制引脚
|
|
|
---|---|---|
|
|
|
|
|
|
|
|
|
如何连接这颗芯片
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
最后我要说一点的是 :在回波模式下ADC 内部用这个 SCK 驱动输出数据 → 然后自己再吐回一份延时匹配好的时钟(SCKOUT)主控用这份 “同步对齐”的时钟 采数据 → 保证可靠
|
|
|
---|---|---|
SCK |
|
|
SCKOUT |
|
|
SDO |
|
|
CSN |
|
|
因为在实际高速/隔离系统中,主控 → ADC 的 SCK 信号:经过光耦、PCB trace、驱动器等,可能会产生 延时、失配、抖动,主控如果用原始 SCK 采 ADC 的输出数据(SDO),有可能出现 setup/hold time 不满足。