我正在整理一个利用STM32F051微控制器上的比较器外设的项目。我已经阅读了文档,为了使比较器正常工作,需要将输入引脚配置为模拟...如果您将该引脚用作ADC输入,则设置相同。
我可以使用单个引脚(例如PA1)作为输入并将其配置为窗口比较器输入和ADC_IN1上的ADC输入吗?
我是否应该考虑这种配置的陷阱,例如额外的噪声?
数据表(p 19)
参考手册(p 295)
一个有趣的参考,建议应该可行: 摘自AN4232:STM32F3系列模拟比较器入门
我正在整理一个利用STM32F051微控制器上的比较器外设的项目。我已经阅读了文档,为了使比较器正常工作,需要将输入引脚配置为模拟...如果您将该引脚用作ADC输入,则设置相同。
我可以使用单个引脚(例如PA1)作为输入并将其配置为窗口比较器输入和ADC_IN1上的ADC输入吗?
我是否应该考虑这种配置的陷阱,例如额外的噪声?
数据表(p 19)
参考手册(p 295)
一个有趣的参考,建议应该可行: 摘自AN4232:STM32F3系列模拟比较器入门
Answers:
这行得通,您将获得数字以及中断。我已经签出,可以从下载。
精度和毛刺程度尚未确定。但是在该线程中@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)手动初始化低电平寄存器
这是使用两个比较器的解决方案的另一个警告,直到找到更好的解决方案。
我可以在应用案例中使用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状态。
这是一起使用它们的一种方式,我希望这可以使问题向前发展。
我认为您应该在STM论坛上提问。在同一引脚上也有(STM32F1)UART RX和TIMx,均为输入,但是不能一起使用,例如检测传输定时器中断的结束。取而代之的是,必须并联一个不同的TIMx引脚,以具有功能UART RX和定时器中断。我想只有一个功能可以同时激活。
尝试下载MxCube,看看可以构建什么配置。