完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用 STM32F091 板,我将 ADC 设置为:
然后我将频道顺序设置为所有频道,如上所述。 VREFINT 通道也作为序列的一部分被捕获,以定期粗略监控 3V3 电源电压是否仍然正常。 在操作期间,当软件连续触发 ADC 序列时,我进行了以下观察:
采样时间应该不会太短,已经是最长的了。 我再次阅读了参考资料中 ADC 章节的部分,还有勘误表,没有发现任何我可能忽略的与此相关的内容。 编辑: 好的,我忘记了一件事:对于常规电压通道,我有(软件)8 倍平均,我最近添加的这个 Vrefint 监控使用该通道的原始最后一个 ADC 值将其转换回 Vdda。 禁用常规电压的平均现在稍微改变了图片,但它并没有那么奇怪:现在*一些*通道也有一个“最后一个错误时间戳”(来自 systick 的毫秒分辨率)与最后一个 Vdda 错误对齐(即超出 +/-10% 的范围)。 而其他通道,在让它运行 15 分钟后,仍然只有启动后 100 毫秒的时间戳,预计会稳定下来。 所以:我现在确实在Vrefint/Vdda 之外的某些通道上看到了这一点,但在其他通道上看不到,在示波器上也没有什么特别之处。所有通道都通过相同的代码在相同的循环中捕获,唯一的特殊处理是 Vrefint 值取自具有最后样本而不是平均样本的缓冲区。那些受到影响的渠道似乎保持不变。 即在禁用平均之前,同样受影响的通道的错误之前已被“平均掉”。使用它作为解决方案并忽略原因似乎不是一个好主意。 有趣的是受影响频道号码的模式: 0 否,1 否,2 是,3 是,4 否,5 否,6 是(在测试中未跟踪超出该范围,但似乎 2x 否,2x 是,2x 否,...) |
|
相关推荐
1个回答
|
|
当我在 1 kHz systick ISR 中停止状态 LED 切换时,有趣的行为就消失了。起初的想法可能与产生噪音的引脚切换有关。但似乎没有一行代码被注释掉是罪魁祸首,(去)激活代码的不同组合可能产生相同的结果。 所以我觉得这是关于时机的。虽然引脚切换显示我的系统运行在预期的 1 kHz,但改变它的时间(在它里面做了什么,即在调用它返回后)改变了行为。 所以我终于明白了,ADC 转换序列可能会在非常不合时宜的时候被唯一的更高优先级中断——systick 中断。 是的,当错误出现时,ADC ISR OVR 位被设置。 因为对我来说,系统具有最高优先级似乎是有意义的(毕竟,这是我的时基,而且,对需要立即对变化做出反应的引脚进行关键监控,旁边是有趣的 LED 切换), 我猜: 为此使用 DMA 最有意义吗?没想到这个应用程序需要它,但看起来我需要。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2448 浏览 1 评论
3157 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1724 浏览 1 评论
3542 浏览 6 评论
5902 浏览 21 评论
881浏览 4评论
1257浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
525浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1241浏览 3评论
1296浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-27 11:48 , Processed in 0.987553 second(s), Total 49, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号