|
TuyaOS
|
ADC,Analog to Digital Converter,模拟/数字转换器,通常是指一个将时间连续、幅值也连续的模拟信号转变为时间离散、幅值也离散的数字信号的电子元件。
A/D转换一般要经过取样、保持、量化及编码4个过程。在实际电路中,这些过程有的是合并进行的,例如,取样和保持,量化和编码往往都是在转换过程中同时实现的。
| 直接 ADC | 并联比较型 ADC |
|---|---|
| 逐次逼近型 ADC | |
| 闪存型 ADC | |
| 间接 ADC | 双积分型 ADC |
分辨率:理论上 ADC 对输入信号的分辨能力,一般有8位、10位、12位、16位等
精度:实际模拟电压与采样电压之间的差值,差值的最大值为绝对精度,差值的最大值与满刻度模拟电压得百分比称为相对误差
转换时间:每次采样所需的时间,表征 ADC 的转换速度,与 ADC 的时钟频率、采样周期、转换周期有关
数据输出方式:并口输出、串口输出
工作电压:需要注意 ADC 的工作电压范围、能否直接测量负电压等;
port_num:ADC 端口号,一个端口对应一个 ADC 实体器件(一般有多个通道),取值如下:| 名字 | 定义 | 备注 |
|---|---|---|
| TUYA_ADC_NUM_0 | ADC 端口 0 | |
| TUYA_ADC_NUM_1 | ADC 端口 1 | |
| TUYA_ADC_NUM_2 | ADC 端口 2 | |
| TUYA_ADC_NUM_3 | ADC 端口 3 | |
| TUYA_ADC_NUM_4 | ADC 端口 4 | |
| TUYA_ADC_NUM_5 | ADC 端口 5 |
cfg:ADC 基础配置,取值如下:
```c typedef struct { TUYA_AD_DA_CH_LIST_U ch_list; // ADC 通道列表 UINT8_T ch_nums; // 需要采集的ADC 通道个数 UINT8_T width; // 分辨率(位宽) UINT32_T freq; // 采样频率 TUYA_ADC_TYPE_E type; // ADC 采样类型 TUYA_ADC_MODE_E mode; // ADC 采样模式 UINT16_T conv_cnt; // ADC 采样次数 UINT32_T ref_vol; // ADC 参考电压(单位:mv) } TUYA_ADC_BASE_CFG_T; ```
``` typedef union { TUYA_AD_DA_CH_LIST_BIT_T bits; UINT32_T data; }TUYA_AD_DA_CH_LIST_U; ```
``` typedef struct { UINT32_T ch_0 : 1; UINT32_T ch_1 : 1; UINT32_T ch_2 : 1; UINT32_T ch_3 : 1; UINT32_T ch_4 : 1; UINT32_T ch_5 : 1; UINT32_T ch_6 : 1; UINT32_T ch_7 : 1; UINT32_T ch_8 : 1; UINT32_T ch_9 : 1; UINT32_T ch_10 : 1; UINT32_T ch_11 : 1; UINT32_T ch_12 : 1; UINT32_T ch_13 : 1; UINT32_T ch_14 : 1; UINT32_T ch_15 : 1; UINT32_T rsv :16; }TUYA_AD_DA_CH_LIST_BIT_T; ```
采集通道列表可以使用bit位操作,也可以通过data操作,两者效果相同。
ch_nums采集的通道数量。
| 名字 | 定义 | 备注 |
|---|---|---|
| TUYA_ADC_INNER_SAMPLE_VOL | ADC 采样内部电压(例如电源电压) | |
| TUYA_ADC_EXTERNAL_SAMPLE_VOL | ADC 采样外部电压(例如外部引脚电压) |
``` typedef enum { TUYA_ADC_SINGLE = 0, ///< Single conversion mode TUYA_ADC_CONTINUOUS, ///< Continuous conversion mode TUYA_ADC_SCAN, ///< Scan mode } TUYA_ADC_MODE_E; ```
| 名字 | 定义 | 备注 |
|---|---|---|
| TUYA_ADC_SINGLE | 单通道采集 | |
| TUYA_ADC_CONTINUOUS | 单通道多次采集 | |
| TUYA_ADC_SCAN | 扫描模式采集 | 可多通道采集 |
conv_cnt指定采集模式下的采集次数。
port_num:ADC 端口号port_num:ADC 端口号port_num:ADC 端口号port_num:ADC 端口号buff:ADC 数据缓冲区len:ADC 数据缓冲区的长度port_num:ADC 端口号ch_id:ADC 通道号data:ADC 数据缓冲区port_num:ADC 端口号buf:ADC 电压缓冲区len:ADC 电压缓冲区长度