Questions tagged «adc»

ADC是模数转换器。该设备将模拟信号转换为数字形式。数字电路主要使用它进行模拟测量。

1
使用12位ADC时的设计要点
我目前正在设计一个将12位ADC(MCP3208)连接到Raspberry Pi的电路板(除了其他一些与低速I / O相关的东西)。它通常会连接到模拟传感器(温度传感器,IR距离传感器和类似的东西,尽管并不总是需要12位分辨率,但在某些情况下,拥有更多信息确实是一件好事)。 我对模拟电路没有太多的经验,对所涉及的基础数学和物理也没有很好的理解。 我正在阅读有关ADC的几本设计指南,并且经常阅读诸如抗混叠滤波器,用于高阻抗信号的ADC驱动器,模拟地平面,以某些方式布置走线以减少噪声的内容,以及保持高速数字电子设备尽可能多地分离的内容。 ADC可以减少开关噪声,精密电压基准以及更多我尚不完全了解的内容。 所以我开始想知道,如果我没有专业知识来正确实现它,那么使用12位ADC是否对我有意义,因为我可能会因为电路设计欠佳而放弃2个LSB,而应该搭配10位ADC。还是在我认为的12位领域中,最佳电路设计并不那么关键。 应该采取什么措施来降低噪声(例如明显的旁路帽)?在诸如我的混合信号应用中(具有GHz处理器与ADC对话)的最大噪声原因是什么?实际上,只有在更高精度的应用程序(14-16bit +)中才需要做什么? 我真的很想知道我应该注意哪些明智和重要的事情。

2
未使用的模拟输入该怎么办?
我正在使用ATmega328p atmel微控制器开发应用程序。我从28 PDIP版本开始,但是现在我想使用32 TQFP,在编译Altium项目后,我注意到它有2个额外的输入。 这些输入是ADC7:6,它们“用作A / D转换器的模拟输入。这些引脚由模拟电源供电,并用作10位ADC通道”,根据数据手册。 我在网上阅读过一些人使用ADC并具有浮动输入时得到未知结果的信息。我读到的它们是激活下拉电阻,但我看不到如何配置它们(因为它们不属于I / O端口)。另外,我的应用程序甚至根本不使用A / D转换器。 最佳做法是什么?我应该连接一个外部下拉电阻吗?忽略Altium错误?

2
减少由小型直流电风扇引起的电噪声
有什么方法可以减少/消除小型无刷直流风扇在ADC中产生的电气噪声?对于低于参考,我还使用这壁疣和这个 5V线性稳压器。 我的基准系统如下所示: 我头脑中有些选择,我想知道最好的选择是什么。 我的第一个想法是[选项A]: 我的第二个想法是[选项B]: 我的第三个想法是[选项C]: 我可能没有想到过其他选项,以及这些选项的排列和组合。这些选择的优缺点是什么?您会选择什么选项,为什么?


2
ADC接地
快速,高分辨率的ADC,尤其是具有并行输出的ADC,通常具有单独的电源引脚(DRVDD,(驱动器vdd)或OVDD(输出vdd)),大概是因为它们不想将噪声耦合到敏感的模拟电源,而数字输出信号切换。 大多数ADC数据手册都建议在器件正下方使用一个完整的接地平面,并以尽可能小的电感将OGND和GND连接至该平面。 在一种情况下,我们在一块板上有多个这些ADC。我想知道即使PCB上有多个ADC,“单一接地平面”建议是否仍然有效。 在我们的设计中,我们使用了两个单独的接地层,一个用于GND(VDD的gnd),另一个用于OGND(OVDD的gnd),并且我们将这两个平面连接到PCB边缘附近,在这里,电源通过适配器进入插口。 任何想法,现实世界的例子或参考文件的链接将不胜感激。


4
使用HAL的STM32 ADC转换
我正在尝试学习如何从stm32使用“新” HAL库。 当我尝试进行简单的ADC转换时,它只能运行一次,但随后会停止转换。我想转换结束标志未设置。我正在使用STM32f429I发现板,板上有STM32f429ZI。 请注意,我知道sprintf是一种不好的做法,并且使带有中断的adc更好,我知道,请不要指出这一点,这与问题无关,我只是在这里测试HAL。 所以问题是为什么未设置EOC标志,或者我应该怎么做才能使其正常工作?谷歌搜索没有太大帮助,因为那里关于HAL的好材料很少。 这是代码: __IO uint16_t ADCValue=0; void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc); int main(void) { char str[15]; /* Various initializations */ HAL_ADC_Start(&hadc1); while (1) { if (HAL_ADC_PollForConversion(&hadc1, 1000000) == HAL_OK) { ADCValue = HAL_ADC_GetValue(&hadc1); sprintf(str, "%d", ADCValue); BSP_LCD_DisplayStringAt(130,30, (uint8_t*)str, LEFT_MODE); } } void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc) { ADCValue = HAL_ADC_GetValue(&hadc1); } …

