ADC¶
功能介绍¶
芯片集成了一个12位的ADC,其主要特点如下:
- ADC分辨率为12-bit;
- 采样率可达1MSPS(一次转换需15cycles,所以若要达到1MSPS的采样速率,必须保证时钟频率为15MHz);
- 6通道单端输入,注意芯片上只引出了通道2-通道5,通道0和通道1为芯片内部使用,用户无需配置;
- 1MSPS时,工作电流450μA;关闭时电流小于1μA;
- 具有单次采样和连续采样模式,采样模式时序如下图所示。
寄存器映射¶
ADC寄存器映射的基地址为0x40002000,具体的寄存器映射见表A-1。
偏移量 | 名称 | 位宽 | 类型 | 复位值 | 描述 |
---|---|---|---|---|---|
0x00 | ADCCTRL | 32 | R/W | 0x00000000 | ADC控制寄存器 |
0x04 | ADCINTMASK | 16 | R/W | 0x0000 | ADC中断屏蔽寄存器 |
0x08 | ADCINTFLG | 16 | RO | 0x0000 | ADC中断标志寄存器 |
0x0C | ADCINTCLR | 16 | WO | 0x0000 | ADC中断清除寄存器 |
0x10 | ADCSOFTSOC | 16 | R/W | 0x0000 | ADC软件触发寄存器 |
0x14 | ADCSOCCTRL | 32 | R/W | 0x00000000 | ADC转换控制寄存器 |
0x18-0x24 | ADCRESULT2-ADCRESULT5 | 16 | R/W | 0x0000 | ADC转换结果寄存器 |
0x38 | CH0PERIOD | 16 | RO | 0x0000 | 通道0采样周期 |
0x3C | CH1PERIOD | 16 | R/W | 0x0000 | 通道1采样周期 |
0x40 | CH2PERIOD | 16 | R/W | 0x0000 | 通道2采样周期 |
0x44 | CH3PERIOD | 16 | R/W | 0x0000 | 通道3采样周期 |
0x48 | CH0MINVALUE | 16 | R/W | 0x0000 | 通道0下限阈值 |
0x4C | CH0MAXVALUE | 16 | R/W | 0x0FFF | 通道0上限阈值 |
0x50 | CH1MINVALUE | 16 | R/W | 0x0001 | 通道1下限阈值 |
0x54 | CH1MAXVALUE | 16 | R/W | 0x0FFF | 通道1上限阈值 |
0x58 | CH2MINVALUE | 16 | R/W | 0x0001 | 通道2下限阈值 |
0x5C | CH2MAXVALUE | 16 | R/W | 0x0FFF | 通道2上限阈值 |
0x60 | CH3MINVALUE | 16 | R/W | 0x0001 | 通道3下限阈值 |
0x64 | CH3MAXVALUE | 16 | R/W | 0x0FFF | 通道3上限阈值 |
0x68 | ADCSTAT | 16 | R | 0x0000 | ADC状态寄存器 |
0x6C | ADCCTRLa | 32 | R/W | 0x00000000 | ADC控制寄存器a |
0x70 | ADCRSTN | 32 | R/W | 0x00000000 | ADC复位配置寄存器 |
0x74 | ADCOFFSET | 32 | R/W | 0x00000000 | ADC偏移校准寄存器 |
0x78 | ADCLOADEN | 32 | R/W | 0x00000000 | ADC装载寄存器 |
0x7C | ADCPWRRDY | 32 | R/W | 0x00000000 | ADC复位状态寄存器 |
0x80 | CH4PERIOD | 16 | R/W | 0x0000 | 通道4采样周期 |
0x84 | CH5PERIOD | 16 | R/W | 0x0000 | 通道5采样周期 |
0x88 | CH4MINVALUE | 16 | R/W | 0x0000 | 通道4下限阈值 |
0x8C | CH4MAXVALUE | 16 | R/W | 0x0FFF | 通道4上限阈值 |
0x90 | CH5MINVALUE | 16 | R/W | 0x0000 | 通道5下限阈值 |
0x94 | CH5MAXVALUE | 16 | R/W | 0x0FFF | 通道5上限阈值 |
ADC控制寄存器(ADCCTRL)¶
偏移量:0x00
复位值:0x00000000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
31:24 | Reserved | 0x00 | R/W | 保留 |
23 | CH3MAXEN | 0 | R/W | CH3采样结果阈值上限中断使能 0:关闭 1:开启 |
22 | CH2MAXEN | 0 | R/W | CH2采样结果阈值上限中断使能 0:关闭 1:开启 |
21 | CH1MAXEN | 0 | R/W | CH1采样结果阈值上限中断使能 0:关闭 1:开启 |
20 | CH0MAXEN | 0 | R/W | CH0采样结果阈值上限中断使能 0:关闭 1:开启 |
19 | CH3MINEN | 0 | R/W | CH3采样结果阈值下限中断使能 0:关闭 1:开启 |
18 | CH2MINEN | 0 | R/W | CH2采样结果阈值下限中断使能 0:关闭 1:开启 |
17 | CH1MINEN | 0 | R/W | CH1采样结果阈值下限中断使能 0:关闭 1:开启 |
16 | CH0MINEN | 0 | R/W | CH0采样结果阈值下限中断使能 0:关闭 1:开启 |
15:13 | Reserved | 0x0 | R/W | 保留 |
12 | INTSEL | 0 | R/W | 中断产生条件选择 0:每次采样结束都产生中断请求 1:采样值异常(超过阈值)时产生中断请求 必须在监测模式下,即ADCCTRL[8]配置为1时,此位才能被配置为1 |
11:9 | Reserved | 0x0 | R/W | 保留 |
8 | PERIODEN | 0 | R/W | 周期监测使能(只能工作于单次采样模式下) 0:关闭 1:开启 |
7 | CH3EN | 0 | R/W | 通道3周期监测使能 0:关闭 1:开启 |
6 | CH2EN | 0 | R/W | 通道2周期监测使能 0:关闭 1:开启 |
5 | CH1EN | 0 | R/W | 通道1周期监测使能 0:关闭 1:开启 |
4 | CH0EN | 0 | R/W | 通道0周期监测使能 0:关闭 1:开启 |
2 | Reserved | 0 | R/W | 保留 |
1 | CONTEN | 0 | R/W | 连续转换使能 0:单次转换模式 1:如果SOCSOFT位保持为高,则ADC连续转换 |
0 | ADCEN | 0 | R/W | ADC电路使能 0:关闭ADC 1:正常工作(置1后需等待3个AD cycle) |
ADC中断屏蔽寄存器(ADCINTMSK)¶
偏移量:0x04
复位值:0x0000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
15:1 | Reserved | 0x0000 | R/W | 保留 |
0 | EOC_INT_EN | 0 | R/W | ADC中断屏蔽位 0:不屏蔽 1:屏蔽 |
ADC中断标志寄存器(ADCINTFLG)¶
偏移量:0x08
复位值:0x0000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
15:4 | Reserved | 0x000 | RO | 保留 |
3 | ADCFLG3 | 0 | RO | ADC通道3转换完成中断标志位,高有效 |
2 | ADCFLG2 | 0 | RO | ADC通道2转换完成中断标志位,高有效 |
1 | ADCFLG1 | 0 | RO | ADC通道1转换完成中断标志位,高有效 |
0 | ADCFLG0 | 0 | RO | ADC通道0转换完成中断标志位,高有效 |
ADC中断清除寄存器(ADCINTCLR)¶
偏移量:0x0C
复位值:0x0000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
15:9 | Reserved | 0x00 | WO | 保留 |
8 | ADCINT_CLR | 0 | WO | 清除所有通道中断标志,高有效 |
7:4 | Reserved | 0x0 | WO | 保留 |
3 | ADCCLR3 | 0 | WO | ADC通道3转换完成中断标志清除,高有效 |
2 | ADCCLR2 | 0 | WO | ADC通道2转换完成中断标志清除,高有效 |
1 | ADCCLR1 | 0 | WO | ADC通道1转换完成中断标志清除,高有效 |
0 | ADCCLR0 | 0 | WO | ADC通道0转换完成中断标志清除,高有效 |
ADC软件触发寄存器(SOCSOFTCTRL)¶
偏移量:0x10
复位值:0x0000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
15:1 | Reserved | 0x0000 | R/W | 保留 |
0 | SOCSOFT | 0 | R/W | ADC开始转换 0:无动作 1:ADC开始转换 |
ADC转换控制寄存器(ADCSOCCTRL)¶
偏移量:0x14
复位值:0x00000000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
31:15 | Reserved | 0x00000 | R/W | 保留 |
14:12 | SHTIME | 0x0 | R/W | 采样保持时间选择: 0:SOC长度为1个AD_CLK cycle 1:SOC长度为2个AD_CLK cycle 2:SOC长度为3个AD_CLK cycle 3:SOC长度为4个AD_CLK cycle 4:SOC长度为5个AD_CLK cycle other:invalid value |
11:8 | Reserved | 0x0 | R/W | 保留 |
7:5 | CHSEL | 0x0 | R/W | 转换通道选择 0:ADC_IN0 1:ADC_IN1 2:ADC_IN2 3:ADC_IN3 |
4:0 | Reserved | 0x00 | R/W | 保留 |
ADC转换结果寄存器(ADCRESULTx)¶
偏移量:0x18-0x24
复位值:0x0000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
15:12 | Reserved | 0x0 | R/W | 保留 |
11:0 | ADCOUT | 0x000 | R/W | ADC转换结果 |
注:x=2,3,4,5,ADCRESULTx分别对应通道x的转换结果。
通道0采样周期寄存器(CH0PERIOD)¶
偏移量:0x38
复位值:0x0000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
15:0 | CH0PERIOD | 0x0000 | R/W | 通道0采样周期:(CH0PERIOD+1) * 512 |
通道1采样周期寄存器(CH1PERIOD)¶
偏移量:0x3C
复位值:0x0000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
15:0 | CH1PERIOD | 0x0000 | R/W | 通道1采样周期:(CH1PERIOD+1) * 512 |
通道2采样周期寄存器(CH2PERIOD)¶
偏移量:0x40
复位值:0x0000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
15:0 | CH2PERIOD | 0x0000 | R/W | 通道2采样周期:(CH2PERIOD+1) * 512 |
通道3采样周期寄存器(CH3PERIOD)¶
偏移量:0x44
复位值:0x0000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
15:0 | CH3PERIOD | 0x0000 | R/W | 通道3采样周期:(CH3PERIOD+1) * 512 |
通道0下限阈值寄存器(CH0MINVALUE)¶
偏移量:0x48
复位值:0x0000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
15:0 | MINVALUE | 0x0000 | R/W | 通道0下限阈值 |
通道0上限阈值寄存器(CH0MAXVALUE)¶
偏移量:0x4C
复位值:0x0FFF
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
15:0 | MAXVALUE | 0x0FFF | R/W | 通道0上限阈值 |
通道1下限阈值寄存器(CH1MINVALUE)¶
偏移量:0x50
复位值:0x0001
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
15:0 | MINVALUE | 0x0001 | R/W | 通道1下限阈值 |
通道1上限阈值寄存器(CH1MAXVALUE)¶
偏移量:0x54
复位值:0x0FFF
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
15:0 | MAXVALUE | 0x0FFF | R/W | 通道1上限阈值 |
通道2下限阈值寄存器(CH2MINVALUE)¶
偏移量:0x58
复位值:0x0001
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
15:0 | MINVALUE | 0x0001 | R/W | 通道2下限阈值 |
通道2上限阈值寄存器(CH2MAXVALUE)¶
偏移量:0x5C
复位值:0x0FFF
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
15:0 | MAXVALUE | 0x0FFF | R/W | 通道2上限阈值 |
通道3下限阈值寄存器(CH3MINVALUE)¶
偏移量:0x60
复位值:0x0000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
15:0 | MINVALUE | 0x0001 | R/W | 通道3下限阈值 |
通道3上限阈值寄存器(CH3MAXVALUE)¶
偏移量:0x64
复位值:0x0FFF
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
15:0 | MAXVALUE | 0x0FFF | R/W | 通道3上限阈值 |
ADC状态寄存器(ADCSTAT)¶
偏移量:0x68
复位值:0x0000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
15:1 | Reserved | 0x0000 | RO | 保留 |
0 | PRDBSY | 0 | RO | 当前ADC工作状态 0:ADC转换完成,处于空闲状态 1:ADC正在工作中 |
ADC控制寄存器a(ADCCTRLa)¶
偏移量:0x6C
复位值:0x00000000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
31:10 | Reserved | 0x0000 | R/W | 保留 |
9 | CH5MAXEN | 0 | R/W | CH5采样结果阈值下限中断使能 0:关闭 1:开启 |
8 | CH4MAXEN | 0 | R/W | CH4采样结果阈值下限中断使能 0:关闭 1:开启 |
7 | CH5MINEN | 0 | R/W | CH5采样结果阈值下限中断使能 0:关闭 1:开启 |
6 | CH4MINEN | 0 | R/W | CH4采样结果阈值下限中断使能 0:关闭 1:开启 |
5 | CH5EN | 0 | R/W | 通道5周期监测使能 0:关闭 1:开启 |
4 | CH4EN | 0 | R/W | 通道4周期监测使能 0:关闭 1:开启 |
3 | RSTN | 0 | R/W | ADC复位功能 0:启动复位 1:正常模式 |
2 | SDIF | 0 | R/W | 模拟采样信号模式选择 0:单端模式 1:差分模式,该功能为偏移校准模式中使用 |
1 | Reserved | 0x0000 | R/W | 保留 |
0 | DISH | 0 | R/W | 正常模式和偏移校准选择 0:正常模式 1:偏移校准模式 |
注1:ADC在上电后默认是复位状态,要使用时,必须先把RSTN位设置为1,同时ADC模块上电有时序要求,需要启动后保持复位信号一段时间,因此增加了下面的复位配置寄存器,当该配置为0时,RSTN信号在ADCEN信号有效后6个ADC CLK周期后释放。当配置为其他数值时,RSTN信号在ADCEN信号有效后配置值加6个ADC CLK周期后释放,以保障ADC功能正常。
注2:ADC增加了偏移校准的功能,以适应因芯片生产或环境造成的个体误差。使用时设置DISH和SDIF为1,使内部的VIP和VIN信号短路,此时计算ADC对应的通道端口读取的采样值与理想转换值800H的差值,将该差值作为校准的偏移值,写入ADC偏移校准寄存器的OFFSET位。注意该位的值存在补码,如该位的值设成2F,2F是-17的补码,此时ADC将DISH和SDIF设为0恢复为正常工作模式时,采样值会自动计算减去17;如该位的值设为1A,1A是26的补码,此时ADC将DISH和SDIF设为0恢复为正常工作模式时,采样值会自动计算加上26.
ADC复位配置寄存器(ADCRSTN)¶
偏移量:0x70
复位值:0x00000000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
31:6 | Reserved | 0x0000 | R/W | 保留 |
5:0 | ADCRSTN | 0 | R/W | 复位信号在ADCEN信号使能后增加保持为低电平的周期数 |
ADC偏移校准寄存器(ADCOFFSET)¶
偏移量:0x74
复位值:0x00000000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
31:6 | Reserved | 0x0000 | R/W | 保留 |
5:0 | OFFSET | 0 | R/W | 设置ADC的偏移校准值 |
ADC装载寄存器(ADCLOADEN)¶
偏移量:0x78
复位值:0x00000000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
31:1 | Reserved | 0x0000 | R/W | 保留 |
0 | LOADEN | 0 | R/W | 使能装载信号,写1装载,装载完成自清除 |
注:该寄存器需要在ADC模块复位成功正常功能前,要配置LOADEN位为0,将寄存器的值生效,然后才配置ADCCTRL控制寄存器第0位EN_ADC为1,启动ADC模块开始工作
ADC复位状态寄存器(ADCPWRRDY)¶
偏移量:0x7C
复位值:0x00000000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
31:1 | Reserved | 0x0000 | R | 保留 |
0 | PWRRDY | 0 | R | ADC复位释放标志,高有效 |
通道4采样周期寄存器(CH4PERIOD)¶
偏移量:0x80
复位值:0x0000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
15:0 | CH4PERIOD | 0x0000 | R/W | 通道4采样周期:(CH4PERIOD+1) * 512 |
通道5采样周期寄存器(CH5PERIOD)¶
偏移量:0x84
复位值:0x0000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
15:0 | CH5PERIOD | 0x0000 | R/W | 通道5采样周期:(CH5PERIOD+1) * 512 |
通道4下限阈值寄存器(CH4MINVALUE)¶
偏移量:0x88
复位值:0x0000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
15:12 | Reserved | 0x0 | R | 保留 |
11:0 | MINVALUE | 0x000 | R/W | 通道4下限阈值 |
通道4上限阈值寄存器(CH4MAXVALUE)¶
偏移量:0x8C
复位值:0x0FFF
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
15:12 | Reserved | 0x0 | R | 保留 |
11:0 | MAXVALUE | 0xFFF | R/W | 通道4上限阈值 |
通道5下限阈值寄存器(CH5MINVALUE)¶
偏移量:0x90
复位值:0x0000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
15:12 | Reserved | 0x0 | R | 保留 |
11:0 | MINVALUE | 0x000 | R/W | 通道5下限阈值 |
通道5上限阈值寄存器(CH5MAXVALUE)¶
偏移量:0x94
复位值:0x0FFF
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
15:12 | Reserved | 0x0 | R | 保留 |
11:0 | MAXVALUE | 0xFFF | R/W | 通道5上限阈值 |