Answers:
是的,所有微控制器都有某种方式来产生由固件控制的电压信号。蛮力方法是使微型计算机包含一个数模转换器(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方法起作用。
您要设计的是数据采集系统
如果它具有数模(DAC)转换器,则可以做到。否则,请获取一个外部DAC,并让微控制器通过它可以进行的任何通信(I2C,SPI,UART等)。
注意您标记了微芯片,它们确实具有带有DAC的微控制器,从简单的微控制器(pic12f752,pic16f753,782)到高级的微控制器(dsPIC33fj16GS504,502,302)等。您可以通过此处http://www.microchip.com/maps/microcontroller.aspx找到它们
根据系统消耗的电流,您可以使用梯形电阻器作为DAC来执行此操作:http : //en.wikipedia.org/wiki/Resistor_ladder
如果您需要少量的特定电压值,则甚至可以设计梯形电阻来精确地发射那些电压,而不是普通的2 ^ n个均匀间隔值的系统。
如果它消耗非平凡的电流,则您需要在输出上配置一个运算放大器作为缓冲器。确保您的运算放大器在0V附近以合适的线性度工作;为此,您可能需要使用负电源。