打印

关于 STM32 Voltage glitch on ADC input 0的疑惑

[复制链接]
3629|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
airwill|  楼主 | 2011-3-17 09:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
根据 STM32F10xx8 and STM32F10xxB Errata sheet.
Doc ID 14574 Rev 9  P11 2.1 描述:

2.1  Voltage glitch on ADC input 0
Description
A low-amplitude voltage glitch may be generated (on ADC input 0) on the PA0 pin, when the ADC is converting with injection trigger. It is generated by internal coupling and synchronized to the beginning and the end of the injection sequence, whatever the channel(s) to be converted.
The glitch amplitude is less than 150 mV with a typical duration of 10 ns (measured with the I/O configured as high-impedance input and left unconnected). If PA0 is used as a digital output, this has no influence on the signal. If PA0 is used has a digital input, it will not be detected as a spurious transition, providing that PA0 is driven with an impedance lower than 5 kΩ. This glitch does not have any influence on the remaining port A pin or on the ADC conversion injection results, in single ADC configuration.
When using the ADC in dual mode with injection trigger, and in order to avoid any side effect, it is advised to distribute the analog channels so that Channel 0 is configured as an injected channel.
Workaround

中文翻译版是这么翻译的:
问题描述
当以注入触发进行ADC转换时,在PA0引脚(ADC输入0)上,可能会产生一个低振幅的电压毛刺。这个毛刺是由内部耦合和同步到注入序列的开始和结束产生的,与要转换的通道无关。
毛刺的振幅低于150mV,典型的持续时间是10ns(在I/O引脚配置为高阻输入并悬空时测量的)。如果PA0是作为数字输出,这将不会影响到输出信号。如果PA0是配置为数字输入,只要驱动PA0的另一端的阻抗低于5kΩ,这个毛刺将不会被检测为意外的转换。在单ADC配置时,这个毛刺不会对端口A的其它引脚产生影响,也不会对ADC注入转换的结果产生影响。
当使用ADC的双模式,并使用注入触发时,为了避免任何可能的副作用,建议分配模拟通道时,把通道0配置为注入通道。

我的疑问:
  既然 ADC0 上会出现与注入触发转换同步的噪声. 为何还说 "为了避免任何可能的副作用,建议分配模拟通道时,把通道0配置为注入通道。"
应该是避免将 ADC0 分配为注入通道才是呀?




None.
沙发
香水城| | 2011-3-17 18:09 | 只看该作者
很简单,因为这个毛刺不会对ADC注入转换的结果产生影响,所以把它配置为注入通道。

使用特权

评论回复
板凳
acgean| | 2011-3-18 09:05 | 只看该作者
哦, 这段文字是说: 不论哪一个通道在进行注入转换的时候, 都会导致 PA0 上产生一个电压毛刺, 而这个毛刺又在注入转换的开始和结束的时刻.
哪就奇怪了,  PA0 要用作注入转换, 开始转换时不就会受毛刺影响了吗?

使用特权

评论回复
地板
香水城| | 2011-3-18 10:26 | 只看该作者
哦, 这段文字是说: 不论哪一个通道在进行注入转换的时候, 都会导致 PA0 上产生一个电压毛刺, 而这个毛刺又在注入转换的开始和结束的时刻.
哪就奇怪了,  PA0 要用作注入转换, 开始转换时不就会受毛刺影响了吗? ...
acgean 发表于 2011-3-18 09:05


注入转换已经被分配到PA0,其它通道不做注入转换,怎么还会有毛刺?!

使用特权

评论回复
5
airwill|  楼主 | 2011-3-19 15:33 | 只看该作者
4# 香水城

这是说, 注入转换对所有的注入通道都产生毛刺影响, 设置 PA0 做注入转换, 只是让 PA0 来做 "替罪羊", 以避免毛刺继续地影响其他注入通道?

但是, 我对那段英文的理解, 是注入通道只会对 PA0 产生毛刺, 而不会影响其他通道, 这里的理解错误吗?

另外: 注入通道最多可以设置到 4 个通道, 为什么设置了 PA0 做注入通道, 就没有其他通道也设置成注入通道了呢?

使用特权

评论回复
6
airwill|  楼主 | 2011-3-21 09:18 | 只看该作者
请版主做进一步解释, 谢谢

使用特权

评论回复
7
香水城| | 2011-3-21 10:30 | 只看该作者
没错:注入通道只会对 PA0 产生毛刺, 而不会影响其他通道。

配置PA0作为注入通道只会在PA0上产生毛刺,而不会影响其他通道,同时也不会对PA0的转换产生影响。
例如你把PA1作为注入通道,而把PA0作为普通AD通道,则作PA1转换时会影响PA0通道;而反过来则互不影响,也不影响转换结果。
当然如果你把PA0和PA1都作为注入通道,则转换PA1时还是会对PA0产生影响,但同样不会影响转换结果。

勘误手册只是给出了建议的配置,这样在某些应用中可以避免影响(如只有一个注入通道的情况),但并没有说这样能根本解决(使用多个注入通道时侯的)问题;所以在勘误手册中Workaround一栏写的是None,也就是说没有解决办法。

使用特权

评论回复
8
airwill|  楼主 | 2011-3-24 09:41 | 只看该作者
完全明白楼上的意思.
我的问题在于:
既然毛刺同步与 注入转换, PA0作为注入转换时也会产生毛刺, 那怎么会不对 PA0 的转换产生影响呢?
相反: 如果 PA0 作为规则通道. 根据注入优先原则. 在发生注入转换时, 规则通道原来的转换会终止或取消, 这个毛刺又怎么去影响 PA0 这个规则通道呢?

使用特权

评论回复
9
香水城| | 2011-3-24 10:30 | 只看该作者
注入转换不会对PA0的转换产生影响,这是勘误手册中写明的,至于为什么我不清楚。

注入转换对PA0产生影响,并不取决于规则通道的转换是否终止或取消,所以只要PA0作为规则通道,注入转换就会对它产生影响。

使用特权

评论回复
10
wps_carpc| | 2011-3-24 10:57 | 只看该作者
stm32 用ADC做按键,通过外接电阻分压取得不同的值,请问高手这个怎么做!

使用特权

评论回复
11
airwill|  楼主 | 2011-3-24 19:39 | 只看该作者
本帖最后由 airwill 于 2011-3-24 19:42 编辑
注入转换不会对PA0的转换产生影响,这是勘误手册中写明的,至于为什么我不清楚。

注入转换对PA0产生影响,并不取决于规则通道的转换是否终止或取消,所以只要PA0作为规则通道,注入转换就会对它产生影响。
香水城发表于 2011-3-24 10:30

这个问题连香主都说不清, 看样子只能放一放了. 只能简单地按照要求来处理吧, 相信 ST 公司写这个文档时时经过反复测试后的有效结论了

使用特权

评论回复
12
香水城| | 2011-3-25 10:28 | 只看该作者
呵呵,自卑地宣布:香主不是万能的,只能尽力而为,:L

使用特权

评论回复
13
acgean| | 2011-3-25 21:25 | 只看该作者
呀, 这么好的讨论, 还没有结论就这么地要结束了?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

556

主题

17724

帖子

884

粉丝