×
嵌入式 > 技术百科 > 详情

DS1624是数字温度计和存储器

发布时间:2021-11-25 发布时间:
|

特征

*温度测量不需要外部组件

*以0.03125°C的增量测量-55°C至+125°C的温度。华氏度等效温度为-67°F至+257°F,增量为0.05625°F

*温度读取为13位值(双字节传输)

*在1秒内将温度转换为数字字(最大值)

*256字节的E2存储器,用于存储频率补偿系数等信息

*通过2线串行接口(开漏I/O线)读取/写入数据

*应用包括用于测试设备和无线电系统的温度补偿晶体振荡器

*8针浸渍或SOIC封装

说明

DS1624由一个数字温度计和256字节的E2存储器组成。温度计提供13位温度读数,指示设备的温度。E2存储器允许用户存储频率补偿系数,用于由温度引起的晶体频率的数字校正。

任何其他类型的信息也可以驻留在此用户空间中。

概述

DS1624的框图如图1所示。DS1624由两个独立的功能单元组成:1)256字节非易失性E2存储器,2)直接数字温度传感器。

非易失性存储器由256字节的E2存储器组成。该存储器可用于存储用户希望的任何类型的信息;例如,频率补偿系数可放置在该存储器中,以允许根据进行测量的温度来补偿测量的频率。这些内存位置通过2线串行总线访问。

直接到数字温度传感器允许DS1624测量环境温度并以13位字报告温度值,分辨率为0.03125°C。温度传感器及其相关寄存器通过2线串行接口访问。

DS1624功能框图:图1

2线串行数据总线

DS1624支持双向双线总线和数据传输协议。将数据发送到总线上的设备被定义为发送器,而接收数据的设备被定义为接收器。控制消息的设备称为“主机”。由主设备控制的设备是“从设备”。总线必须由一个主设备控制,该主设备生成串行时钟(SCL),控制总线访问,并生成启动和停止条件。DS1624作为两线总线上的从站运行。通过开漏I/O线SDA和SCL连接到总线。定义了以下总线协议(见图2):

•数据传输只能在总线不忙时启动。

•在数据传输过程中,只要时钟线高,数据线必须保持稳定。当时钟线高时,数据线的变化将被解释为控制信号。

因此,定义了以下总线条件:总线不忙:数据线和时钟线都保持高位。

开始数据传输:当时钟处于高位时,数据线的状态从高到低的变化定义了启动条件。

停止数据传输:当时钟线处于高位时,数据线的状态从低到高的变化定义了停止条件。

数据有效:数据线的状态表示在开始条件之后,数据线在时钟信号的高周期期间稳定时的有效数据。线路上的数据必须在时钟信号的低周期内更改。每一位数据有一个时钟脉冲。

每一个数据传输都是用一个启动条件启动和一个停止条件终止的。在启动和停止条件之间传输的数据字节数是不受限制的,并且由主设备决定。信息按字节传输,每个接收器用第九位进行确认。

在总线规范中,定义了常规模式(100 KHz时钟频率)和快速模式(400 KHz时钟频率)。DS1624在两种模式下都工作。

确认:每个接收设备,当被寻址时,有义务在接收到每个字节后生成应答。主设备必须产生与该确认位相关联的额外时钟脉冲。

确认的设备必须在确认时钟脉冲期间下拉SDA线,使得SDA线在与确认相关的时钟脉冲的高周期内稳定地处于低电平。当然,必须考虑设置和保持时间。主机必须通过不在从机打卡的最后一个字节上生成确认位来向从机发出数据结束的信号。在这种情况下,从机必须保持数据线高,以便主机生成停止条件。

2线串行总线上的数据传输:图2

图2详细说明了如何在双线总线上完成数据传输。根据R/W位的状态,可以进行两种类型的数据传输:

1、从主发射机到从接收机的数据传输。主机发送的第一个字节是从机地址。接下来是一些数据字节。从机在每个接收字节后返回一个确认位。

2、从发射机到主接收机的数据传输。第一个字节(从机地址)由主机发送。然后从机返回一个确认位。接下来是从机发送给主机的数据字节数。主机在除最后一个字节以外的所有接收字节后返回一个确认位。在最后一个接收字节的末尾,返回一个“not acknowledge”。

主设备产生所有串行时钟脉冲以及启动和停止条件。传输以停止条件或重复的开始条件结束。由于重复的启动条件也是下一个串行传输的开始,总线将不会被释放。

