几个术语:
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.NC转换允许位: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; //多通道多次转换,采样信号来自采样定时器
上一篇:MSP430学习笔记——MSP430的系统时钟
下一篇:MSP430学习笔记(2)定时器A
推荐阅读
史海拾趣
Elektron公司的故事始于1942年,由威利·科伯以Elektron物理技术设备工厂Kerber的名称成立。当时,该公司主要生产基于汞蒸气整流器的固定电池电源和船用电池充电器。这些产品在市场上取得了良好的反响,为公司的发展奠定了坚实的基础。在随后的几年里,Elektron不断扩大产品范围,开始涉足汽车行业的电池充电器以及焊接和切割工艺的电源等领域。
Elektron公司的故事始于1942年,由威利·科伯以Elektron物理技术设备工厂Kerber的名称成立。当时,该公司主要生产基于汞蒸气整流器的固定电池电源和船用电池充电器。这些产品在市场上取得了良好的反响,为公司的发展奠定了坚实的基础。在随后的几年里,Elektron不断扩大产品范围,开始涉足汽车行业的电池充电器以及焊接和切割工艺的电源等领域。
Conxall公司的创始人李华,是一位在电子行业摸爬滚打多年的工程师。他深感市场上电子产品同质化严重,缺乏真正的创新。于是,他毅然决定创立Conxall公司,致力于研发具有独特功能和高性能的电子产品。李华带领团队日夜奋战,终于研发出了第一款具有自主知识产权的智能手机芯片,凭借其出色的性能和稳定性,迅速在市场上获得了认可。
随着电子行业的快速发展和市场竞争的加剧,Mersen面临着越来越多的挑战。然而,公司始终坚持以客户为中心的理念,通过深入了解客户需求和市场趋势,不断推出符合市场需求的新产品和技术解决方案。同时,公司也加强了与全球合作伙伴的合作与交流,共同应对市场挑战并推动行业发展。
以上五个故事概述了Ferraz Shawmut(现更名为Mersen)在电子行业中的关键发展历程。通过不断创新、全球扩张和积极应对市场挑战,公司成为了电气保护领域的领先企业。
随着电子行业的快速发展和市场竞争的加剧,Mersen面临着越来越多的挑战。然而,公司始终坚持以客户为中心的理念,通过深入了解客户需求和市场趋势,不断推出符合市场需求的新产品和技术解决方案。同时,公司也加强了与全球合作伙伴的合作与交流,共同应对市场挑战并推动行业发展。
以上五个故事概述了Ferraz Shawmut(现更名为Mersen)在电子行业中的关键发展历程。通过不断创新、全球扩张和积极应对市场挑战,公司成为了电气保护领域的领先企业。
随着汽车行业的快速发展和智能化趋势的加强,CINTERION针对汽车市场推出了专用级M2M模块。其中,AC75i和AC65i作为第六代汽车级模块,以其高度的集成性、稳定性和安全性受到了市场的广泛认可。这些模块的推出,不仅满足了汽车行业对无线通信技术的需求,也进一步巩固了CINTERION在汽车M2M市场的领先地位。
不法分子通常利用银行下班后的时间作案,因此持卡人在银行下班后,尤其是在夜间或凌晨进入自助银行使用ATM机时应格外提高警惕,观察周围有无尾随、偷窥等可疑情况。所以要尽量避免在太晚的时候进入自助银行,或避免进入位置僻静的自助银行。 而且进 ...… 查看全部问答∨ |
自制64*24点阵LED点阵显示板,包括电路图、电路板图、源代码和显示效果即将逐步上传中!!! 电路图和电路板图样图及材料清单钧包含在附件的一个pdf文件中。 汇编语言源程序文件和目标二进制代码文件在附件的一个RAR文件中 其余文件逐步待传中… 查看全部问答∨ |
动态加载驱动程序第一次成功,可卸载后,第二次加载,就会出现StartService失败,错误代码是2 ???????? 代码为: BOOL InstallDevice() { if (m_hDevice!=INVALID_HANDLE_VALUE) return FALSE; ////////////////////////////// ...… 查看全部问答∨ |
|
我借了块班子,但没有光盘了,所以没有了VIVI的源代码了 我下了个VIVI的代码,用的DM9000, 而我板子上用的是CS8900 8900的驱动VIVI的目录有了也 现在VIVI 编译后,默认的是用DM9000,我要修改哪些地方?才能让他默认为CS8900呢?? 谢谢… 查看全部问答∨ |
由于一些原因,我的ce工程需要使用makefile来编译。 但我发现eVC的makefile 老是出错。 我很简单的生成一个MFC exe工程t2,什么也没加,用IDE编译很正常。但我在project->export makefile后在console中使用 NMAKE /f "t2.vcn" CFG="t3 - ...… 查看全部问答∨ |
STM32F103VCT6中TIM4remap后会与FSMC冲突吗? TIM4 remap后其CH1-CH4分别与FSMC的A17,A18,D0,D1,我只用TIM4_CH1且不使用FSMC的A17和A18,这样TIM4_CH1是否能正常输出,是否会影响FSMC的D0和D1? 谢谢!… 查看全部问答∨ |