网站建设免费软件,体育馆做网站公司,优跃达官网网站建设项目,快速提升网站权重基于STM32CUBEMX驱动TMOS模块STHS34PF80----1.获取ID 概述样品申请视频教程所有功能接口最小系统图生成STM32CUBEMX串口配置IIC配置IO口设置串口重定向 模块地址参考demoIIC写函数IIC读函数参考程序初始化获取ID主函数 概述
STHS34PF80 是一款非冷却、工厂校准的红外运动和存在… 基于STM32CUBEMX驱动TMOS模块STHS34PF80----1.获取ID 概述样品申请视频教程所有功能接口最小系统图生成STM32CUBEMX串口配置IIC配置IO口设置串口重定向 模块地址参考demoIIC写函数IIC读函数参考程序初始化获取ID主函数 概述
STHS34PF80 是一款非冷却、工厂校准的红外运动和存在检测传感器工作波长在 5 µm 至 20 µm 之间。 STHS34PF80 传感器设计用于测量视野内物体发出的红外辐射量。该信息由 ASIC 进行数字处理可以对其进行编程以监控运动、存在或过热状况。 凭借其卓越的灵敏度STHS34PF80 可以在最远 4 米的距离内检测到人体的存在而无需光学镜头。 STHS34PF80 采用小型 3.2 x 4.2 x 1.455最大mm 10 引脚 LGA 封装。
最近在弄ST和瑞萨RA的课程需要样片的可以加群申请6_15061293 。 STHS34PF80是一种红外传感器可用于检测静止和移动物体的存在以及过温条件。它使用独特的TMOS技术测量物体的红外辐射以便在物体位于视场内时检测其存在或运动。 在传感器上沉积了一个光学带通滤波器将其工作范围限制在5微米到20微米的波长范围内使其不对可见光和其他频段敏感。 传感器基于一组连接在一起并作为单个感应元件运作的浮动真空热晶体管MOSTMOS矩阵。得益于ST独特的MEMS制造技术实现了先进的热隔离使传感器能够将最小的温度变化转化为电信号然后将这些信号馈送给ASIC。 传感器分为两个部分一个暴露于红外辐射另一个被屏蔽。通过在两个部分之间进行差分读数可以消除传感器自加热的影响。 STHS34PF80集成了高精度温度传感器用于测量环境温度并测量物体的精确红外辐射。 ASIC还实现了专门的智能处理以检测/区分静止和移动物体并可以断言专用中断。 可用不同的输出数据速率ODR范围从0.25赫兹到30赫兹以及单次测量模式。 STHS34PF80配备了I²C / 3线SPI接口并采用了与SMD安装兼容的OLGA 3.2 x 4.2 x 1.455 mm 10L封装。 封装所保证的视场为80°。
样品申请
https://www.wjx.top/vm/OhcKxJk.aspx#
视频教程
https://www.bilibili.com/video/BV11u4y1X7JY/ 基于STM32CUBEMX驱动TMOS模块STHS34PF80(1)----获取ID 所有功能
● 主要特性 ○ 高灵敏度红外存在和运动检测传感器 ○ 对于尺寸为 70 x 25 cm² 的物体在不使用镜头的情况下可达 4 米 ○ 集成硅红外滤光片 ○ SMD 友好 ○ 能够检测静止物体 ○ 能够区分静止和移动的物体 ○ 80° 视野 ○ 工厂校准 ○ 低电量 ○ 用于存在/运动检测的嵌入式智能算法 ● 电气规格 ○ 电源电压1.7V 至 3.6V ○ 电源电流10μA ○ 2 线 I²C / 3 线 SPI 串行接口 ○ 可编程 ODR0.25 Hz 至 30 Hz ○ 一击模式 ● 传感规格 ○ 红外灵敏度2000 LSB/°C ○ RMS 噪声25 LSB rms ○ 工作波长5 µm 至 20 µm ○ 本地温度传感器精度±0.3℃ ● 包装规格 ○ LGA 10 引线3.2 x 4.2 x 1.455最大毫米 ○ 符合 ECOPACK 和 RoHS 标准
接口
STHS34PF80模块接口的示意图如下所示支持IIC或者SPI通讯。
最小系统图 生成STM32CUBEMX
串口配置
查看原理图PA9和PA10设置为开发板的串口。
配置串口。
IIC配置
在这个应用中STS34PF80模块通过I2CIIC接口与主控器通信。具体来说STS34PF80模块的I2C引脚连接到主控器的PB6引脚B6和PB7引脚B7两个IO口。 配置IIC为普通模式速度为100k。
IO口设置
STS34PF80IO设置如下所示。 在IIC模式下CS需要给个高电平。 官方提供IIC接线如下所示。
需要把PA8配置为输出模式默认高电平配置PA7为输入模式。 串口重定向
打开魔术棒勾选MicroLIB 在main.c中添加头文件若不添加会出现 identifier “FILE” is undefined报错。
/* USER CODE BEGIN Includes */
#include stdio.h
/* USER CODE END Includes */函数声明和串口重定向
/* USER CODE BEGIN PFP */
int fputc(int ch, FILE *f){HAL_UART_Transmit(huart1 , (uint8_t *)ch, 1, 0xFFFF);return ch;
}
/* USER CODE END PFP */模块地址
STHS34PF80模块的默认设备地址为1011010(0x5A)。设备地址是用来识别和通信特定设备的标识符。通过将VL6180模块的设备地址设置为1011010(0x5A)您可以确保与该模块进行正常的通信和控制。
参考demo
这里参考ST在GITHUB上发布的案例来进行修改。 https://github.com/STMicroelectronics/sths34pf80-pid/blob/master/sths34pf80_reg.c 物体存在检测demo。 https://github.com/STMicroelectronics/STMems_Standard_C_drivers/blob/master/sths34pf80_STdC/examples/sths34pf80_tmos_presence_detection.c
IIC写函数
参考例程序中对应的驱动程序为sths34pf80_write_reg(),如下所示。 由上面表格可以得知地址为101 1010(0x5A)如果是写操作那么具体的地址为1011 0100(0xB4)。
/*** brief 读取数据** param add 模块地址* param reg 寄存器地址* param data buffer 缓冲区* param len 读取长度* retval ret 正常返回HAL_OK**/
uint8_t sths34pf80_read_reg(uint8_t add,uint8_t reg, uint8_t * data, uint8_t len)
{uint8_t ret;retHAL_I2C_Mem_Read(hi2c1 ,(add1)|1,reg,I2C_MEMADD_SIZE_8BIT,data,len,0xffff);return ret;
}IIC读函数
参考例程序中对应的驱动程序为sths34pf80_read_reg(),如下所示。
由上面表格可以得知地址为101 1010(0x5A)如果是读操作那么具体的地址为1011 0101(0xB5)。
/*** brief 写入数据** param add 模块地址* param reg 寄存器地址* param data buffer 缓冲区* param len 写入长度* retval ret 正常返回HAL_OK**/
uint8_t sths34pf80_write_reg(uint8_t add,uint8_t reg, uint8_t * data, uint8_t len)
{uint8_t ret;HAL_I2C_Mem_Write(hi2c1 ,(add1)|0,reg,I2C_MEMADD_SIZE_8BIT,data,len,0xffff);return ret;}参考程序初始化 获取ID
参考例程序中对应的获取ID驱动程序,如下所示。
获取ID可以查看0x0F读出来的值应该为0xD3。
读取函数如下所示。
/*** brief 获取设备ID** param add 设备地址* param val 设备ID.* retval ret 正常返回HAL_OK**/uint8_t STHS34PF80_getChipID(uint8_t add)
{uint8_t temp[1]{0};sths34pf80_read_reg(add,STHS34PF80_WHO_AM_I,temp,1);return temp[0];
}主函数 /* USER CODE BEGIN 2 */uint8_t STHS34PF80_ID STHS34PF80_getChipID(STHS34PF80_ADDRESS);printf(STHS34PF80_ID0x%x\n,STHS34PF80_ID); /* USER CODE END 2 */