本帖最后由 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 根据公式,计算出当前温度传感器的检测到的温度值。
以上就是内部传感器的介绍内容,欢迎大家一起来讨论!
|