32位单片机

服务热线:13828722724

32位MCU CKS32F103x8助力温度传感器的精确测量

2020-07-22 17:17:08   责任编辑:     0

  数字传感器的通信接口一般有PWM、I2C、SPI等。而PWM方式输出的传感器具有接口简单、抗噪能力强、适合远距离传输。这种接口的传感器比较典型的一个是TE Connectivity(泰科TE)的温度传感器HTU20P,这种传感器以输出PWM的占空比变化进行传感器信号强度的表达。本文就以中科芯32位MCU CKS32F103x8为例介绍如何使用输入捕获的功能进行HTU20P PWM输出占空比的精确测量,进而确定温度值。



  tr是传感器PWM输出的周期,tpw是高电平的时间也就是所测信号的强弱。要想知道具体的温度值就要对这两个量进行测量。而PWM输入模式是CKS32F103x8的输入捕获中的一个特例,该功能可以用于精确地测量PWM的周期,电平持续时间等,进而得到PWM的频率、占空比等。


  实现这一功能需要同时使用TIMx_IC1和TIMx_IC2,但是只在其中一个引脚上接入信号即可,在内部配置为映射到另外一个通道上。一次测量完成之后,IC1的值为周期值,IC2的值为脉宽值。捕获时复位技术器的极性可以配置,我们采用了上升沿,在测量HTU20P时需要配置为下降沿。


  软件配置流程如下:


  1、选择通道


  TIM_ICInitType.TIM_Channel=TIM_Channel_1;


  2、配置捕获边沿


  TIM_ICInitType.TIM_ICPolarity=TIM_ICPolarity_Rising;


  3、设为PWM输入模式


  TIM_PWMIConfig(TIM3,&TIM_ICInitType);


  4、配置触发源


  TIM_SelectInputTrigger(TIM3,TIM_TS_TI1FP1);


  5、设置主从模式


  TIM_SelectSlaveMode(TIM3,TIM_SlaveMode_Reset);//当捕获到触发源时复位计数器


  TIM_SelectMasterSlaveMode(TIM3,TIM_MasterSlaveMode_Enable);//使能


  6、使能中断,一个周期测量结束会产生中断


  TIM_ITConfig(TIM3,TIM_IT_CC1,ENABLE);


  7、中断中的操作


  void TIM3_IRQHandler(void)


  {


  if(TIM_GetITStatus(TIM3,TIM_IT_CC1) == SET)


  {


  level_t=TIM_GetCapture2(TIM3);//获得CCR2的值,高电平


  cycle_t=TIM_GetCapture1(TIM3);//获得CCR1的值,周期


  TIM_ClearITPendingBit(TIM3,TIM_IT_CC1);


  }


  }


  可以看出,无论传感器的输出如何变化,所测得的周期值都是很稳定的,并且计算出的占空比测量值与理论值几乎无差别。


本文来源于世强电子元件


电话

0755-27883824

地址:深圳市宝安区西乡街道银田创意园B8栋502

传真:0755-61204158

邮箱 : 13510937553@163.com