共2条
1/1 1 跳转至页
tc77 数字温度传感器tc77如何应用
问
我想用tc77做一个温度传感器,基本思路是用I/O口来控制tc77,但找不到相关资料,比如如何写控制字,跪求
答 1:
转帖软硬件实现基于SPI接口的数字温度传感器TC77与PIC单片机数据采集
北京航空航天大学电子信息工程学院207教研室 文趣群 喻晓 蔡志权
摘 要
PIC单片机是MICROCHIP公司研发生产,有低,中,高档系列产品。片内资源丰富。是MICROCHIP公司的一款具有SPI接口的低功耗数字温度传感器。本文简要介绍了TC77与片内拥有或者没有SPI资源的PIC单片机进行数据采集并用软硬件实现的两种方法。
Abstract
PIC Microcontroller is the product of MICROCHIP Technology INC .It has different series products that have abundant resources. TC77 is a thermal sensor with SPI interface. This article introduces how to develop TC77 interfacing with PIC Micro controller which has SPI interface or not and how to acquire data.
关键词
软硬件、SPI、温度传感器TC77、PIC单片机、数据采集
PIC单片机为美国MICROCHIP公司生产研发,品种极其丰富,各系列片内功能资源各不相同,可以满足用户不同层次的开发要求。它采用哈佛总线结构和精简指令集(RISC)技术,其寻址方式简单,运行速度快,功耗低,驱动能力强等特点越来越受到广大硬件工程师的喜欢。在MICROCHIP公司PIC系列产品里,有很多产品拥有片内SPI功能,例如大部分的PIC16、PIC17、PIC18系列。
SPI是由美国摩托罗拉公司推出的一种同步串行传输规范,常作为单片机外设芯片串行扩展接口。SPI有4条引脚:SS(从器件选择线),SDO(串行数据输出线),SDI(串行数据输入线),SCK(同步串行时钟线)。SPI可以用全双工通信方式同时发送和接受8位数据,过程如下(见图一):主机启动发送过程,送出时钟脉冲信号,主移位寄存器的数据通过SDO移入到从移位寄存器,同时从移位寄存器中的数据通过SDI移入到主移位寄存器中。8个时钟脉冲过后,时钟停顿,主移位寄存器中的8位数据全部移入到从移位寄存器中,随即又被自动装入从接受缓冲器中,从机接受缓冲器满标志位(BF)和中断标志位(SSPIF)置“1”。同理,从移位寄存器中的8位数据全部移入到主寄存器中,随即又被自动装入到主接受缓冲器中,主接受缓冲器满标志位(BF)和中断标志位(SSPIF)置“1”。主CPU检测到主接受缓冲器的满标志位或者中断标志位置一后,就可以读取接受缓冲器中的数据。同样,从CPU检测到从接受缓冲器满标志位或中断标志位置一后,就可以读取接受缓冲器中的数据,这样就完成了一个字节的相互通信过程。本论文通过设置PIC微控制器为主控制器,负责产生时钟。TC77为从器件,在有时钟的情况下,负责向PIC主控制器发送数据。通过PIC微控制器检测接受缓冲器的满标志位来进行数据采集。
TC77温度传感器是MICROCHIP公司一款具有SPI与MICROWIRE两种接口方式兼容的小尺寸,低功耗的温度监测芯片。常应用于硬盘和PC一些外围设备以及手机、笔记本等嵌入式系统设备自动温度控制等方面。它有三个内部寄存器(配置寄存器、温度寄存器、ID寄存器)。用户通过配置寄存器可以选择TC77的工作模式:连续温度采集模式和Shutdown模式。TC77在上电后就默认为连续工作采集模式(电流损耗一般为250uA),Shutdown模式电流损耗一般低于0.1uA。
TC77是用13-bits 二进制补码的形式来表示温度数据,最高位是符号位,“0”表示温度为正,“1”表示温度为负,接着是12-bits温度数据,bit1&bit0是一个三态,在数据处理是我们可以忽略不管。bit2位在上电或者电压重启时置“0”, 在完成一个温度数据转换后就置“1”。我们可以通过监视bit2的状态来确认一个温度数据是否完成。
对于内部有SPI资源的PIC微控制器,其硬件电路连接如图二,软件编程思路如下:
首先对PIC微控制器的SPI口进行初始化,相关寄存器有两个,一个SSPCON寄存器,主要是对SPI使能,设置主从模式和时钟。另一个是SSPSTAT寄存器,内含BF位,主要是判断接受是否完成,开片选。调用一段延时,我们要充分考虑到TC77的数据转换时间大约在300ms左右。否则我们采集的数据可能为零。
然后我们必须往SSPBUF写一个字节,产生一个8位时钟。通过判断BF位是否置“1”,若置“1”,我们读取SSPBUF中的数据,即为TC77的8位高字节(因为TC77从最高位开始传送数据)。同理,我们再重复一次上面的操作,就读取到了TC77的低字节。关片选。
假如PIC单片机片内没有SPI资源,我们可以把PIC的三个普通I/O口与TC77连接,软件实现数据采集程序思路如下:
我们对PIC的3个普通的I/O端口进行输入/输出设置,I/O 1( )及I/O 2(SCK)设置成输出,I/O 3(SI/O)设置成输入。开片选,开延时。
我们人为地在I/O 2(SCK)端口产生一个正负跳跃的信号,这样TC77温度数据的其中一位就被移送出来了,我们把它放到STATUS中的进位位C中,通过下面两条语句:
RLCF TC77_LO,F;
RLCF TC77_HI, F;
就可以把一个温度数据从MSB开始通过16次移位后存放在TC77_HI:TC77_LO中(TC77_HI:TC77_LO 表示温度的高低8位字节 )。
最后需要说明一下的是,TC77是CMOS型硅温度传感器,我们建议在电源输入端Vdd和地之间加上一个0.1uF—1uF左右的退耦电容,在制作PCB时,尽可能离芯片最近距离连接一个高频陶瓷电容。这样就可以有效的避免噪音干扰。因为TC77温度传感器对PCB导热途径主要是通过对地的连接。所以PCB对应的TC77的Vss的铜线应尽量的粗,焊盘尽可能的大。这样可以保证能采集到准确的环境温度。
【参考书目】
1. PIC单片机实用教程 李学海编著 北京航空航天大学出版社
2. DS20092A Microchip Technology INC
3. DS00871A Microchip Technology INC
4. DS00913A Microchip Technology INC
北京航空航天大学电子信息工程学院207教研室 文趣群 喻晓 蔡志权
摘 要
PIC单片机是MICROCHIP公司研发生产,有低,中,高档系列产品。片内资源丰富。是MICROCHIP公司的一款具有SPI接口的低功耗数字温度传感器。本文简要介绍了TC77与片内拥有或者没有SPI资源的PIC单片机进行数据采集并用软硬件实现的两种方法。
Abstract
PIC Microcontroller is the product of MICROCHIP Technology INC .It has different series products that have abundant resources. TC77 is a thermal sensor with SPI interface. This article introduces how to develop TC77 interfacing with PIC Micro controller which has SPI interface or not and how to acquire data.
关键词
软硬件、SPI、温度传感器TC77、PIC单片机、数据采集
PIC单片机为美国MICROCHIP公司生产研发,品种极其丰富,各系列片内功能资源各不相同,可以满足用户不同层次的开发要求。它采用哈佛总线结构和精简指令集(RISC)技术,其寻址方式简单,运行速度快,功耗低,驱动能力强等特点越来越受到广大硬件工程师的喜欢。在MICROCHIP公司PIC系列产品里,有很多产品拥有片内SPI功能,例如大部分的PIC16、PIC17、PIC18系列。
SPI是由美国摩托罗拉公司推出的一种同步串行传输规范,常作为单片机外设芯片串行扩展接口。SPI有4条引脚:SS(从器件选择线),SDO(串行数据输出线),SDI(串行数据输入线),SCK(同步串行时钟线)。SPI可以用全双工通信方式同时发送和接受8位数据,过程如下(见图一):主机启动发送过程,送出时钟脉冲信号,主移位寄存器的数据通过SDO移入到从移位寄存器,同时从移位寄存器中的数据通过SDI移入到主移位寄存器中。8个时钟脉冲过后,时钟停顿,主移位寄存器中的8位数据全部移入到从移位寄存器中,随即又被自动装入从接受缓冲器中,从机接受缓冲器满标志位(BF)和中断标志位(SSPIF)置“1”。同理,从移位寄存器中的8位数据全部移入到主寄存器中,随即又被自动装入到主接受缓冲器中,主接受缓冲器满标志位(BF)和中断标志位(SSPIF)置“1”。主CPU检测到主接受缓冲器的满标志位或者中断标志位置一后,就可以读取接受缓冲器中的数据。同样,从CPU检测到从接受缓冲器满标志位或中断标志位置一后,就可以读取接受缓冲器中的数据,这样就完成了一个字节的相互通信过程。本论文通过设置PIC微控制器为主控制器,负责产生时钟。TC77为从器件,在有时钟的情况下,负责向PIC主控制器发送数据。通过PIC微控制器检测接受缓冲器的满标志位来进行数据采集。
TC77温度传感器是MICROCHIP公司一款具有SPI与MICROWIRE两种接口方式兼容的小尺寸,低功耗的温度监测芯片。常应用于硬盘和PC一些外围设备以及手机、笔记本等嵌入式系统设备自动温度控制等方面。它有三个内部寄存器(配置寄存器、温度寄存器、ID寄存器)。用户通过配置寄存器可以选择TC77的工作模式:连续温度采集模式和Shutdown模式。TC77在上电后就默认为连续工作采集模式(电流损耗一般为250uA),Shutdown模式电流损耗一般低于0.1uA。
TC77是用13-bits 二进制补码的形式来表示温度数据,最高位是符号位,“0”表示温度为正,“1”表示温度为负,接着是12-bits温度数据,bit1&bit0是一个三态,在数据处理是我们可以忽略不管。bit2位在上电或者电压重启时置“0”, 在完成一个温度数据转换后就置“1”。我们可以通过监视bit2的状态来确认一个温度数据是否完成。
对于内部有SPI资源的PIC微控制器,其硬件电路连接如图二,软件编程思路如下:
首先对PIC微控制器的SPI口进行初始化,相关寄存器有两个,一个SSPCON寄存器,主要是对SPI使能,设置主从模式和时钟。另一个是SSPSTAT寄存器,内含BF位,主要是判断接受是否完成,开片选。调用一段延时,我们要充分考虑到TC77的数据转换时间大约在300ms左右。否则我们采集的数据可能为零。
然后我们必须往SSPBUF写一个字节,产生一个8位时钟。通过判断BF位是否置“1”,若置“1”,我们读取SSPBUF中的数据,即为TC77的8位高字节(因为TC77从最高位开始传送数据)。同理,我们再重复一次上面的操作,就读取到了TC77的低字节。关片选。
假如PIC单片机片内没有SPI资源,我们可以把PIC的三个普通I/O口与TC77连接,软件实现数据采集程序思路如下:
我们对PIC的3个普通的I/O端口进行输入/输出设置,I/O 1( )及I/O 2(SCK)设置成输出,I/O 3(SI/O)设置成输入。开片选,开延时。
我们人为地在I/O 2(SCK)端口产生一个正负跳跃的信号,这样TC77温度数据的其中一位就被移送出来了,我们把它放到STATUS中的进位位C中,通过下面两条语句:
RLCF TC77_LO,F;
RLCF TC77_HI, F;
就可以把一个温度数据从MSB开始通过16次移位后存放在TC77_HI:TC77_LO中(TC77_HI:TC77_LO 表示温度的高低8位字节 )。
最后需要说明一下的是,TC77是CMOS型硅温度传感器,我们建议在电源输入端Vdd和地之间加上一个0.1uF—1uF左右的退耦电容,在制作PCB时,尽可能离芯片最近距离连接一个高频陶瓷电容。这样就可以有效的避免噪音干扰。因为TC77温度传感器对PCB导热途径主要是通过对地的连接。所以PCB对应的TC77的Vss的铜线应尽量的粗,焊盘尽可能的大。这样可以保证能采集到准确的环境温度。
【参考书目】
1. PIC单片机实用教程 李学海编著 北京航空航天大学出版社
2. DS20092A Microchip Technology INC
3. DS00871A Microchip Technology INC
4. DS00913A Microchip Technology INC
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |