【玩转C2000 Launchpad】菜鸟LESSON11-ADC采样
[复制链接]
【玩转C2000 Launchpad】菜鸟LESSON11-ADC采样
TMS320F28027的ADC功能: 1.12位双采样保持电路。 2.同时采样和序列采样方式。 3.全范围电压输入,0V到3.3V固定,或者VREFLO到VREFHI可调。 4.系统时钟全频运行,无需分频。 5.16输入通道。 6.16个SOC配置,设置触发,采样窗口,通道。 7.16个独立保存转换结果的结果寄存器。 8.多触发源。 9.9个灵活的PIE中断。 SOC操作原理: 与以往的ADC类型不同,TMS320F28027的ADC为3型,它是基于SOC的而不是基于序列的。SOC可以配置定义一个单独通道的独立转换。包括三种配置:开始转换的触发源,转换的通道,采样窗口的大小。每个SOC是独立配置的,可以有很多种触发源,通道,采样窗口大小的组合。如果需要,多个SOC可以配置成一样的触发源,通道,采样窗口大小。这提供了一种灵活的配置方法。可以配置转换在不同通道用不同的触发独立采样。可以用一个单独的触发过采样一个相同的通道。可以创建同一个触发不同通道的转换序列。 SOCx的触发源由ADCSOCxCTL寄存器中的TRIGSEL和ADCINTSOCSEL1或 ADCINTSOCSEL2 寄存器配置。软件可以通过ADCSOCFRC1寄存器产生一个SOC事件。通道和采样窗口大小可以通过ADCSOCxCTL寄存器的CHSEL和ACQPS配置。
struct ADCSOCxCTL_BITS { // bits description
Uint16 ACQPS:6; // 5:0 Acquisition Pulse Size Uint16 CHSEL:4; // 9:6 SOCx Channel Select Uint16 rsvd1:1; // 10 reserved Uint16 TRIGSEL:5; // 15:11 SOCx Trigger Select }; ACQPS和采样时间有关每个ADCSOCxCTL寄存器都有6位域,ACQPS,用来决定采样保持窗口的大小。写到这个位域的值要比期望的采样保持窗口的包括的周期要少1。例如:位域的值为15,那就需要16个周期来采样。允许最少的采样周期是7(ACQPS=6)。完成一次转换的时间由采样时间加转换时间(13个ADC时钟)组成。 CHSEL应该是通道选择
AdcRegs.ADCSOCFRC1.bit.SOC2 = 1; //软件启动SOC3开始转换ADCINA0 INA0 = AdcResult.ADCRESULT2; //读取结果寄存器3中的值也就是SOC3配置通道采样的值 INA0=((INA0*3.3)/4096)*1000; //将采样到的数字量转换成电压,并放大 1000倍
实验现象:
接3.3V显示图。 明显可以看出3.3V的显示后两位有点波动,因为没有采用滤波,直接显示
此外需要注意:(我这里接3.3V其实是错误操作,解释如下)
[ 本帖最后由 常见泽1 于 2013-1-18 15:23 编辑 ]
|