山雨欲来风满楼。
对于使用CC430的一般功能,还是需要很多模块的配合,团结就是力量。要想雨按时地落下,必须经过各个方面的配合。不过人脑又不是CPU,进程不能并行地展开,人的力量还是太微弱了,吃饭时也只能一口一口地往下咽。一步一步来,今天也就只能介绍某一个模块了。![](../img/eep/emb/emb-602764yzpv234i45.jpg)
这一篇也就只能介绍一下CC430的AD转换功能了。在一个充满模拟化的人类世界中,要想单片机这种数字化另类完成模拟数据的操作,必须得有一个能完成模拟向数字转换的模块。TI工程师确实想法很好,很厉害。CC430可以实现一段时间内多个通道数据的同时转换
,以前在我心中只是个传说,现在终于见到面了。妈呀,又有点扯远了。![](../img/eep/emb/emb-60278b3jv5rzatyl.jpg)
序幕缓缓拉开.....................![](../img/eep/emb/emb-6027543dhw244vvj.jpg)
ADC完成的必须品:ADC通道选择
基准电压(电压基准模块[独立于ADC] or ADC本身)
采样转换时序
分辨率和数据读出格式
皮毛设置
ADC中断功能
ADC通道选择:P2SEL = 0xFF---设置相应的位为高,则完成通道的选择。CC430只有P2可以作AD转换口。
基准电压(电压基准模块[独立于ADC] or ADC本身):
电压基准模块:1、基准电压设置 REFCTL0.REFVSEL(5~4)
2、主控模块(联系REFMSTR) = 1 使用REF模块,忽视ADC本身
REFCTL0.REFMSTR(7) = 0使用ADC本身
3、启动电压基准 REFCTL0.REFON = 1启动电压基准
(不用时关闭,省电) = 0 禁止电压基准
ADC本身:当REFCTL0.REFMSTR(7) = 0,ADC12CTL0.ADC12REFON(5) = 1 打开 or = 0 关闭
ADC12CTL1.ADC12REF2_5V(6) = 0 1.5V
ADC12CTL1.ADC12REF2_5V(6) =1 2.5V
采样转换时序:需要保持触发源(SAMPCON)和时钟源(ADC12CLK)两家伙
SAMPCON:1、保持触发源选择 ADC12CTL1.ADC12SHSx(11~10)
2、SAMPCON信号来源 ADC12CTL1.ADC12SHP(9)
3、SAMPCON信号方向(正 or 反) ADC12CTL1.ADC12SSH(8)
ADC12CLK:1、时钟源选择ADC12CTL1.ADC12SSELx(4~3)
2、时钟预分频ADC12CTL2.ADC12Pdiv(8)和ADC12CTL2.ADC12div(7~5)
3、SAMPCON信号方向(正 or 反) ADC12CTL1.ADC12SSH(8)
分辨率和数据读出格式:1、分辨率:ADC12CTL2.ADC12RES(5~4)
2、读取格式:ADC12CTL2.ADC12DF(3) = 0 -VREF = 0000h +VREF = 0FFFh
= 1 -VREF = 8000h +VREF = 7FF0h
皮毛设置:1、打开和使能ADC:ADC12CTL0.ADC12ON = 1 打开
ADC12CTL0.ADC12ENC = 1 使能
2、湿度传感器:ADC12CTL2.ADC12TCOFF1(7) = 1 关闭
3、转换序列模式控制:ADC12CTL1.ADC12CONSEQx(2~1) 四种模式
单通道转换时,需要设置ADC12CTL0.ADC12SC = 1来连续触发
序列通道转换时,需要设置ADC12MCTLx.ADC12EOS = 1
4、基准电压和输入通道设置:(每个通道都有自己的寄存器)
ADC12MCTLx.ADC12SREFx(6~4) 基准电压选择
ADC12MCTLx.ADC12INCHx(3~0) 输入通道选择
ADC中断功能:与IO口中断类似,多了溢出中断和转换时间溢出中断使能