完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用 Nucleo STM32F091RC 板,我配置了 ADC 以测量序列中的所有通道,即特定芯片具有的所有 10 个 ADC 引脚,以及 3 个内部引脚:温度、vrefint、vbat。
我校准了 ADC,按照勘误表中的说明在启用之前等待了一段时间,测量了 Vrefint 多次(当时只有序列中的那个通道,以防 MUXing 可能产生轻微的串扰),从参考计算 VDDA 和来自系统内存的存储值。 当我测量 10 个外部引脚上的电压时,它们似乎都正确且相当准确。 Vbat 看起来也不错。Vrefint 看起来也像数据表中所说的那样。 但是内部温度完全关闭。 测得95℃左右,但MCU明显感觉不到人体温度。 我已经尝试了 3 件事来计算它:
我用冷冻喷雾检查了 MCU 外壳,事实上,在喷雾几秒钟后,测量/计算的温度下降到几乎一半,然后在几秒钟后再次升高到 95°C。 所以温度通道肯定是启用的,它是转换序列中的正确索引。 另请注意,我使用了 239.5 个 ADC 滴答的最大可用采样时间。 我得到的 ADC 值大约是 1400。它已经补偿了 vdda,没有补偿 iw 大约是 1500。 这个温度传感器输出的那些通常值是@ 3V3 吗? 到底还有什么可能是错的? 作为参考,我使用的参考手册中的代码(几乎一字不差,只是省略了参考电压补偿,因为结果无论如何都是 ~ 1 - 是的,我还检查了我测量的 VDDA 是多少 - 它非常接近标称的 3300 .).
|
|
相关推荐
1个回答
|
|
有趣的。我设置了这个处理链,到目前为止,所有 ADC 通道都得到了统一处理,只是它们获得了不同的到终端单元的转换例程。
在该统一处理链中,通道通过 VrefInt 带隙参考和工厂存储的校准数据由测量的 VDDA 进行补偿。 我忽略了我也将它应用于温度,但是它有自己的补偿方案和自己的工厂编写的校准数据,并且该公式不需要VDDA。 我现在得到了合理的结果,例如,现在室温为 21°C,内部温度现在测量为 30°C,而程序大部分时间都在运行,进行 ADC 转换,在此之上进行一些计算,一些速度较慢的 PWM。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2623 浏览 1 评论
3206 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1779 浏览 1 评论
3605 浏览 6 评论
5985 浏览 21 评论
938浏览 4评论
1313浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
581浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1301浏览 3评论
1356浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-20 14:41 , Processed in 1.048324 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号