DS1624可以在以下两种模式下工作:

1、从接收机模式:串行数据和时钟通过SDA和SCL接收。在接收到每个字节后,发送一个确认位。开始和停止条件被识别为串行传输的开始和结束。在接收到从机地址和方向位后,由硬件进行地址识别。

2、从发射机模式:接收和处理第一个字节的方式与从机接收模式相同。然而,在此模式中,方向位将指示传输方向相反。串行数据由DS1624在SDA上传输,同时串行时钟在SCL上输入。开始和停止条件被识别为串行传输的开始和结束。

从机地址

控制字节是在主设备的启动条件之后接收到的第一个字节。控制字节由一个四位控制码组成;对于DS1624,它设置为1001二进制,用于读写操作。控制字节的后三位是设备选择位(A2、A1、A0)。主设备使用它们来选择要访问的八个设备中的哪一个。这些位实际上是从机地址的三个最低有效位。控制字节(R/W)的最后一位定义要执行的操作。设置为“1”时,选择读取操作;设置为“0”时,选择写入操作。在启动条件之后,DS1624监视SDA总线,检查正在传输的设备类型标识符。在接收到1001码和适当的设备选择位后,从设备在SDA线上输出确认信号。

与DS1624的2线串行通信:图3

运行测量温度

DS1624的框图如图1所示。DS1624通过使用车载专用温度测量技术来测量温度。温度测量电路的框图如图4所示。

DS1624通过计算具有低温系数的振荡器在由高温系数振荡器确定的栅极周期内经过的时钟周期数来测量温度。计数器预设的基本计数对应于-55°C。如果计数器在门周期超过温度寄存器(也预设为-55°C值)之前达到零,则递增,表示温度高于-55°C。

同时,计数器被预设为由斜坡累加器电路确定的值。这个电路需要补偿振荡器在温度上的抛物线行为。然后计数器再次计时,直到达到零。如果门周期仍未结束,则重复此过程。

斜坡累加器用于补偿振荡器在温度上的非线性行为,从而产生高分辨率的温度测量。这是通过改变计数器在温度每增加一度时所需的计数来完成的。要获得所需的分辨率,必须知道给定温度下计数器的值和每°C的计数数(斜率累加器的值)。

温度测量电路:图4

在内部,此计算由DS1624执行,以提供0.03125°C的分辨率。通过发出读取温度命令,温度读数以13位、2位的补码读数提供。表2描述了输出数据与测量温度的精确关系。数据首先通过2线串行接口MSB串行传输。DS1624可以以0.03125°C的增量测量-55°C到+125°C范围内的温度。对于华氏温度的使用,必须使用查找表或转换系数。

由于数据首先通过2线总线MSB传输,温度数据可以作为单个字节(温度分辨率为1°C)或作为两个字节写入DS1624或从DS1624读取,第二个字节包含表1所示的温度读数的5个最低有效位的值。注意,该字节的其余三位都设置为0。

DS1624以0.03125°C LSB表示温度,产生以下13位格式:

操作和控制

配置/状态寄存器用于确定DS1624将在特定应用中使用的操作方法,以及指示温度转换操作的状态。

配置寄存器定义如下:

其中:完成=转换完成位。“1”=转换完成,“0”=正在进行转换。

1SHOT=单发模式。如果1SHOT为“1”,DS1624将在收到Start Convert T协议时执行一次温度转换。如果1SHOT为“0”,DS1624将继续执行温度转换。该位是非易失性的,DS1624附带1SHOT=“0”。

由于配置寄存器是在E 2中实现的,因此对寄存器的写入需要10 ms才能完成。发出写入配置寄存器的命令后,至少10毫秒内不应再访问DS1624。

操作-内存字节程序模式

在此模式下,主机向DS1624发送地址和一个数据字节。

在启动条件之后,设备代码(4位)、从机地址(3位)和R/W位(逻辑低)由主设备放在总线上。然后主机发送访问内存协议。这向寻址的DS1624指示,在生成确认位之后,将跟随具有字地址的字节。因此,主机发送的下一个字节是字地址,并将写入DS1624的地址指针中。在接收到DS1624的应答之后,主设备将要写入寻址存储器位置的数据字发送。DS1624再次确认,主机生成停止条件。这将启动DS1624的内部编程周期。重复的开始条件而不是停止条件将中止编程操作。

