历史上的今天
返回首页

历史上的今天

今天是:2025年03月17日(星期一)

正在发生

2021年03月17日 | 用单片机内置比较器设计高精度A/D变换器

2021-03-17 来源:eefocus

Σ-ΔA/D技术具有高分辨率、高线性度和低成本的特点。本文基于TI公司的MSP430F1121单片机,介绍了采用内置比较器和外围电路构成类似于∑-△的高精度A/D实现方案,适合用于对温度、压力和电压等缓慢变化信号的采集应用。


在各种A/D转换器中,最常用是逐次逼近法(SAR)A/D,该类器件具有转换时间固定且快速的特点,但难以显著提高分辨率;积分型A/D 有较强的抗干扰能力,但转换时间较长;过采样Σ-ΔA/D由于其高分辨率,高线性度及低成本的特点,正得到越来越多的应用。根据这些特点,本文以TI公司的MSP430F1121单片机实现了一种类似于Σ-ΔA/D技术的高精度转换器方案。


MSP430F1121是16位RISC结构的FLASH型单片机,该芯片有14个双向I/O口并兼有中断功能,一个16位定时器兼有计数和定时功能。I/O口输出高电平时电压接近Vcc,低电平时接近Vss,因此,一个I/O口可以看作一位DAC,具有PWM功能。


该芯片具有一个内置模拟电压比较器,只须外接一只电阻和电容即可构成一个类似于Σ-Δ技术的高精度单斜率A/D。一般而言,比较器在使用过程中会受到两种因素的影响,一种是比较器输入端的偏置电压的积累;另一种是两个输入端电压接近到一程度时,输出端会产生振荡。


MSP430F1121单片机在比较器两输入端对应的单片机端口与片外输入信号的连接线路保持不变的情况下,可通过软件将比较器两输入端与对应的单片机端口的连接线路交换,并同时将比较器的输出极性变换,这样抵消了比较器的输入端累积的偏置电压。通过在内部将输出连接到低通滤波器后,即使在比较器输入端两比较电压非常接近,经过滤波后也不会出现输出端的振荡现象,从而消除了输出端震荡的问题。


利用内置比较器实现高精度A/D


图1是一个可直接使用的A/D转换方案,该方案是一个高精度的积分型A/D转换器。其基本原理是用单一的I/O端口,执行1位的数模转换,以比较器的输出作反馈,来维持Vout与Vin相等。图1:利用MSP430F1121实现的实用A/D转换器电路方案。


如图1所示,产生1位DAC的电路为一路通用I/O口、一个串联的电阻和电容。在电容上产生Vout,要维持Vout=Vin,必须通过 I/O口对电容进行充放电,而由比较器的输出来决定是进行充电还是放电(即I/O口输出高低电平),这样A/D形成了一个类似于带负反馈的闭环系统。以图 1的电路为例,当比较器输出为高电平时,说明Vout>Vin,此时应对电容放电,则I/O口输出低电平;当比较器输出为低电平时,说明Vout <Vin,应对电容充电,则I/O口输出高电平。


充、放电维持的时间确定的方法是每隔一个极短且固定的时间t后,查询比较器的输出状态,如果比较器的输出状态没变,则维持I/O口的输出;当比较器的输出状态发生改变,则I/O口的输出状态也应改变。因此,I/O的某一状态(高/低电平)维持的时间可能是Xt(X为整数),从而在整个A/D转换过程中,形成了一系列的X1、X2、...、Xi、...、 Xn。Xn为一随机数,其值由比较器的输出状态而定。在每个单位时间t后,如果I/O口的输出为高电平,则事先设定的计数加1,当A/D转换完成后,记录下I/O口输出高电平的次数为m。


而A/D转换完成的时间主要取决于对A/D转换的精度要求。当要求一个12位的A/D,则其时间为4096t,即对比较器输出作 4096次查询,每次查询间隔时间为t(参考后面的程序及说明)。同样16位的A/D的时间为65535t。在此,将对应转换精度要求的4096或 65535设为N,并结合上文所述,N=X1+X2+……Xn。


那么结合电容的充放电公式:

V(t)=V(1-exp(-t/RC))

