AD7771 高级功能
这是一个高级的功能,至少现在我只是在这个芯片上面见过,用过。
AD7771 有俩种控制方式,PIN 和 SPI 的,使用我说的这个功能,需要 SPI 模式。
相干采样(Coherent Sampling) 参数
它允许用户对采样率进行极精细的调整,以实现与输入信号的相位对齐,避免因采样率误差导致的信号失真或能量泄漏。
在传统 ADC 采样中,如果输入信号的频率与 ADC 采样率(ODR)不完全匹配,会导致:
- 频谱泄漏(Spectral Leakage):信号的能量被扩散到不相关的频率成分。
- 非整数周期截断(Non-Integer Cycle Truncation):如果采样周期不能整除输入信号周期,则会在 FFT 计算中引入误差。
AD7771 通过可编程采样率转换器(SRC, Sample Rate Converter),允许以 15.2 µSPS(微赫兹)的精度调整采样率,从而:精确锁定采样率与信号频率的整数倍关系,消除频谱泄漏;确保信号周期性完整采样,提高 FFT 结果的信噪比。
同样也适用于电力质量分析、电机控制、地震监测等高精度应用
ADI 官方给的使用解读是这个
电力系统中的工频信号(50Hz / 60Hz)往往受 0.01 Hz 级别的漂移 影响。
AD7771 可动态调整采样率,以确保采样点始终与输入信号的波形对齐,满足 IEC 61000-4-30 Class A 标准。
还有就是和频域相关的应用:
机械系统的振动信号频率可能随时间缓慢变化。通过相干采样,可以在不改变 FFT 窗口大小的情况下,确保测量的信号频率对齐。
核心是这个寄存器
AD7771 的相干采样基于 采样率转换器(SRC),允许用户设置 非整数 的采样率,方法如下:
- 设定基准时钟(MOD_MCLK)
- 计算所需的采样率(ODR)
- 通过寄存器 SRC_N_MSB、SRC_N_LSB、SRC_IF_MSB、SRC_IF_LSB 设置 ODR
- 触发 SRC_LOAD_UPDATE 使新采样率生效
- 通过 SYNC_IN 确保所有通道同步
寄存器不算少
- Decimation Rate 为整数部分
- IF 为小数部分,允许 亚赫兹级别的采样率调整
比如目标采样率 = 2.8 kSPS,先设 MOD_MCLK = 2048 kHz
DecimatioRate:
代码语言:javascript代码运行次数:0运行复制2048/2.8=731.4282048 / 2.8 = 731.4282048/2.8=731.428
其中 731 为整数部分,0.428 为小数部分
转换为寄存器值:
- SRC_N_MSB = 0x02
- SRC_N_LSB = 0xDB
- SRC_IF_MSB = 0x6D
- SRC_IF_LSB = 0x91
当然使用的时候是通过结构体设置的:
字体不好看
非常高级的功能,不愧花了我 100 多
代码语言:javascript代码运行次数:0运行复制.pdf
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-04-14,如有侵权请联系 cloudcommunity@tencent 删除芯片fftspisrc同步