2
ATMega328外部AREF连接
根据ATMega328数据表,第24.9.1节: 如果将外部基准电压施加到AREF引脚,则可能不使用内部基准电压选项。 从Arduino 参考页面: 或者,您可以通过5K电阻将外部基准电压连接到AREF引脚,从而可以在外部和内部基准电压之间切换。注意,由于AREF引脚上有一个内部32K电阻,该电阻会改变用作参考电压。这两个用作分压器,因此,例如,通过电阻器施加的2.5V电压将在AREF引脚上产生2.5 * 32 /(32 + 5)=〜2.2V。 ATMega328数据手册在表29.16 ADC特性中确认了“内部32k电阻”参考,参考输入阻抗= 32 kOhm。 话虽如此,以上两种说法似乎在某种程度上是对立的。我有一个应用程序,其中一些传感器输出0-5V满量程,另一些传感器输出0-1.8V满量程。当对1.8V传感器进行采样并切换至5V传感器的内部AVCC参考电压时,分辨率的提高将有利于该应用。 Arduino参考页建议这样做是可行的,因为您已通过5kOhm串联电阻耦合到1.8V AREF,并考虑到内部32kOhm电阻隐含的分压器。这只是来自Arduino参考的不好建议,还是做这种事情实际上是一种普遍的做法?Atmel的陈述是否仅限于在没有外部限流电阻的情况下施加到AREF的外部电压(如果是,则考虑内部32k电阻)? 顺便说一句,显然,使用适当构建的运算放大器将1.8V信号缩放至5V可以达到类似的结果,但是如果同样可以由板载ADC处理的话,那么增加的复杂性和部件似乎很浪费。通过利用可变参考电压。同样,如果您可以使自己确信所感测的信号不会超过1.1V,则可以利用内部参考电压。再次,对我来说,使用为低压传感器供电的1.8V调节器来设置参考值似乎更为优雅。

2
有人可以解释这个微控制器ADC接口(用于读取太阳能电池板电压)吗?
我正在尝试了解TIDA-00121中找到的电路的功能(您可以从此处下载设计文件) 我认为这与以下事实有关:PV并未直接接地(当太阳能电池板的电压太低而无法阻止任何反向电流流入电池板时,反向电流MOSFET可能会关闭) 对于传递函数(来自源代码),微控制器侧的电压等于: V = 0.086045Pv-0.14718475V(PV是面板电压)。 这是从Vref = 2.39,10位ADC和源代码公式得出的: 面板电压= 36.83 * PV-63 从源代码验证我的假设: 电池电压= BV * 52.44 产生电池分压器微控制器侧的电压: V = 0.122BV是分压比(14K / 100K网络) 问题是: pnp晶体管网络的作用是什么? 如何计算微控制器侧电压的传递函数? 非常感谢你。

2
是什么会对我的ADC记录造成这种幅度干扰?
我正在使用12位6.4Mhz ADC记录传感器读数。 这是一个超声多普勒系统。DAC用于生成TX频率,该频率从移动的目标反弹并通过超声波传感器接收。 在我的测试环境中,该读数的幅度随时间推移是相当一致的: 但是,当传感器安装在现场时,我看到了这种奇怪的幅度调制类型的干扰: 我对接收到其他频率的干扰很熟悉,或者干扰了录音,但是我不知道是什么原因造成的,振幅似乎在某些点上下降了。 我什至不知道这叫什么,它有名字吗?更重要的是,什么会导致这种行为? 更多信息: FFT的更多结果: 这不是摆设。放大“零交叉”之一: 我什至在Matlab中通过将ADC数据与200 Hz的正弦波混合来重现了这一点。 两个FFT峰值中每个峰值的顶部都有两个单独的最大频率,而不是一个。
9 adc 

