历史上的今天
返回首页

历史上的今天

今天是:2025年01月12日(星期日)

2020年01月12日 | MSP430学习笔记(4)ADC12

2020-01-12 来源:eefocus

几个术语:

a)分辨率(LSB):表示输出数字量变化一个相邻数码所需要输入模拟电压的变化量,它定义为转换器的满刻度电压与2的n次幂,其中n为ADC的位数。


b)量化误差:由于有限数字对模拟值进行离散取值(量化)而引起的误差。因此,量化误差理论上为一个单位分辨率。即正负12LSB。


c)转换精度:反应实际的ADC模块在量化上与理想的ADC模块进行模数转换的差值。


d)转换时间:指ADC完成一次模/数转换所需要的时间。


2.结构:            

  

3.参考电压发生器:


a)指需要的基准信号,通常为电压基准。MSP430 ADC12内置参考电源,有6种可编程选择。


b)模拟多路器:当多个模拟信号进行采样并进行A/D转换时,为了公用一个转换内核,模拟多路需要分时地将多个模拟信号连通,每次连通一个信号采样并转换。


c)MSP430 ADC12配置有8路外部通道和4路内部通道,通过A0~A7实现外部8路模拟信号输入,4路内部通道可以将多个基准电压和内部温度传感器的输出作为待转换模拟输入信号。


d)具有采样与保持功能的12转化器内核:ADC12内核是一个12位的模数转换器,并能够将结果存放在转换器存储器中。该内核使用两个可编程的参考电压(Vr+和Vr-)定义转换的最大值和最小值。公式为:Nadc = 4095 * (Vin - Vr)/(Vr+ -Vr)


e)采样转换所需的时序控制电路:提供采样及转换所需要的各种信号:ADC12CLK转换时钟,SAMPCON采样及转换信号、SHT控制的采样周期、SHS控制的采样触发来源选择、ADC12SSEL选择的内核时钟源及AC12DIV选择的分频系数。


4.ADC12寄存器:


a)转换控制寄存器ADC12CTL0


i.ADC12SC采样/转换控制位:当ENC =1,ISSH = 0且SHP = 1时,ADC12SC由0到1启动A/D转换,A/D转换完成后ADC12SC自动复位,当SHP = 0时,ADC12SC保持高电平采样,ADC12SC复位时启动一次转换。


ii.ENC转换允许位:0为初始状态,不能启动A/D转换;1为首次转换由SAMPCON上升沿启动。


iii.ADC12TIVE转换时间溢出中断允许位:0:为没发生转换时间溢出,1为发生转换时间溢出。


iv.ADC12OVIE溢出中断允许位:0为没有发生溢出,1为发生溢出。


v.ADC12ON:ADC12内核控制位:0为关闭ADC12内核,1为打开。


vi.REFON:参考电压控制位,0为内部参考电压发生器关闭,1为内部参考电压发生器打开。


vii.2.5V内部参考电压的电压值选择位:0为选择1.5V,1为选择2.5V。


viii.MSC多次采样/转换位:只有当SHP =1时才有效,0为每次转换需要SHI信号的上升沿触发采样定时器,1为仅首次转换由SHI信号的上升沿触发采样定时器,而后采样转换将在前一次转换完成后立即进行。


ix.SHT1/SHT0采样保持定时器:定义了保存在转换结果寄存器ADC12MEM8_ADC12MEM15和ADC12MEM0~ADC12MEM7中的转换采样时序与采样时钟ADC12CLK的关系,采样周期时ADC12CLK周期乘4的n倍。N为2的SHITx次幂。


b)转换控制寄存器ADC12CTL1


i.CSStartAdd转换存储地址位,可以定义单次转换地址或序列转换的首地址。


ii.SHS采样输入触发源选择:0为ADC12SC,1为Timer_A.OUT1,2为Timer_B.OUT0,3为Timer_B.OUT1。


iii.SHP采样信号(SAMPCON)选择控制位:0为信号源来自采样触发输入信号,1为信号源来自采样定时器,由采样输入信号的上升沿触发采样定时器。


iv.ISSH采样输入信号方向控制位:0为采样输入信号为同向输入,1为反向。


v.ADC12DIV:ADC12时钟源分频因子选择为。


vi.ADC12SSEL ADC12内核时钟源选择:0为ADC12内部时钟源ADC12OSC(默认)为1为ACLK,为2为MCLK,为3为SMCLK。


vii.CONSEQ转换模式选择位:0为单通道单次转换模式,1为序列通道单次转换模式,2为序列通道多次转换模式,3为序列通道多次转换模式。


viii.ADC12BUSY ADC12忙标志位:0表示没有活动,1表示忙。


c)ADC12MEM0~ADC12MEM15转换存储寄存器:16位寄存器,用来存放A/D转换结果,只用其中低12位。


d)ADC12MCTLx转换存储器控制寄存器:


i.EOS:序列结束控制位:0为序列没有结束,1为结束。


ii.Sref参考电压源选择位:                                             

iii.INCH选择模拟输入通道:该4位表示的二进制数为所选的模拟输入通道:


e)ADC12IFG中断标志寄存器:ADC12IFGx置位表示转换结束,并且转换结果已经装入转换存储寄存器;ADC12IFGx复位表示ADC12MEMx被访问。


f)ADC12IE中断使能寄存器:1为允许响应的ADC12IFGx在置位时发生的中断请求服务,0为禁止ADC12IFGx在置位时发生的中断请求服务。

g)ADC12IV中断向量寄存器。


5.初始化代码


/*************************************************************************

//名称 :ADC12Init

//参数 :uchar Times-0为单次转换,1为多次转换,

         uchar Tube-0为单通告转换,1为多通道转换

         uchar n-待转换的通道(只有在Tube为0的时候有用)

         uchar V-0为内部参考电压,1为外部参考电压

//返回值:无

//功能 :完成ADC12Init的初始化

*************************************************************************/

void ADC12Init(uchar Times,uchar Tube,uchar n,unsigned char v)

{

if(Tube ==0)                                 //单通道转换

{

if(v == 0)

{

ADC12CTL0 = ADC12ON + SHT0_8 + MSC + REFON + REF2_5V; //使用内部电压,打开ADC12内核,8分频,内部参考电压2.5V

ADC12MCTL0 = SREF_0;                                 //使用内部电压,参考位为AVCC和AVSS

}

if(v == 1)

{

ADC12CTL0 = ADC12ON + SHT0_8; //使用外部电压,打开ADC12内核,8分频

ADC12MCTL0 = SREF_2;                         //使用外部电压,参考为为VeREF+和AVSS

}

if(Times == 0)ADC12CTL1 = SHP + CONSEQ_0; //单通道单次转换,采样信号来自采样定时器

if(Times == 1)ADC12CTL1 = SHP + CONSEQ_2; //单通道多次转换,采样信号来自采样定时器

switch (n) //选择通道

{

case 0:ADC12MCTL0 |= INCH_0;break;

case 1:ADC12MCTL0 |= INCH_1;break;

case 2:ADC12MCTL0 |= INCH_2;break;

case 3:ADC12MCTL0 |= INCH_3;break;

case 4:ADC12MCTL0 |= INCH_4;break;

case 5:ADC12MCTL0 |= INCH_5;break;

case 6:ADC12MCTL0 |= INCH_6;break;

case 7:ADC12MCTL0 |= INCH_7;break;

}

ADC12IE = n;         //使能待转换通道的中断

ADC12CTL0 |= ENC;         //开启软件使能

}

if(Tube ==1)                                 //多通道转换

{

if(v == 0)

{

ADC12CTL0 = ADC12ON + SHT0_8 + MSC + REFON + REF2_5V;   //使用内部电压,打开ADC12内核,8分频,内部参考电压2.5V

ADC12MCTL0 = SREF_0;                                 //使用内部电压,参考位为AVCC和AVSS

}

if(v == 1)

{

ADC12CTL0 = ADC12ON + SHT0_8;         //使用外部电压,打开ADC12内核,8分频

ADC12MCTL0 = SREF_2;                         //使用外部电压,参考为为VeREF+和AVSS

}

if(Times == 0)ADC12CTL1 = SHP + CONSEQ_1; //多通道单次转换,采样信号来自采样定时器

if(Times == 1)ADC12CTL1 = SHP + CONSEQ_3; //多通道多次转换,采样信号来自采样定时器

ADC12IE = 0xff;         //使能待转换通道的中断

ADC12CTL0 |= ENC;         //开启软件使能

}

}

推荐阅读

史海拾趣

台湾凯励(Carli)公司的发展小趣事

凯励公司始终将技术创新作为发展的核心驱动力。公司不断投入研发资金,加强与高校和研究机构的合作,不断推出具有竞争力的新产品。例如,公司成功研发出了MPX、MTF、MTB等多个系列的金属膜电容器,这些产品不仅具有优异的性能和稳定性,还广泛应用于新能源、工业控制、通信等领域。此外,凯励公司还致力于产品升级和工艺改进,不断提高产品的可靠性和使用寿命。

Federal Custom Cable公司的发展小趣事

Federal Custom Cable公司成立于XXXX年,由几位具有丰富电缆制造经验的工程师创立。公司创立之初,就专注于为客户提供定制化的电缆解决方案。他们深入了解不同行业对电缆的特殊需求,通过技术创新和工艺改进,生产出符合客户要求的电缆产品。这种对定制化需求的精准把握,使Federal Custom Cable在竞争激烈的电缆市场中脱颖而出。

FWBELL公司的发展小趣事
随着电池温度的降低,充电器会再次检测温度并恢复快速充电模式,形成闭环控制。
Dailywell Electronics Co Ltd公司的发展小趣事

随着业务的不断扩展和市场需求的增加,德利威电子在1998年实现了全系列防水开关的生产,并取得了RS33A开关专利。同年,公司还扩大了经营规模,搬入了自购的厂办大楼,并增加了资本额至一千五百万元。这些举措不仅提升了公司的生产能力和产品品质,也为公司未来的发展奠定了坚实的基础。

E-Switch公司的发展小趣事

在E-Switch的发展历程中,品质一直是公司最为重视的方面之一。公司始终坚持严格的质量管理体系,从原材料采购到生产流程控制,再到产品出厂检验,每一个环节都严格把关。正是这种对品质的执着追求,让E-Switch的产品在市场上赢得了良好的口碑。

Digilent公司的发展小趣事

在全球节能意识日益增强的背景下,DIALIGHT致力于推动绿色照明的发展。公司的LED产品具有高效节能、长寿命和环保等优点,有助于减少能源消耗和环境污染。此外,DIALIGHT还积极参与各种绿色照明项目,为推动可持续发展贡献自己的力量。

问答坊 | AI 解惑

太阳跟踪器电原理

本电路可用在太阳能热水器、太阳能电池等自动跟踪太阳地设备设施上。本电路是本人精心设计的,PCB和软件暂不上传。若用商业使用,请通知我。xliu001@163.com 否则,属于侵权。(在专利申请中)…

查看全部问答>

关于USB overrun

26.0  CTL    80 06 00 01  00 00 12 00                                      ...…

查看全部问答>

从Tornado2.0升级到2.2遇到的关于启动的问题

从2.0升级到2.2,制作完bootrom启动后,从网络启动没有问题,但从CF启动,出现了下面的问题,这种情况在2.0下没有出现。从网络启动到从CF卡启动只是修改了boot行: 网络启动:#define DEFAULT_BOOT_LINE \\         \"fei(0, ...…

查看全部问答>

学习单片机

学习单片机,最好还是先从学汇编语言开始,那样能更好地理解计算机。 然后,再用C语言做开发。那样进度会快很多。…

查看全部问答>

为什么我的3.41版本无法破解呢?

为什么我的3.41版本无法破解呢? 我已按照说明,把那个小写字母都改成大写字母的了...装完后还是说没有KEY 的.请问关系统问题吗?…

查看全部问答>

SD 卡 SPI 模式初始化过程,带流程图。

流程图如下,该代码能识别 MMC V3, SD V1.X 和 SD V2.00及其后续版本,其中 SD V2.00及其后续版本又可分为标准容量和大容量版本。…

查看全部问答>

[视频分享] BeagleBone Teaser

亲们,TI 新一代BeagleBone即将问世,敬请期待。让我们先来观赏一段有意思的小视频吧~~ [ 本帖最后由 德州仪器_视频 于 2013-4-18 14:48 编辑 ]…

查看全部问答>