zs666 发表于 2024-1-9 11:30:17

AD的转换时间

请问一下这个stc8H1k08手册中写的10 位 ADC为 500K(每秒进行 50 万次 ADC 转换),说的是我的一次ADC转换时间最短可以1/500K,也就是2us吗?是否可以这样理解呢?



神农鼎 发表于 2024-1-9 13:07:03



一次完整的 A/D 时间含【ADC输入通道的切换时间+采样的时间+关闭采样的时间+固定转换 - ADC/比较器,DMA支持的12位ADC,轨到轨比较器,DAC - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)

zs666 发表于 2024-1-9 14:13:31

神农鼎 发表于 2024-1-9 13:07
一次完整的 A/D 时间含【ADC输入通道的切换时间+采样的时间+关闭采样的时间+固定转换 - ADC/比较器,DMA ...

所以问一下这个500khz对应的2us是ADC 数模转换时间:Tconvert,还是一个完整的 ADC 转换时间为: Tsetup + Tduty + Thold + Tconver?

神农鼎 发表于 2024-1-9 14:32:11

10位ADC的转换时间是固定的 10个 ADC 时钟,
采样时间是可以设置的,尽量设置长些,
自己认真看最新数据手册






梁工 发表于 2024-1-10 14:57:49

本帖最后由 梁工 于 2024-1-10 14:59 编辑

可以这样理解。ADC各个步骤是可以设置时钟数的。


#define      ADC_SPEED      1                /* 0~15, ADC时钟 = SYSclk/2/(n+1) */
#define      RES_FMT         (1<<5)          /* ADC结果格式 0: 左对齐, ADC_RES: D9 D8 D7 D6 D5 D4 D3 D2, ADC_RESL: D1 D0 000000 */
                                                             /*                      1: 右对齐, ADC_RES: 000000D9 D8, ADC_RESL: D7 D6 D5 D4 D3 D2 D1 D0 */

#define CSSETUP                (0<<7)      /* 0~1,ADC通道选择时间      0: 1个ADC时钟, 1: 2个ADC时钟,默认0(默认1个ADC时钟)      */
#define CSHOLD                (1<<5)         /* 0~3,ADC通道选择保持时间(n+1)个ADC时钟, 默认1(默认2个ADC时钟)                                        */
#define SMPDUTY                20            /* 10~31, ADC模拟信号采样时间(n+1)个ADC时钟, 默认10(默认11个ADC时钟)                              */
                                                         /* ADC转换时间: 10位ADC固定为10个ADC时钟, 12位ADC固定为12个ADC时钟.                                 */
页: [1]
查看完整版本: AD的转换时间