3
为什么音频运算放大器需要如此高的电源电压?
这可能是一个愚蠢的问题,但是我还无法在互联网上的任何地方直接找到它。我还在线回答了一些相关问题,希望不要偏离主题太多。 在专业齿轮中,线路电平音频信号的峰峰值约为3.5V,为什么音频电路通常需要或建议+/- 12v或更高的电源电压? 这纯粹是净空的事情吗?还是运算放大器的非线性取决于电源电压? 还是支持更便宜的组件?查看TL072的数据表,如果负载电阻变小(2k Ohm),则最大输出电压可低至电源轨的2/3,但对于10k Ohm负载,最大输出电压通常为电源轨的90%。但是,您还可以使用轨到轨的高端运算放大器吗? 提示此问题的主要内容是查看Cirrus CS4272的数据表以及评估板上的原理图/数据。在这种情况下,即使ADC在0v至5v的电压范围内工作,他们仍选择为输入缓冲器使用双极性+/- 18V电源。在该特定示例中,他们使用NE5532D8,其最坏情况下的输出摆幅为电源轨的80%,并支持低至+/- 3v的电源轨。 因此,如果ADC仅支持0-5v音频(大概偏置在2.5v左右),为什么他们会使用+/- 18V的电源,而使用+/- 3v的电源仍然可以轻松适应3.5V峰峰值范围? 根据数据手册,该电路也没有发生缩放(增益或衰减): XLR连接器通过单位增益,交流耦合的差分电路为CS4272模拟输入供电。2 Vrms差分信号将驱动CS4272输入达到满量程。 因此,任何超出线路电平的信号都会被ADC削波。相对于运算放大器,最好在ADC中进行削波?或者,即使它仍仅提供约3.5v峰峰值线路电平输出信号,还是输出级需要更高的电源轨? 在驱动5v单电源ADC的情况下,为什么在5v单电源上使用具有更高双极性电源的输入级比在LT1215之类的器件更好的原因是什么?(我无法发布链接,因为在这个特定的Stack Exchange上我还没有10个声誉...对Google来说很容易) 谢谢!

2
MCP3424,如何并行读取通道?
关于这个问题 我没有电子工程背景,这是我通过I2C进行通信以及写寄存器的第一个挑战,因此,请不要在我这方面承担太多的知识。我正在编写Arduino。 在询问特定的电子组件/芯片时,我认为人们无法进行实验/测试以给出正确的答案。我也希望人们甚至不知道这一部分。因此,我将尝试在此问题中添加很多信息。 如果您需要更多信息,请告诉我。 该组件具有四个ADC 我正在使用4通道组件MCP3424(数据表)。它有两个包装。我使用的是MCP3424 E / SL 4通道SOIC版本,而不是MCP3422或MCP3423 2通道版本。 我相信它有四个ADC。在RS-Online上,似乎E / SL版本具有4个ADC(直接链接),而E / ST仅具有1个(直接链接)。 我认为这必须意味着它可以同时在多个通道上进行采样。我看不出有任何其他原因在该组件上放置多个ADC。 我对吗? 通过I2C进行通信 通过发送一个配置字节,然后等待采样结束并读取结果来进行通信。 配置字节格式 有趣的是: 从左数第3位,从1开始计数:连续采样 从1开始,从左数第1位和第2位 有关配置字节的更多信息,请参见数据表第18页,此处也有描述。 读取结果的格式 我的示例仅具有18位分辨率(位5和6设置为1)。读回的结果将是四个字节:前三个包含值,第四个包含配置字节。 但是,最左边的位!RDY指示该值是否为“新”,即自上次读取以来是否为新读数。第一次读取一个结果时,该值为0,随后的结果为1,直到ADC准备好新的采样值为止。 如何在不并行采样的情况下使用它 我完全知道该怎么做。我在网上找到的所有示例,也很简单。只需将配置字节写入组件,然后回读一个值即可。 如何设置每个通道自动连续采样,并并行读取通道 伪代码可能像 setup(): start sampling channel 1, 18bit, 0gain, continuously start sampling channel 2, 18bit, 0gain, continuously start sampling channel …
9 arduino  adc  i2c 

2
在ADC之前向运放添加一个抗混叠滤波器
我正在设计一种电路,该电路旨在从多个通道捕获音频样本以进行声源定位。 在进入13位ADC之前,每个通道具有以下2级运算放大器电路: 我希望能够定位高达10KHz的声源,但是带宽越大越好(我认为电容麦克风可以处理高达16KHz的声音,而不是100%不确定) 我采样得越快,可以获得的空间分辨率就越好。我能够压缩大约75KHz的采样率。 问题 我需要担心ADC之前的抗混叠滤波器吗?据我了解,仅当您在Nyquist极限以下工作时才会发生混叠,因此理论上75KHz / 2的最大频率分量将是我的极限,这比我需要的要高得多。 如果我不需要任何抗混叠滤波器,是否应该采取其他措施消除输出上的不必要噪声?当我查看示波器时,似乎还可以,但这仅建立了1个通道,当我在同一块板上添加所有5个通道时,我会担心它们会互相干扰。

