LTC2500内置滤波器的群延迟

背景

公司一款产品用到了该32-Bit SAR ADC芯片,测试发现在输入信号剧烈变化(比如信号切断/接通)的情况下,FPGA读出来的前几个采样点是变化前的值。

当内置滤波器选择SSINC,DF(降采样系数)配置成16384时情况尤甚。

定位

群延迟

一开始以为是FPGA内部的DMA FIFO没清空,但FPGA同事说ADC采集逻辑没设置FIFO,收到转换完成(conversion complete)中断就立即将数据从ADC读走并写入CPU侧DDR。

后来FPGA同事阅读datasheet才知道可能是群延迟(Group Delay)的影响,贴上SSINC滤波器的群延迟

可以看到,当DF=16384时,群延迟高达73ms,于是尝试FPGA采集group delay长的时间后再上报数据,观察数据间的关系,可以得出映射函数

c 复制代码
uint32_t get_adc_group_delay(uint8_t filter, uint16_t df /*power, not exponent*/)
{
    uint32_t delay = 0; // unit us

    switch (filter) {
        case ADC_FILTER_SINC1:
            delay = (df + 2) / 2;
            break;
        case ADC_FILTER_SINC2:
            delay = (df * 2 + 1) / 2;
            break;
        case ADC_FILTER_SINC3:
            delay = (df * 3) / 2;
            break;
        case ADC_FILTER_SINC4:
            delay = (df * 4 - 1) / 2;
            break;
        case ADC_FILTER_SSINC:
            delay = (df * 9) / 2;
            break;
        case ADC_FILTER_FLAT:
            delay = (140 * (df / 4)) / 2;
            break;
        case ADC_FILTER_AVG:
            delay = df / 2;
            break;
        default:
            break;
    }
    return delay;
}

可以看出,SSINC滤波器是9个采样点滤出1个点,至于为啥要除以2,先不管。

实测发现问题有改善,但仍未彻底解决。

Settling Time

翻datasheet,发现图29

可以看到,模拟信号(最左侧的黑色粗实线)从0变成1时,不同滤波器的输出从0变成1所需要的采样点数是不一样的,SSINC至少需要7个,稳妥起见,我选择了9,相当于删掉了群延迟公式里的除以2

结果

将群延迟计算公式调整后,实测没再出现过问题。

猜测

除以2可能是因为群延迟的定义吧?

复制代码
Group delay of the digital filter is defined to be the delay to the center of the impulse response

center不是end

相关推荐
helesheng6 天前
采样保持电路分析[原创www.cnblogs.com/helesheng]
adc·模拟电路·采样保持·lf398
智驾7 天前
【瑞萨RA x Zephyr评测】二、ADC模块测试
adc·瑞萨·zephyr·fpb-ra6e2
FPGA小迷弟12 天前
基于FPGA开发高速ADC/DAC芯片笔记
图像处理·fpga开发·数据采集·fpga·adc
Aiah.1 个月前
STM8-S001J3M3ADC采样时间分析
adc·stm32f103c8t6·stm8·stm8s001j3m3·采样周期
云雾J视界1 个月前
模拟与数字的融合:为什么AI推理芯片离不开高性能模拟前端设计?
低功耗·cmos·adc·ai芯片·模拟前端·数字前端
怀民民民1 个月前
关于ADC
单片机·嵌入式硬件·fpga开发·adc·学习总结·模数转化
brave and determined2 个月前
MCU学习Day24——STM32G030多路ADC DMA采集深度解析:完全可配置序列器与不完全可配置序列器的陷阱与抉择
stm32·单片机·嵌入式硬件·dma·adc·hal·多通道采集
sheepwjl2 个月前
《嵌入式硬件(十八):基于IMX6ULL的ADC操作》
单片机·嵌入式硬件·imx6ull·adc
时光の尘2 个月前
STM32外设面试速通:UART、I2C、SPI、DMA、RAM/FLASH与ADC/DAC
stm32·dma·iic·adc·flash·spi·ram