我可以控制微控制器的电压输出吗?


8

我必须为电路生成介于0 V和0.8 V之间的值,并获取系统输出的电压值并分析数据。我可以使用微控制器自动生成电压值吗?(例如:0.05 V,0.1 V,0.15 V ...)

如果答案是肯定的,那么我应该使用哪个微控制器以及您推荐什么技术?

如果答案是否定的,您还能提出其他建议吗?

Answers:


8

是的,所有微控制器都有某种方式来产生由固件控制的电压信号。蛮力方法是使微型计算机包含一个数模转换器(D / A)。固件将一个数字写入D / A,并产生与该数字成比例的电压。

D / A的一项重要规范是数字具有多少位。这决定了它的分辨率。当数字中有N位时,D / A可以产生2 N个不同的值。例如,一个8位D / A可以产生256个不同的电压电平。注意,普通的数字输出引脚可以认为是1位D / A。该数字有两个状态,0和1,输出电压为高或低。

大多数微控制器没有内置多位D / A,因为对此的需求很小。通常,我们尝试在过程中尽早将模拟值转换为数字,以数字方式进行操作,然后通过脉冲进行控制。想要微型产生模拟电压是不寻常的。即使在诸如音频之类的应用程序中,您可能会认为它们本质上是关于模拟信号的,但事情通常还是以数字方式处理,或者最终以脉冲处理。基本上就是D类放大器。

如果您不想使用内置了D / A的有限微控制器之一,则可以在外部添加一个。例如,微控制器可以通过SPI总线驱动许多D / A。

但是,除非您需要高速输出,否则对微控制器的PWM输出进行低通滤波会产生不错的模拟信号。Micros擅长产生控制良好的脉冲序列,并且许多内置了用于此目的的硬件。例如,考虑一个可以每1 µs(以1 MHz的速率)改变的数字输出。假设您将1 µs时间片分为1023个块。对于每个块,可以有0到1023之间的任何高片段。如果要对此求平均,您将获得一个模拟值,其中包含1024个可能的电平,这是从10位D / A获得的值。原始信号将包含您想要的平均值,以及从1 MHz / 1023 = 978 Hz开始的高频。通过应用几个极点的低通滤波(每个极点一个电阻和一个电容器),

这种类型的A / D具有很好的特性,因为它非常线性,单调,并且没有两个毛刺输出的幂。唯一的缺点通常是带宽。对于一些构成低通滤波器的简单电阻器和电容器,您获得模拟信号的速度可能不会比几十赫兹快。

请注意,您选择了每块使用1023个切片。如果要获得更高的分辨率,请增大块,但随后过滤后的输出将不得不变慢。但是,许多微控制器可以以比1 MHz限幅速率快得多的速度在硬件中生成PWM。

在尝试使用外部D / A之前,我将尝试看看是否可以使PWM方法起作用。


作为一个完整的新手,这有助于查看可用过滤器的范围:analog.com/designtools/en/filterwizard
user391339

3

您要设计的是数据采集系统

如果它具有数模(DAC)转换器,则可以做到。否则,请获取一个外部DAC,并让微控制器通过它可以进行的任何通信(I2C,SPI,UART等)。

注意您标记了微芯片,它们确实具有带有DAC的微控制器,从简单的微控制器(pic12f752,pic16f753,782)到高级的微控制器(dsPIC33fj16GS504,502,302)等。您可以通过此处http://www.microchip.com/maps/microcontroller.aspx找到它们


然后,我可以使用12F752为例,使用他的CDA生成电压,然后使用CAD来获取系统值并进行分析,对吗?
user26136 2013年

@ user26136,如果CDA =微控制器的DA,而CAD =微控制器的AD,则可以!我建议您也参考校准应用笔记
Iancovici

哈哈,是的。
user26136 2013年

1

根据系统消耗的电流,您可以使用梯形电阻器作为DAC来执行此操作:http : //en.wikipedia.org/wiki/Resistor_ladder

如果您需要少量的特定电压值,则甚至可以设计梯形电阻来精确地发射那些电压,而不是普通的2 ^ n个均匀间隔值的系统。

如果它消耗非平凡的电流,则您需要在输出上配置一个运算放大器作为缓冲器。确保您的运算放大器在0V附近以合适的线性度工作;为此,您可能需要使用负电源。


1

除其他答案外,大多数微控制器还具有PWM功能(如果没有,则始终可以对它们进行位冲击)。如果将PWM馈入简单的RC滤波器,则可以制造原始DAC,而无需增加许多额外组件或成本。


1

如果您对PWM没问题,那么Arduino的Analog输出就可以完成工作。您还可以考虑添加一个低通滤波器,因为这些脉冲可能会非常吵杂。

如果您需要更清洁的解决方案,请查找DAC模块随附的微控制器。一些MSP430微控制器具有可使用的DAC(请参见第23页)。您需要查看他们的数据表。

如果您发现自己受限于没有DAC的微控制器,则可以考虑购买DAC芯片。该芯片可通过SPI或I2C轻松控制,而且价格便宜。这是一个12位DAC,价格略高于一美元。

希望这可以帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.