ADC模块
一、ADC时钟分频
// 使能ADC外设时钟
EALLOW;
SysCtrlRegs.PCLKCR0.bit.ADCENCLK=1;
EDIS;
// 高速外设时钟HSPCLK=SYSCLKOUT/(2*HISPCP)=25MHz
EALLOW;
SysCtrlRegs.HISPCP.bit.HSPCLK=3;
EDIS;
// FCLK = HSPCLK/(2*ADCCLKPS)=12.5MHz
AdcRegs.ADCTRL3.bit.ADCCLKPS=1;
// ADC工作时钟ADCCLK。
// CPS=0:ADCCLK=FCLK;CPS=1:ADCCLK=FCLK/2
AdcRegs.ADCTRL1.bit.CPS=0;
// ADC采样时间宽度SH Width = (ACQ_PS+1)*(1/ADCLK)
AdcRegs.ADCTRL1.bit.ACQ_PS=0xf;
二、ADC模块的工作方式
F28335的ADC一共有16个引脚,分成了2组:一组为ADCINA0~ADCINA7,使用采样保持器S/H-A,对应排序器SEQ1;另一组为ADCINB0~ADCINB1,使用采样保持器S/H-B,对应排序器SEQ2。
2.1 排序器工作方式
2.1.1 双排序器
排序器SEQ1使用通道选择控制寄存器ADCCHSELSEQ1和ADCCHSELSEQ2,可选择的通道为ADCINA0~ADCINA7;排序器SEQ2使用通道选择控制寄存器ADCCHSELSEQ3和ADCCHSELSEQ4,可选择的通道为ADCINB0~ADCINB7。
2.1.2 级联排序器
排序器SEQ使用通道选择控制寄存器ADCCHSELSEQ1~ADCCHSELSEQ4,可选择的通道为ADC所有的16个通道。
2.2 ADC的采样方式
2.2.1 顺序采样
通道选择控制寄存器中CONVxx的4位都用来定义输入引脚。最高位=0说明采样的是A组;最高位=1说明采样的是B组。低3位用来定义引脚。
2.2.2 同步采样
同步采样模式下,是成对通道进行采样,所有CONVxx的最高位被舍弃,只有低3位的数据有效。