打印
[APM32F4]

APM32F4系列的内部传感器例程应用

[复制链接]
804|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
guiyan|  楼主 | 2023-4-1 11:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 guiyan 于 2023-4-1 11:54 编辑

#申请原创#
前言
本文旨在介绍如何使用APM32F4系列芯片的内部传感器。

一、内部温度传感器简介
         1. APM32F40x内部集成一个温度传感器 ,用来测量CPU及周围的温度。
         2. 该内部传感器在芯片内部与ADC1_CH16 通道相连,通过ADC1_CH16通道可以把传感器的模拟电压值转化成数字值,再通过公式计算得出温度值。
         3. 温度传感器模拟输入推荐采样时间是17.1μs。
         4. APM32F40x的内部温度传感器支持的温度范围为:-40~125°C。

二、原理介绍
           1. 原理及转化过程如下图1:
                    ADC_CCTRL寄存器中的TSVREFEN位是控制内部温度传感器的使能状态。


图1

            

             2. 计算公式
                     通过ADC1_CH16通道对温度传感器的模拟电压Vsensor进行采集,并转化成数字量data,之后根据公式计算出温度传感器的温度值。
                    公式如下:
                                    T = (Vsensor - V25)/ Avg_Slope + 25
                   公式说明:
                           T, Vsensor,是温度传感器的温度和输出电压;
                           V25, 25 ,是基准值,25℃时,温度传感器的输出电压值;
                           Avg_Slope,是温度与Vsensor曲线的平均斜率(单位为mv/°C或uv/°C)。

三、应用例程设计            
     1. 编程思路
                  1.1 配置DMA外设,启用DMA传输;
                  1.2 配置ADC1,并选择channel16;
                  1.3 配置采样时间为480周期,采样时间大于17.1μs;
                  1.4 设置ADC1_CCTRL的TSVREFEN位,使能内部温度传感器;
                  1.5 设置ADC1_CTRL2的DMAEN位,使能DMA模式;
                  1.6 设置ADC1_CTRL2的ADCEN位启动转换;
                  1.7 读取DMA传输的ADC1转换结果;
                  1.8 根据公式计算对应的温度值。
                  1.9 配置串口,再利用串口把相关信息打印出来。
             2. 注意的关键点
                  2.1 选择ADC1_CH16通道。
                  2.2 ADC的工作时钟不能超过36MHz,所以对ADC时钟进行相应的分频。
                  2.3 ADC的采样时间需要接近并大于17.1μs,这样ADC采集到的电压数据才足够精确。
                  2.4 TSVREFEN置1,使能内部温度传感器。
                  2.5 根据公式,计算出当前温度传感器的检测到的温度值。

以上就是内部传感器的介绍内容,欢迎大家一起来讨论!





使用特权

评论回复
沙发
tifmill| | 2023-4-8 21:56 | 只看该作者
内部温度传感器的转换公式是咋的  

使用特权

评论回复
板凳
pmp| | 2023-4-9 13:54 | 只看该作者
单片机芯片内含温度传感器,它产生一个随温度线性变化的电压,在内部被连接到ADC1_IN16的输入通道上,用于将传感器的输出转换到数字数值。  

使用特权

评论回复
地板
tabmone| | 2023-4-9 14:00 | 只看该作者
可以用来测量 CPU 及周围的温度(TA)。

使用特权

评论回复
5
juliestephen| | 2023-4-9 14:18 | 只看该作者
对于一些恶劣的应用环境,可以通过检测芯片内部而感知设备的工作环境温度, 如果温度过高或者过低,就触发进入睡眠状态或者停止运转,以提高设备运行的可靠性。

使用特权

评论回复
6
lzmm| | 2023-4-9 14:29 | 只看该作者
对控制芯片发热和保障MCU健康运行非常重要。

使用特权

评论回复
7
claretttt| | 2023-4-9 14:35 | 只看该作者
内部传感器有什么作用呢
              

使用特权

评论回复
8
averyleigh| | 2023-4-9 14:52 | 只看该作者
模拟温度传感器好用的吗?              

使用特权

评论回复
9
pixhw| | 2023-4-9 15:13 | 只看该作者
APM32F4的性能怎么样?              

使用特权

评论回复
10
kmzuaz| | 2023-4-9 15:22 | 只看该作者
大多数32位MCU都有一项非常实用的功能——内部集成了一个温度传感器

使用特权

评论回复
11
Antecer| | 2023-7-7 11:21 | 只看该作者
为什么这些mcu内部温度传感器都接adc,还需要用户编程取值。为什么不直接在硬件上就把温度值保存在某个寄存器,让用户直接可以用呢?

使用特权

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

本版积分规则

6

主题

23

帖子

0

粉丝