ADC 提供四种转换模式:
- 单通道单次转换
- 可使用 MEMCTL 选择通道
- 所选通道仅采样和转换一次
- 启用硬件均值计算后,执行多次转换
- 单通道重复转换
- 可使用 MEMCTL 选择通道
- 所选通道将被重复采样和转换,直到 ENC 被软件清零
- 如果设置了 TRIG 位,那么需要一次触发来进行下一个转换
- 启用硬件均值计算后,执行多次转换
- 序列通道单次转换
- 可使用 STARTADD、ENDADD 和 MEMCTL 寄存器形成通道组
- 组中的每个通道仅采样和转换一次
- 启用硬件均值计算后,序列期间会在一个通道上执行多次转换
- 即使 ENC 在序列中被清零,也将完成该序列
- 序列通道重复转换
- 可使用 STARTADD、ENDADD 和 MEMCTL 寄存器形成通道组
- 通道组将被重复采样和转换,直到 ENC 被软件清零
- 如果设置了 TRIG 位,那么需要一次触发来进行下一个转换
- 如果 ENC 被清零,则在最后一次转换结束时停止操作
- 启用均值计算后,序列期间会在一个通道上执行多次转换
以下步骤概述了为所需转换模式配置 ADC 的建议过程:
- 使用 CTL1 寄存器中的 CONSEQ 位选择所需的 ADC 转换模式
- 使用 CTL2 寄存器中的 STARTADD 位,为一种序列模式选择用于单次转换或用作第一个 MEMCTL 的 MEMCTLx
- 选定一种序列模式时,使用 CTL2 寄存器中的 ENDADD 位来选择用于该序列最后一次转换的 MEMCTLx
- 使用 CHANSEL 位将 ADC 输入通道分配给相应的 MEMCTLx 寄存器
- 对于序列模式,您必须为配置序列中的每个 MEMCTLx 分配一个 ADC 输入通道
- 使用 CTL1 寄存器中的 TRIGSRC 位选择硬件或软件触发
- 使用 CTL1 寄存器中的 SAMPMODE 位选择自动或手动采样模式
- 如果使用自动模式,则在 SCOMPx 寄存器中设置所需的采样计时器值,并使用 MEMCTLx 寄存器中的 STIME 位选择适当的采样计时器源(SCOMP0 或 SCOMP1)
- 如果使用单通道重复转换或序列转换模式,则对每个 MEMCTLx 寄存器中的 TRIG 位进行编程,以指示是否需要触发来发展到序列中的下一个 MEMCTL
- 设置 CTL1 寄存器中的 ENC 位以启用 ADC 转换
- 下表矩阵描述了基于所选触发和采样模式的 ADC 配置和用法的下一步:
表 15-3 触发和采样模式 ADC 用法矩阵
|
触发模式 |
| SW 触发器 |
事件触发 |
| 采样模式 |
自动 |
- 设置 SC 位以开始采样相位(持续时间由采样计时器决定)
- 一旦采样相位结束,转换便会开始
- 在单通道单次转换中,当转换结束时,ENC 将清零
- 一旦捕获到触发,SC 位就会自动清零
- 对于重复和序列模式,如果在 MEMCTL 中 TRIG 被置位,则需要将 SC 位置位才能继续下一次转换
|
- 硬件触发开始采样相位(持续时间由采样计时器决定)
- 一旦采样相位结束,转换便会开始
- 在单通道单次转换中,当转换结束时,ENC 将清零
- 对于重复和序列模式,ADC 等待硬件触发或根据 TRIG 设置自动开始下一次转换
|
| 手动 |
- 设置 SC 位以开始采样相位(SC 位不会自动复位)
- 将 SC 位清零以结束采样相位并开始转换
- 在单通道单次转换中,当转换结束时,ENC 位将清零
- 此配置不支持重复/序列转换模式和硬件均值计算
|
此配置不支持 ADC 操作 |
- ADC 结果存储在相关 MEMCTL 的 MEMRES 寄存器中(例如,MEMCTL0 结果存储在 MEMRES0 中)。
- 对于重复转换模式,在每次相关的 MEMCTL 转换后,MEMRES 中的结果都会更新
- 对于重复转换模式,将 ENC 位清零以停止 ADC 操作