ZHCSPR9 December 2023 AFE782H1 , AFE882H1
PRODUCTION DATA
该器件使用自定义通道序列发生器来控制 ADC 的多路复用器。ADC 序列发生器允许用户指定转换哪些通道。该序列发生器包含 16 个已编制索引的时隙,而这些时隙具有可编程的启动和停止索引字段来配置启动和停止转换点。
在直接模式转换中,ADC 将启动索引转换到停止索引一次,然后停止。在自动模式转换中,ADC 反复从启动索引转换到停止索引,直到 ADC 停止。图 6-37 显示了该器件中已编制索引的自定义通道序列时隙。
表 6-3 列出了序列发生器的 ADC 输入通道分配情况。
CCS 指针 | 通道 | CONV_RATE | 范围 |
---|---|---|---|
0 | OFFSET | 2560 Hz | VREF |
1 | AIN0 | 可编程 | 可编程 |
2 | AIN1 | 可编程 | 可编程 |
3 | TEMP | 2560 Hz | VREF |
4 | SD0 (VREF) | 2560 Hz | VREF |
5 | SD1 (PVDD) | 2560 Hz | VREF |
6 | SD2 (VDD) | 2560 Hz | VREF |
7 | SD3 (ZTAT) | 2560 Hz | VREF |
8 | SD4 (VOUT) | 2560 Hz |
2 × VREF |
9-15 | GND | 2560 Hz | VREF |
使用 ADC_INDEX_CFG 寄存器选择通道。通道的顺序是固定的,如表 6-3 所示。然后,使用 ADC_INDEX_CFG.START 和 ADC_INDEX_CFG.STOP 选择要转换的索引范围。如果这两个值相同,则 ADC 仅转换单个通道。如果 START 和 STOP 值不同,则 ADC 会循环使用相应的索引。默认情况下,所有通道都配置为转换:START = 0 和 STOP = 8。如果 AIN1 通道未配置为 ADC 输入,则该通道的结果为 0x000。如果通道位于 START 和 STOP 范围内,则转换的最短时间仍分配给 AIN1。如果 START 配置为大于 STOP,该器件会将转换序列解释为 START = STOP。
在直接模式下,每运行一次 TRIGGER.ADC 命令,ADC_INDEX_CFG 寄存器中的每个选定通道都会被转换一次。在自动模式下,ADC_INDEX_CFG 寄存器中选择的每个通道都会被转换一次;只要启用了 ADC,在最后一个通道之后就会重复该循环。在自动模式下,写入 TRIGGER.ADC = 1 会开始转换。写入 TRIGGER.ADC = 0 会在当前通道转换完成后禁用 ADC。在直接模式下,写入 TRIGGER.ADC = 1 将启动序列。当序列结束时,TRIGGER.ADC 将自清零。
执行一次转换至少需要 20 个时钟周期。ADC 时钟来自内部振荡器并经过 16 分频,得到的 ADC 时钟频率为 1.2288MHz / 16 = 76.8kHz,时钟周期 = 13.02μs。
每个内部节点都具有固定的转换速率。引脚 AIN0 和 AIN1 具有可编程的转换速率(另请参阅 ADC_CFG 寄存器)。引脚 AIN0 和 AIN1 也具有可配置的范围。输入范围可以是 0V 至 1.25V 或 0V 至 2.5V,具体取决于 ADC_CFG.RANGE 位。
如果更改了任何 ADC 配置位,建议使用以下序列:
可在 GEN_STATUS 寄存器中监控 ADC_BUSY。
如果 ADC 配置为直接模式 (ADC_CFG.DIRECT_MODE = 1),则在设置要转换的所需通道后,请将 1 写入 TRIGGER.ADC。当序列完成转换时,该位会自清零。该命令会将所有选定的通道转换一次。要启动另一次通道转换,请发送另一条 TRIGGER.ADC 命令。