采样率:如何确定采样率

信息处理 采样
2022-02-23 19:47:51

我有这个ADC,我有这个169p微控制器。系统振荡器时钟频率 (FOSC) 为 8 MHz。

根据 ADC 文档,转换过程需要 16 个周期。所以如果我有 8MHz 的 FOSC,我会得到每秒 8000000/16 = 500,000 个样本的采样率吗?ADC 有 4 个通道,所以我可以将采样率除以 4 吗?500000/4 = 每 16 位 125,000 个样本(2 个前导零,2 个用于通道,12 个用于转换)。

1个回答

这个问题不是特别热门,但答案很简单。查看ADC 数据表第一页的一般说明的第二段:

转换过程和数据采集使用 CS 和串行时钟信号进行控制,使器件能够轻松地与微处理器或 DSP 连接。在 CS 的下降沿对输入信号进行采样,并在此时启动转换。没有与该部件相关的流水线延迟。

在这种情况下, CS指的是 ADC 兼容 SPI 的 4 线串行总线上的片选引脚。每次主机处理器向转换器发起事务时,都会断言该信号。SPI 读取的机制是这样的:

  • SPI 主机(即主机处理器)断言 CS 信号。
  • 如果 SPI 主机有任何数据要写入设备,它会在 MOSI(主机输出,从机输入)信号上以串行方式呈现。从 ADC 的角度来看,这将是 DIN 引脚。
  • SPI 主机开始在 SCLK 引脚上向 ADC 施加时钟信号。这用于同时将数据串行移入和移出 ADC。
  • 对于该 ADC 器件,事务会持续 16 位。之后,主机从 ADC 接收到 16 个串行位,其中包含转换结果。
  • 主机将 CS 引脚置低以结束事务。

因此,在上述时间线中,转换速度受到两个因素的限制:

  1. SPI 时钟速率(因为它决定了提取 16 位需要多长时间)。
  2. ADC 支持的最大转换速率。

上面列表中的#2 非常明确地表示为 1 MHz。#1 取决于主机处理器的功能,可在数据表中找到。具体来说,请看第 166 页的底部:

Bit 0 – SPI2X:双倍 SPI 速度位

当该位被写入逻辑 1 时,SPI 速度(SCK 频率)将在 SPI 处于主模式时加倍(参见表 18-5)。这意味着最小 SCK 周期将是两个 CPU 时钟周期。

数据表中的其他地方指出,此处引用的“CPU 时钟周期”相当于1fOSC. 因此,如果您的处理器的 CPU 时钟频率为 8 MHz,则其最大 SPI 时钟频率为:

fmax,SPI=fOSC2=4 MHz

请记住,这是一个串行总线,每个转换事务有 16 位。因此,最大 ADC 采样率为:

fmax,ADC=fmax,SPI16=0.25 MHz

因此,处理器是这​​里的限制因素;它最多只能支持 250 kHz 的采样率。此外,这是整个 ADC 设备可用的最大吞吐量,因此如果您在 ADC 上使用多个通道,则必须在您使用的通道之间分配这 250 kHz。