4
外部ADC的用例
大多数微控制器(uC)的外围设备均具有模数转换器(ADC),这是惊人的,因为它将两个组件集成到一个封装中。这些ADC通常也进行寄存器映射,从而可以快速,轻松地提取数据。 尽管紧密集成,您仍然可以购买外部ADC。我可以看到几种情况: ADC需要与uC隔离。 ADC样本的位深度必须高于uC的ADC。 感应电压远离微控制器,较长的模拟线路是不可接受的。 感应电压处于不适合uC的恶劣环境中。 外部ADC的采样速度比uC的ADC快得多。 某些样品的参考电压与其他样品的参考电压不同,需要多个Vref引脚(因此需要多个外部ADC)。 当前的uC没有足够的ADC通道,放置新uC的成本高得令人望而却步。 外部ADC的功耗比uC的ADC少(我需要一个例子来相信它)。 ADC通道必须同时采样(罕见情况)。 在制造时对固件进行编程的成本超过了较昂贵的ADC部件的成本(不太可能)。 PCB具有空间限制,没有uC可以容纳(不太可能)。 这一切都很好,但是让我感到奇怪的是,外部ADC通常比uC同类产品贵很多,但是却提供了等效的功能。例如,您可以以约$ 1的价格购买带有12bit 1Msps ADC(带有内部参考)的EFM32Z部件,或者以约$ 3.50的价格购买等效的12bit 200ksps ADC (相同速度(ish),相对相同的功率数字等),以及执行相同的任务(提取ADC数据)。 问题就变成了:当一个微处理器能够执行相同的功能时,是否有令人信服的理由使工程师更喜欢一个外部ADC而不是一个uC的ADC?

1
AD转换器上差分输入的阻抗
我目前正在尝试将较快的ADC / DAC转换器芯片连接到FPGA以在将来接收和发送RF,但是我现在的主要目标是让转换器运行并连接信号发生器和示波器进行测试。 。 我来自数字世界。我做了各种各样的数字电路,并使用微控制器使用AD转换器来完成简单的任务,但是当涉及到模拟高速信号时,这些信号对诸如阻抗等多种因素具有差分和敏感性,我基本上不知道我要做什么。我在做。 我要用于该项目的芯片是AD9862。它虽然很旧,但价格并不昂贵,易于焊接,并且已被Ettus Research在其USRP的几种型号中使用,我将它们用作参考平台。如果您有更好的芯片的建议,请告诉我! 现在,我主要关心的是整个模拟域。AD9862具有2个差分输入,可以选择对其进行缓冲(这是我应该做的,对吧?),数据手册说输入缓冲器的恒定阻抗为200 Ohm。现在,我要做的就是将这两个AD通道连接到阻抗为50 Ohm的不平衡SMA连接器中,以便以后连接信号发生器或无线电前端。所以,我需要一个巴伦。 Ettus也这样做。它们有几个子板,您可以将其连接到底板上,以将不同的前端连接到AD- / DA-Converter。现在,如果我看一下完全符合我想要的功能的BasicRX子板(当时是:最简单的子板),我会发现它们正在使用称为ADT1-1WT的Balun 。如果我向上看,数据表告诉我,它的阻抗为75欧姆。那不是完全错误吗?我以为我需要50欧姆不平衡到200欧姆平衡的变压器。 同样,输入端用50欧姆电阻端接,输出端直接串联到AD(VINP_A / VINN_A和B),对接AD(VINP_A / VINN_A和B),对吗? 10pF电容器吗?我在邮件列表上读到某个地方,在此示意图中,低通滤波器的值在50欧姆的BTW中是错误的。这与AD输入的200欧姆输入阻抗根本不匹配。如果有人可以向我解释这一点太棒了!对我来说,所有的价值观都是完全不对的。 另外,PCB上的走线又如何呢?它们还需要具有正确的阻抗,以防止反射和驻波。我想匹配他们吗?因此,平衡-不平衡变换器的输出应该是到AD输入的差分阻抗为200欧姆的差分走线,而在平衡-不平衡变换器的另一侧,我需要50欧姆的走向SMA连接器的走线吗? 如果有人可以为我阐明这一点,那就太好了!这些都是您似乎只有在大学以电气工程专业而获得的所有东西,而我则是计算机科学的,这对我来说只是业余爱好,所以我现在有点迷失了:(

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.