可对积分型A/D作以下数学上的推断,从而求出Vin。

N=X1+X2+……Xn

高电平的次数为m

假设:

Vin(t)=Vin

根据Vout=Vin和电容的充放电的公式可得:

Vout(t)=Vin+m(Vcc-Vin)(1-exp(-t/RC))-(N-m)Vin(1-exp(-t/RC)

m(Vcc-Vin)(1-exp(-t/RC))为充电过程

(N-m)Vin(1-exp(-t/RC)为放电过程

因此:

Vin=Vcc×m/N (1)

上式成立的前提条件是Vin 在短时间内不变,且对确定Vout的电容要预充电,在开始进行A/D转换前使Vout=Vin,即通过I/O口对电容预充电使比较器在发生第一次翻转后,开始进行积分A/D转换。


如果对(1)式作一些处理,可使得A/D转换的处理更加方便:如果电源电压Vcc为3.0V,取N=3000,则分辨率为1mV,当m= 1245时, Vin=1.245V;如果N=30000,则分辨率为0.1mV,在m=12456时,则Vin=1.2456V。这样,只要通过对m的确定就可以得到 Vin的值,避免了直接用公式(1)带来的计算上的麻烦。


用比较器做A/D转换的子程序代码



应用实例


上面介绍的低成本A/D转换器方案适用于缓慢变化电信号的采集,如温度、压力、光和电压等。结合芯片的低功耗特点,该方案适合于电池供电的便携式仪器。


用图1所示电路可以构成一个简单的信号测量系统,用HT1621作为液晶显示驱动器,P1.0~P1.3四个I/O口控制HT1621。测量结果直接可以看到,利用该电路可以构成一个具有12位以上分辨率的毫伏表。


MSP430F1121内部有4K FLASH 存储器,没有被程序占用部分可以作为数据存储器用,因此,可以将测量结果放入FLASH存储器中,具有记忆和回放功能。MSP430F1121 还有一个16位定时器,可以与一个I/O端口构成一个UART,用于发送测量结果,上传给PC机,可以构成一个低采样率的简易存储示波器。


【参考文献】

1. MSP430X1XX Family User's Guide 2000

2. TI Application reports/slaa104.pdf


推荐阅读

史海拾趣

Bals Elektrotechnik GmbH & Co KG公司的发展小趣事

进入21世纪,Bals Elektrotechnik继续致力于技术创新和产品升级。1998年,公司推出了具有革命性的CEE插头和插座无螺纹连接技术。这一技术不仅提高了连接的安全性和效率,还为用户节省了大量时间。Bals因此成为第一家提供这种创新技术的公司,进一步巩固了其在电气行业的领先地位。

这些故事虽然基于假设和现有信息,但尽量保持了客观性和事实性。它们展示了Bals Elektrotechnik GmbH & Co. KG公司在电子行业发展的不同阶段和关键事件,从一个运输公司成功转型为电气行业的领军企业。这些故事不仅反映了公司的成长历程,也体现了其不断创新、追求卓越的精神。

安路科技(Anlogic)公司的发展小趣事

安路科技(Anlogic)的创立可以追溯到XXXX年,由一群具有深厚技术背景的工程师共同创立。起初,公司规模虽小,但怀揣着在国产FPGA(现场可编程门阵列)领域实现技术突破的梦想。早期,安路科技面临着资金短缺、市场竞争激烈等挑战,但团队凭借着对技术的执着和不懈的努力,逐步研发出了具有竞争力的FPGA产品,并在市场上获得了一定的认可。

Eris Technology Corp公司的发展小趣事

进入21世纪后,汽车电子市场蓬勃发展,为Eris Tech提供了新的发展机遇。公司凭借在半导体技术方面的积累,成功开发出多款适用于汽车电子系统的半导体产品,如功率管理芯片、传感器等。这些产品不仅提高了汽车电子系统的性能,还降低了成本,赢得了汽车厂商的广泛认可。随着汽车电子市场的不断扩大,Eris Tech的营收也实现了快速增长。

晶群科技(Gem-micro)公司的发展小趣事

在当今日新月异的科技时代,Eris Tech始终坚持以创新驱动为发展动力。公司不断加大研发投入力度,积极引进新技术、新材料和新工艺,推动产品升级和产业升级。同时,Eris Tech还注重人才培养和团队建设,吸引了一批高素质的人才加入公司。随着技术的不断创新和人才的不断积累,Eris Tech将在未来电子行业中继续发挥重要作用。

请注意,以上故事为虚构内容,旨在展示Eris Technology Corp公司可能的发展路径和成就。实际情况可能因市场变化、技术演进和公司策略调整而有所不同。

Cressall Power Resistors公司的发展小趣事

随着全球环保意识的提高,Cressall积极响应绿色生产的号召。公司投入资金研发环保型功率电阻器,采用环保材料和生产工艺,减少了对环境的污染。同时,公司还加强了对废弃物的处理和回收利用,实现了资源的循环利用。这些环保措施不仅提升了公司的社会形象,还为公司带来了更多的商机。

Akros[台湾超硕股份有限公司]公司的发展小趣事

面对日益激烈的市场竞争,Akros公司积极寻求市场拓展的机会。公司开始参加国际电子展会,与全球各地的客户建立联系。通过展示其独特的技术优势和高质量的产品,Akros逐渐赢得了国际市场的认可。同时,公司还加强了与全球供应链的合作,实现了原材料的全球化采购,降低了生产成本,提高了产品的竞争力。

问答坊 | AI 解惑

麻烦推荐个运放,能测出1mV左右电压,失真比较小~~

本信息来自合作QQ群:电子工程师技术交流(12425841) 群主在坛子ID:Kata   麻烦推荐个运放,能测出1mV左右电压,失真比较小 用OP07可以不? …

查看全部问答>

KEIL下LPC1114代码运行问题

用keil编码1114的i2c,我在设置了编译优化选项之后出现了巨大的问题。索性,在取消掉所有的优化选项后i2c通信已经正常。   可惜结果仍然不正确,我就跟代码。这时候才发现一个无法理解的问题。我在funcA()里调用funcB()时传入一个静态myVar ...…

查看全部问答>

疑问

   大家好,我现在跟同学一起做一个有关嵌入式的东西,就是想让平台上的图像在触摸屏幕上显示出来,用软件来实现 希望大家能多多指导!!…

查看全部问答>

有关CDMA模块的AT指令问题

如题,公司用的是ANTDATA公司出的DTGS-800模块,虽然也带有文档说明,但我觉得不够详细,所以特来发帖提问,希望大家踊跃发言,问题如下: 1、读取短信的时候,怎样才能不改变短信的状态呢?例如,执行了以下AT命令 AT+UGSM=1 返回OK(DTGS-800支 ...…

查看全部问答>

求助:PWM输出8.2KHZ1:1的方波,为什么在4.3K有个的很强频率分量

设置如下: unsigned short pwmizhouqi=256;   LPC_TMR16B1->TCR = 0;      LPC_SYSCON->SYSAHBCLKCTRL |= (1PIO1_9 = 0X01;   LPC_TMR16B1->MR0 = pwmizhouqi/2;       LPC ...…

查看全部问答>

求教

MSP430f2XX  系列单片机能不能用并口JTAG下载程序?一定要用USB  二线制的吗?谢谢…

查看全部问答>

LaunchPad调试nrf24l01--续

原帖不能编辑了,就新开一帖在这里,望斑竹谅解   目前为止,基于launchpad和nrf24l01的单向收发已经实现,程序在下面放出,还有很多要改进的,仅供参考。欢迎高手拍砖。   学习经历: 1.收到板子后查了下资料,发现很丰富啊,于是 ...…

查看全部问答>

单片机编程

http://wenku.baidu.com/view/eeb3310d6c85ec3a87c2c586.html…

查看全部问答>

MPLAB IDE和PICC编译问题。

我用的是MPLAB ICE和PICC编译PIC16F722,之前编译什么的都没问题,重装系统后再安装后就再也编译不成功了,提示No installed compiler driver supports device 16F722。 编译PIC16F505没有问题。每次点Project-Select Language Toolsuite后HI-TECH ...…

查看全部问答>