历史上的今天
返回首页

历史上的今天

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

正在发生

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

2020-01-06 来源: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;         //开启软件使能

}

}

推荐阅读

史海拾趣

AC Photonics Inc公司的发展小趣事

随着电子行业的快速发展和市场竞争的加剧,AC Photonics Inc也面临着诸多挑战。然而,公司始终保持着敏锐的市场洞察力和应变能力。在面对行业变革和技术升级时,公司能够及时调整战略方向,加大研发投入,推出更具竞争力的新产品。同时,公司还积极探索新的商业模式和市场机会,为未来的发展奠定了坚实的基础。


以上五个故事均是基于一般性的电子行业发展模式虚构的,旨在展示AC Photonics Inc公司可能的发展路径和经历。实际情况可能有所不同,具体细节需要参考公司的官方资料和历史记录。

Gems Sensors & Controls公司的发展小趣事

随着技术的不断积累和市场的不断拓展,Gems Sensors & Controls公司成功加盟了全球知名的世界500强企业丹纳赫集团。这一举措不仅为公司带来了更多的资源和支持,也加速了Gems的全球化布局。如今,Gems的生产基地遍布北美、欧洲和亚洲,并在全球范围内设立了销售、设计和服务办事处,能够为客户提供更加全面和便捷的服务。

GSN Electronics公司的发展小趣事

随着技术的不断积累和市场的不断拓展,Gems Sensors & Controls公司成功加盟了全球知名的世界500强企业丹纳赫集团。这一举措不仅为公司带来了更多的资源和支持,也加速了Gems的全球化布局。如今,Gems的生产基地遍布北美、欧洲和亚洲,并在全球范围内设立了销售、设计和服务办事处,能够为客户提供更加全面和便捷的服务。

General Electric Company公司的发展小趣事
详细查阅所选型号的数据手册,了解其主要特性、极限参数和使用注意事项。
Hilscher Gesellschaft für Systemautomation mbH公司的发展小趣事

随着在高压电源领域的深入发展,HVPSI逐渐参与到行业标准的制定工作中。公司凭借其在技术上的深厚积累和市场经验,为行业标准的制定提供了宝贵的建议和数据支持。这些标准的出台不仅规范了市场秩序,也进一步巩固了HVPSI在行业内的领先地位。

飞虹(FeiHong)公司的发展小趣事

随着业务规模的不断扩大,苏州锋驰开始积极拓展国内外市场。公司不仅在国内市场取得了显著的成绩,还逐步将产品和服务推向国际市场。在品牌建设方面,苏州锋驰注重提升品牌知名度和美誉度,通过参加行业展会、举办技术交流会等多种方式,加强与客户的沟通和交流,赢得了广泛的关注和认可。同时,公司还不断优化产品和服务质量,提升客户满意度和忠诚度。

这五个故事共同勾勒出了苏州锋驰微电子有限公司在电子行业中的发展历程和成就,展现了其作为一家科技型中小企业的蓬勃生机和广阔前景。

问答坊 | AI 解惑

招聘高级硬件开发工程师

本公司提供良好发展机会和平台 我公司是一家主营一卡通智能管理系统、智能卡机具、热工仪表三大类产品,集研发、生产、销售、工程安装维护等全套工程实施,具有雄厚技术、销售实力的民营企业。 公司于2003年11月取得ISO9001认证;2005年8月,被杭 ...…

查看全部问答>

电子竞赛—具有语音功能的RCL测试仪

本帖最后由 paulhyde 于 2014-9-15 04:23 编辑 电子竞赛—具有语音功能的RCL测试仪  …

查看全部问答>

【藏书阁】晶体管偏流表(油印内发)

详细信息: 书籍作者:天津市半导体器件厂   图书出版社:内发 图书类别:理科、工程技术    出版时间:1970-10 印刷时间:1970-10-01 开本:大16开    页数:135 页     装订:平装  & ...…

查看全部问答>

请问再wince上如何检验usb口是否已经接续?

请问再wince上如何检验usb口是否已经接续? 另外,pc方面在接续后需要做什么动作通知wince已经接续了usb?谢谢 …

查看全部问答>

急求助:有没有TTL电平直接转232和485两种电平的器件?有成品最好.

有没有TTL电平直接转232和485两种电平的器件?有成品最好. 也就是说用这个产品有三个接口.可以直接把TTL电平转成232和485信号输出.…

查看全部问答>

vxworks 如何动态加载.0文件?

驱动文件以.0给出,需要检测到有该硬件再加载其驱动,如何实现?有什么命令可以?谢谢…

查看全部问答>

关于发送串形数据的疑问

                                 单片机STM8S903K3,现在要用3个口线和TM1628进行通讯,实现显示的驱动和按键的扫描功能。其中一个口线为片选信号, ...…

查看全部问答>