在编程周期中,DS1624在编程周期完成(大约10毫秒)之前不会确认对设备的任何进一步访问页面程序模式为了对DS1624进行编程,主机向作为从机的DS1624发送地址和数据。这是通过提供一个启动条件,然后是4位设备代码、3位从机地址和R/W位,定义为一次写入的逻辑低位。然后主机发送访问内存协议。这向有地址的从机指示一个单词地址将跟随。从机在第九个时钟脉冲期间向主机输出确认脉冲。当DS1624接收到单词address时,它被放在地址指针中,定义要写入的内存位置。DS1624将在每接收到8位后生成一个确认,并将其连续存储在8字节RAM中,直到检测到启动内部编程周期的停止条件。

重复的开始条件而不是停止条件将中止编程操作。在编程周期中,DS1624在编程周期完成(大约10毫秒)之前不会确认对设备的任何进一步访问。

如果主机发送的字节数超过8,DS1624将回滚并覆盖以第一个接收字节开头的数据。这不影响EEPROM阵列的擦除/写入周期,并且仅允许地址寄存器的底部3位增加,而上部5位保持不变。DS1624能够在EEPROM磨损之前进行50000次写入(25000次擦除/写入周期)。

如果主机在发送第一个数据字后生成停止条件,则进入字节编程模式。

读取模式

在此模式下,主机正在从DS1624 E2存储器读取数据。主人先提供R/W设置为“0”的设备的地址。然后,主机发送访问存储器协议,并在接收到应答之后,提供单词address,这是它希望开始读取的存储器位置的地址。注意,当这是一个读操作时,必须首先写入地址指针。在此期间,DS1624生成在适当部分中定义的确认位。

主机现在生成另一个启动条件并发送从机地址。这一次,R/W位被设置为“1”,以使DS1624处于读取模式。在DS1624生成确认位之后,它从SDA pin上的寻址位置输出数据,递增地址指针,并且,如果它从主机接收到确认,则发送下一个连续字节。只有当主机发送停止条件而不是确认时,此自动增量序列才会中止。当地址指针到达256字节内存空间(地址FFh)的末尾时,它将从内存的末尾增加到内存的第一个位置(地址00h)。

命令集

数据和控制信息以图3所示的格式从DS1624读取并写入DS1624。

写入DS1624,主机将发出DS1624的从机地址,R/W位将设置为“0”。在收到确认后,总线主控提供一个命令协议。在接收到该协议后,DS1624将发出一个确认,然后主机可以向DS1624发送数据。如果要读取DS1624,主机必须像以前一样发送命令协议,然后发出重复启动再次设置条件和控制字节,这次将R/W位设置为“1”,以允许从DS1624读取数据。如表3所示,DS1624的命令集如下:

存取存储器[17h]

此命令指示DS1624访问其E 2memory。发出此命令后,下一个数据字节是要访问的字地址的值。请参阅操作-内存部分,以了解有关使用此协议的详细说明以及随后的数据格式。

访问配置

如果R/W为“0”,则此命令写入配置寄存器。下一个命令数据字节是要写入配置寄存器的值。如果R/W为“1”,则下一个读取的数据字节是存储在配置寄存器中的值。

读取温度[AAh]

此命令读取最后的温度转换结果。DS1624将以前面描述的格式发送两个字节,这是该寄存器的内容。

开始转换T[EEh]

此命令开始温度转换。不需要进一步的数据。在单发模式下,将执行温度转换,然后DS1624将保持空闲。在连续模式下,此命令将启动连续转换。

停止转换T[22h]

此命令停止温度转换。不需要进一步的数据。此命令可用于在连续转换模式下停止DS1624。发出此命令后,将完成当前温度测量,然后DS1624将保持空闲,直到发出启动转换T以恢复连续操作。

笔记:

1、在连续转换模式下,Stop Convert T命令将停止连续转换。要重新启动,必须发出Start Convert T命令。在一次触发模式下,必须为所需的每个温度读数发出Start Convert T命令。

2、在室温下,写入E2通常需要10毫秒。发出write命令后,至少10毫秒内不应再请求读取或写入。

在编程周期中,DS1624在编程周期完成(大约10毫秒)之前不会确认对设备的任何进一步访问。

时序图

典型性能曲线


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
Keil5(MDK5)在调试(debug)过程中遇到的问题