微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > LPC5114驱动温湿度传感器PCT2075DP

LPC5114驱动温湿度传感器PCT2075DP

时间:10-02 整理:3721RD 点击:

LPC5114驱动温湿度传感器PCT2075DP

---东方青

首先,要驱动一个硬件设备,应该做的第一件事就是了解设备的参数特性、设备对外的通信接口、MCU与设备相关的原理图,然后再通过MCU/CPU去驱动设备。

一、硬件相关参数

1、PCT2075DP与MCU的应用原理图


如上图可知,PCT2075DP向外提供的通信接口为I2C总线通信,并且分别与MCU的P1_1(SCL)和P1_2(SDA)口相连接。

2、PCT2075DP硬件参数特性


如上图可知,

(1)PCT2075DP支持I2C总线通信,其作为从机;

(2)并且存在一个中断信号输出引脚OS,当传感器所测量的温度大于所设置的阈值时,产出边沿中断提示MCU;

(3)PCT2075DP的I2C从机地址有3位是可以由硬件配置的,分别由A0、A1、A2这三个引脚决定。

3、PCT2075DP的设备地址

(1)从原理图可知,A0、A1、A2的取值分别为:A0=0、A1=0、A2=1;

(2)PCT2075DP设备地址的定义


如上图可知,PCT2075DP的设备地址有7bit组成,其中在A0、A1、A2三个引脚都没有浮空的情况下,高4位固定为1001,低3位分别有A0、A1、A2决定,其中A0为最低位。

所以通过结合原理图分析可知,PCT2075DP的设备地址为0x4C。

4、PCT2075DP的寄存器分析


如上图所示,PCT2075DP内部存在5个寄存器,我们只需要关注其中的3个即可,分别为配置寄存器CONF、数据寄存器Temp和超温寄存器TOS。

(1)配置寄存器CONF


对于配置寄存器CONF而言,主要就是配置Sonser的工作模式和超温时的处理方式。

(2)数据寄存器Temp


如图可知,PCT2075DP的数据精度为11bit,占用2Byte,其中高11bit为数据位。

(3)超温寄存器TOS


TOS寄存器为一个9Bit的寄存器,取值超温的阀值在这里进行设置。

二、LPC5114驱动

1、硬件信息

(1)I2C通信接口:SDA----->P1_2,SCL----->P1_1。

(2)从设备地址:0x4C

2、LPC54114的I2C总线

(1)端口的复用


LPC5114的GPIO口由IOCON管理,如上图为P1_0到P1_8的管理配置寄存器,当复用配置P1_1和P1_2为I2C总线功能时,其工作在上拉模式,端口为数字端口,正常工作模式不需要过滤器。其中FUNC决定着需要配置的端口和复用模式,如下图:


FUNC的值为101时,端口复用为I2C的数据线和时钟线。

(2)I2C的时钟配置


上图为LPC54114的地址空间映射表,可知基本上大多的外设都挂载在AHB总线上,但是并没有看见UART、SPI、I2C等等外设。实际上Flexcomm0~Flexcomm7可以灵活的配置管理UART、SPI、I2C等设备。如下图:



如上表所示,Flexcomm0到Flexcomm7都支持管理I2C、UART、SPI等外设。而Flexcomm的时钟有SYSCON进行管理。


不过值得说明的是,在用户手册《LPC5411x User manual》中特别提示,I2C的工作时钟频率不得超过48MHz,实际上常用为12MH,所以通常选择fro_12m。

(3)Flexcomm的功能配置。

Flexcomm提供PSELID寄存器来配置其当前所管理的功能。


3、I2C总线的配置

因为I2C通信总线是最基础的通信协议,在此不做过多的分析。

三、程序的配置

1、I2C总线的初始化配置


如上图为整个初始化的过程,起始I2C总线的配置直接使用了,确保LPC54114的I2C工作在主机模式,通信速率为100Kbit。

2、读取Sonser的数据


读到的值不直接是温度值,首先现将读到的两个数据字节合并为一个有效的数据,然后再乘以稳定系数0.125,最后得到实际的温度值,另一点就是由接收到的数据最高位来判断温度值的正和负。

3、应用


此时无声胜有声!只等查看结果了



Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top