STM32F0x1比较器(COMP)和ADC同时在同一引脚上吗?


8

我正在整理一个利用STM32F051微控制器上的比较器外设的项目。我已经阅读了文档,为了使比较器正常工作,需要将输入引脚配置为模拟...如果您将该引脚用作ADC输入,则设置相同。

我可以使用单个引脚(例如PA1)作为输入并将其配置为窗口比较器输入和ADC_IN1上的ADC输入吗?

我是否应该考虑这种配置的陷阱,例如额外的噪声?

数据表(p 19)

参考手册(p 295)

一个有趣的参考,建议应该可行: 在此处输入图片说明 摘自AN4232:STM32F3系列模拟比较器入门


1
您可以链接到相关文档吗?我发现的数据表中没有提到比较器,但这是一个有趣的问题
David

我当然要说的是STM32F0 * 5 * 1 ...
Daniel

根据我的经验,这应该可行,但是我不能肯定地说,我怀疑您会在官方资源中找到此信息。可以做IMO的最好的事情就是进行实验-获得一块价格很便宜(〜10美元)的STM32F07x核板并进行测试。或获得F051发现板,它们并不贵。ST在不同的MCU中使用相同的外围IP核,因此您可以期望它在F07x和F051之间表现相似。
Jan Dorniak

@JanDorniak是的,那是最好的方法。不幸的是,要确定这一点将花费我很长的时间(数天的混乱),我需要花时间准备用于原型生产的PCB。如果没有人回来,我最终会这样做。
丹尼尔(Daniel)

1
@Daniel我可以肯定地说的一个问题是某些外设是通过引脚连接的-将DAC作为COMP输入连接时遇到了麻烦,因为它们是通过我尝试用作数字输出的引脚连接的。没用,幸运的是我在MCU上有一些空闲的引脚。如果您想研究一下,它是L053上的PA4
Jan Dorniak'1

Answers:


4

这行得通,您将获得数字以及中断。我已经签出,可以下载。

精度和毛刺程度尚未确定。但是在该线程中@Bence Kaulics指出的Appnotes中对此进行了很好的描述(有关其他AppNotes,请参见results.txt)

我认为它会稳定的原因如下。

a) The circuit diagram in RM0091 shows a direct connection from comparator to pin. i.e. it is indicated that the comparator cannot be disconnected with a switch or MUX, and will thus work as soon as the pin is assigned 'analog in'.

b) The comparator is NOT dependent on a 'Clock' to enable it (it is alow power device).

c) ST would not be able to make this level of change without assigning a new part number.


The good news is that one can continue to use the comparator for high-speed events such as over current and emergency stop etc whilst still using the ADC analog window events for other software control.

这也适用于DAC,即,您可以在DAC内部或在外部使用DAC和一些电阻设置整个器件。

只要看一下电路,您就将ADC与比较器(实质上是放大器)并联使用。众所周知,这些都是非常高阻抗的大增益器件。毛刺不是我们的朋友。

现在,我们将每隔一个频繁地在该引脚上敲一个放电帽,以馈入ADC。

众所周知,我们需要对ADC进行过采样,并且最好在复用器切换事件之后拒绝第一读数,以消除往返于相邻通道的偏斜。

STM上的ADC的输入阻抗略小于50K // 5pF,具体取决于使用方式。(DM00039193.pdf第76ff页)

表53给出了400-> 50KOhm的值,这是我校准F373 ADC时需要的时间。

第79页显示ADC电路。

第82页给出了比较器引脚的简短说明,与上面的模拟引脚的一般说明(pg73ff)一致阅读

将其与比较器输入和ADC MUX并联,并在香料中建模。切记要定期将ADC电容充电至随机电压。

无论电路和软件中发生了什么其他事情,您的比较器输入都会出现相当合理的故障。即使将引脚连接到低阻抗跟随器和去耦电容(在比较器输入的移动线上??

ADC使用的上限是杀手the。希望将来的设备将在ADC和比较器上使用内部跟随器/隔离器进行采样。这些可能已经作为未记录的功能存在(不太可能由于多路复用器串扰)。

像我一样,我认为我们对事物的数字方面是如此投入,以至于当我们转向模拟和混合技术时,我们会忘记最基本的东西。

如何使用电流电压转换器测量小电流?是我昨天与其他人进行的讨论。我知道答案,因为我自己对此犯规。即使以最佳3V电压输入50K,我们也能获得16K /伏的AVO。我上一次使用这种AVO /万用表是什么时候?

综上所述,对F373电路的观察表明,ST和ARM似乎打算从同时在混合设备中使用的比较器和adc取得可行的结果。150和300系列中增加了运算放大器,从而提供了有关阻抗隔离要求的线索。

我相信,比我更聪明的人将能够重新设计这些内部互连所针对的环境。我认为汽车或HVAC ....逆变器和FOC。FOC库可能提供有价值的见解。

除非您要构建高速,高精度的仪器,否则这种用法可能足够稳定以至于无法实际使用(在上述说明中)。当然,它将节省大量外部电路。最好进行高速严格的测试,作为学生的练习(吸引我学习)。

解决这里

看起来HAL ADC库对于多通道DMA有点破损。我已经在STM网站上发布了答案。解决方法:-

a)IRQ两个ADC

b)轮询两个ADC

c)DMA一个通道并轮询另一个

d)手动初始化低电平寄存器

这是使用两个比较器的解决方案的另一个警告,直到找到更好的解决方案。


在STM32F4Discovery上,ADC2和ADC3可以与HAL正常工作。我正在将DMA2 Stream1与ADC3和DMA2 Stream2与ADC2一起使用,两个ADC上都有两个已配置的通道。DMA模式是循环的。同样在STM32F3上使用HAL时,我将同时使用四个不同的ADC和DMA,在DMA2上使用3个通道,在一个DMA1上使用一个。当您也尝试使用多通道DMA时出了什么问题?
Bence Kaulics '16

@Bence-我曾在多通道ADC-DMA配置中使用过F1,F3和F4,它们使用不同的机制向DMA添加通道。可以按任何顺序扫描频道。STM32L0系列具有不同的内部结构,通道会根据通道号自动确定优先级。有不同的结构和设置它的调用。每个通道在一次扫描中只能出现一次。
ChrisR

我知道了,这个优先顺序是固定的吗?
Bence Kaulics

感谢您的回答,并努力直接确认它是否有效,以及寻找支持性研究。非常感激!
丹尼尔(Daniel)

1
@Bence-是的,优先级和顺序是固定的-按通道号进行。一件很棒的事情是您可以对扫描进行超采样和平均。看到上面链接的RM,值得一读。与许多人一样,我为所有HAL设备之间的HAL库不是(也不能是透明)而感到难过。
克里斯(ChrisR)2016年

4

我可以在应用案例中使用STM32F05xx模拟比较器AN4112),第4页找到以下最相关的设置:

在此处输入图片说明

它说:

图1 显示了在使用比较器2(COMP2)的模拟电压监视应用中,如何将传感器输出(温度传感器,压力传感器,热电红外探测器,光电二极管传感器)连接到STM32F05xx器件。COMP2在停止模式下监视模拟电压,而ADC在运行模式下进行测量。

ADC和COMP在这里交替工作,但我认为它们是同时配置的。如果我们继续阅读本文档,则会有关于COMP配置的框图。

在此处输入图片说明

基于此图像,我认为ADC和COMP共享相同的ADC通道,唯一的区别是启用的模拟阈值源数量

问题中图5下的文本指出

比较器输入是ADC通道

可能与ADC_IN1相同。

整个配置的目的是节省功耗,COMP会触发MCU的状态更改(STOP <-> RUN)。因此,当输入低于某个阈值时,MCU和ADC将关闭,只有比较器可以工作;而当输入高于阈值时,MCU和ADC将被唤醒,ADC会测量输入电压。但是,如果输入再次低于阈值,则COMP将MCU发送到STOP状态。

在此处输入图片说明

这是一起使用它们的一种方式,我希望这可以使问题向前发展。


谢谢您的回答。它增加了很多讨论。最后,我决定将赏金授予可以直接确认答案的人,但这是我的赞誉,并深表感谢!
丹尼尔(Daniel)

这是一个非常有趣的问题,我很高兴参加。此外,我同意Chris已获得奖励:)。他做了很多工作,没有浪费时间和精力。
Bence Kaulics '16

3

我认为您应该在STM论坛上提问。在同一引脚上也有(STM32F1)UART RX和TIMx,均为输入,但是不能一起使用,例如检测传输定时器中断的结束。取而代之的是,必须并联一个不同的TIMx引脚,以具有功能UART RX和定时器中断。我想只有一个功能可以同时激活。
尝试下载MxCube,看看可以构建什么配置。


这是一个体面的观点。我有它,我应该看看它是否允许它。但是,即使不是,也不一定意味着您不能:/
丹尼尔(Daniel)

就是说,我希望文档更好,更全面,并且我对任何其他答案都充满信心,而不仅仅是“我尝试过一次,但没有成功”
Daniel

@Daniel您是正确的,我认为最终的答案将在尝试时为您提供MCU本身。
MarkoBuršič16年
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.