你的位置:首页 >> 产品展示 >> 红外传感器 >> 热电堆传感器  热电堆传感器
噪音SCL在SMBus上传输数据
来源:TEKSCAN_压力发电膜_piezoelectricity_压力发电_压力发电膜鞋_压力发电机_薄膜压力发电热电堆传感器厂家_热释电红外传感器_热电堆传感器应用电路_台湾热电堆传感器原厂_热电堆传感器应用_热电堆 电路_热释电红外传感器工作原理及结构说明_热释电传感器_红外传感器 | 发布时间:2020/4/18 17:32:11 | 浏览次数:

SCL的第八个下降沿,TSM将强制PWM/SDA低,以确认最后收到的

字节。Thdac(SD)是SCL的第九个下降沿之后TSM释放PWM/SDA的时间

所以总经理可以继续沟通。Tsuac(MD)是第八次坠落后的时间

SCL的边缘,TSM将释放PWM/SDA,以便MD可以确认最后接收到的

字节。Thdac(MD)是在SCL的第九个下降沿之后,TSM将控制

这样它就可以继续传输下一个字节。(用于

使用最新计时–主设备确认时使用MD;从设备确认时使用SD

设备正在确认)。

有关其他计时,请参阅上面的SMBus设备的电气特性。

图7 SMBus计时。

SMBus与TSM的通信

德克斯特研究中心•美国密歇根州德克斯特市休伦河大道7300号,邮编48130•电话:+1(734)426-3921©_

8675版本NC SMBus App Note.doc第16页,共35页2010年7月

6.3详细通信说明

RAM和EEPROM都可以读取32 x 16的大小。如果RAM被读取,则数据除以

2,由于RAM中有一个符号位(例如,Tobj1-RAM地址0x07h将在

当目标温度从-70.01°C上升到+382.19°C时,0x27ADh为0x7FFF)。MSB读取

from RAM是线性化温度(Tobj1、Tobj2和Ta)的错误标志(高激活)。这个

原始数据(例如,红外传感器1数据)的MSB是符号位(符号和幅度格式)。一封信

0x0000必须在写入EEPROM之前完成,以便擦除EEPROM单元内容。参考

EEPROM工厂校准的详细说明需要保存的EEPROM位置

不变。

注*:xxxxx表示要读/写的内存映射地址的5个lsbit。

注意**:行为类似于read命令。TSM在16位数据之后返回PEC,其中只有4位是有意义的

如果MD需要,它可以在第一个字节后停止通信。

读取到读取标志(RAM或EEPROM)之间的区别在于后者没有重复的开始

比特。读取的标志是:

数据[15]–EEBUSY–上一次写入/擦除EEPROM访问仍在进行中。高度活跃。

数据[14]–未使用

数据[13]-EE_DEAD–出现EEPROM双重错误。高度活跃。

数据[12]–INIT–POR初始化例程仍在进行中。低活性。

数据[11]–未实现。

数据[10..0]–全部为零。

读取标志是一种诊断功能。无论这些标志如何,都可以使用TSM。

表4

表5

操作码命令

000x xxxx*RAM访问

001x xxxx*EEPROM访问

1111_0000**读取标志

1111_进入睡眠模式

内存(32 x 16)

名称操作码

地址

阅读

接近

工厂预留0x00h是

… … …

环境传感器数据0x03h是

红外1传感器数据0x04h是

红外2传感器数据0x05h是

Ta校准数据0x06h是

TOBJ校准数据0x07h是

Tobj2校准数据0x08h是

工厂预留0x09h是

… … …

工厂预留0x1Fh是

EEPROM(32 x 16)

名称操作码和

地址

接近

托马斯

0x20h是

托明

0x21h是

PWMCTRL 0x22h是

Ta范围0x23h是

发射率校正

系数(Ke)

0x24小时是

配置寄存器1 0x25h是

工厂预留0x26h否

… … …

工厂预留0x2Dh否

SMBus地址0x2Eh是

工厂预留0x2Fh是

工厂预留0x30h否

… … …

工厂预留0x38h否

工厂预留0x39h是

工厂预留0x3Ah否

工厂预留0x3Bh编号

身份证号码0x3Ch否

身份证号码0x3Dh否

身份证号码0x3Eh否

身份证号码0x3Fh号码

SMBus与TSM的通信

德克斯特研究中心•美国密歇根州德克斯特市休伦河大道7300号,邮编48130•电话:+1(734)426-3921©_

8675版本NC SMBus App Note.doc 2010年7月35日第17页

所有字节都先用MSb发送和接收。

SMBus从RAM读取的格式为:

读取字(取决于命令–RAM或EEPROM)。

图8显示为Tobj1。

读取RAM 0x07h,结果=0x3B49h,PEC=0x5Ch。

RAM内存是通过SMBus只读的。由于一个符号位,读取的数据除以2

(Sn)在RAM中(例如,TOBJ1-RAM地址0x07h将在0x27ADh到

0x7FFF,目标温度从-70.01°C上升到+382.19°C)。从RAM读取的MSb

是线性化温度(TOBJ1、TOBJ2和Ta)的错误标志(高激活)。的MSb

原始数据(例如,红外传感器1数据)是符号位(符号和幅度格式)。

伪代码示例:读取RAM地址0x07(Tobj1)

一。发送起始位

2。发送从地址(例如0x00)*+Rd-Wr位**

三。发送命令(0b000x_xxxx+0b0000_0111->0b0000_0111)

四。发送重复起始位

5个。发送从地址+Rd \-Wr位**

6。读取数据字节低(主机必须发送确认位)

7号。读取数据字节高(主机必须发送确认位)

8个。读取PEC(主机可以发送ACK或NACK)

9号。发送停止位

注*:任何TSM都将响应地址0x00注**:位Rd \-Wr对TSM没有意义

从地址Wr A命令Sr从地址Rd A

1 7 1 1 8 1 7 1 1 1 1

数据字节低A数据字节高A PEC A P

8 1 8 1 8 1 1 1 1起点

奴隶

地址=0

读取Ram

0x07小时

起点

重复

从机地址

读取=1

最低有效位

0x49小时

最高有效位

0x3Bh型

PEC公司

0x5小时

SMBus与TSM的通信

德克斯特研究中心•美国密歇根州德克斯特市休伦河大道7300号,邮编48130•电话:+1(734)426-3921©_

8675版本NC SMBus App Note.doc第18页,共35页2010年7月

读取RAM或EEPROM框图

读取Ram EEPROM

发送起始位

从从属服务器确认

是的

发送从机地址

发送命令

发送停止位

发送重复开始

发送从机地址

从从属服务器确认

是的

读取低数据字节

主发送确认

读取高数据字节

主发送确认

读取PEC字节

主发送

阿克纳克

发送停止位

结束读取

从从属服务器确认

是的

SMBus与TSM的通信

德克斯特研究中心•美国密歇根州德克斯特市休伦河大道7300号,邮编48130•电话:+1(734)426-3921©_

8675版本NC SMBus App Note.doc第19页,共35页2010年7月

在EEPROM中写入SMBus的格式为:

写入字(取决于命令–RAM或EEPROM)。

图9在写入零后写入PWMCTRL以擦除EEPROM单元。

将0xC807写入EEPROM地址0x22h,PEC=0x88h。

在应用程序模式下,只有9个单元格可供写入。试图写入无法访问

EEPROM单元不会导致任何变化。在写入之前,必须执行擦除操作。删除

操作只是在EEPROM单元中写入零。写入/删除后需要5毫秒

要写入/删除的值。在写入之后,强烈建议通过以下方式重新启动设备

关闭/打开电源或将传感器置于休眠状态。

伪代码示例:

擦除EEPROM地址0x0E(SMBus地址)

一。发送起始位

2。发送从地址(例如0x00)*+Rd-Wr位**

三。发送命令(0b001x_xxxx+0b0000_1110->0b0010_1110)

四。发送低数据0x00

5个。发送高数据0x00

6。发送PEC 0x6F

7号。发送停止位

8个。等待5ms(这次需要删除单元格)

在EEPROM地址0x0E(SMBus地址)中写入0x5A

一。发送起始位

2。发送从地址(例如0x00)*+Rd-Wr位**

三。发送命令(0b001x_xxxx+0b0000_1110->0b0010_1110)

四。发送低字节0x5A

5个。发送高字节0x00(EEPROM地址0x0E的高字节没有意义)

6。发送PEC 0xE1

7号。发送停止位

8个。等待5ms(此时需要写入单元格)

9号。关闭/打开模块电源以重置TSM(在此之后,TSM将响应新的从机

地址0x5A)***

从地址Wr A命令A

1 7 1 1 8 1

..…

数据字节低A数据字节高A PEC A P

8 1 8 1 8 1 1 1 1

..…

SMBus与TSM的通信

德克斯特研究中心•美国密歇根州德克斯特市休伦河大道7300号,邮编48130•电话:+1(734)426-3921©_

8675版本NC SMBus App Note.doc第20页,共35页2010年7月

写入/擦除EEPROM框图

写EEPROM

发送起始位

从从属服务器确认

是的

发送从机地址

发送命令

发送停止位

发送低数据字节

从从属服务器确认

是的

发送高数据字节

从从属服务器确认

是的

从从属服务器确认

是的

发送PEC字节

从从属服务器确认

是的

发送停止位

结束写入

等待5毫秒

重新启动TSM

SMBus与TSM的通信

德克斯特研究中心•美国密歇根州德克斯特市休伦河大道7300号,邮编48130•电话:+1(734)426-3921©_

8675版本NC SMBus App Note.doc 2010年7月35日第21页

7号。睡眠模式

进入休眠模式的SMBus事务的格式为:

伪代码示例:将TSM置于睡眠模式

一。发送起始位

2。发送从地址(例如0x00)*+Rd-Wr位**

三。发送命令0xFF

四。发送PEC字节0xF3

5个。发送停止位

6。将SCL线置于低电平

TSM可以通过SMBus发送的“进入睡眠模式”命令进入睡眠模式

接口。此模式不适用于5伏电源版本。将电流消耗限制在

2.5μA(典型),睡眠时SCL-pin应保持较低水平。TSM恢复默认通电状态

通过将SCL引脚设置为高,然后将PWM/SDA引脚设置为低(至少t)来实现模式(通过端口复位)

滴滴涕

>33毫秒。

如果EEPROM配置为脉冲宽度调制(EN_脉冲宽度调制

高),之后将选择脉宽调制接口

唤醒,如果PWM控制[2],PPODB为1

TSM将输出一个带

推拉输出。

图10进入睡眠模式。

图11退出睡眠模式。

退出睡眠模式后,数据在0.25秒后可用(典型值)。对于第一次测量

跳过IIR滤波器,之后所有测量通过EEPROM中配置的数字滤波。

从地址Wr A命令A

1 7 1 1 8 1

佩卡

81号

SMBus与TSM的通信

进入睡眠模式框图

进入睡眠状态

发送起始位

从从属服务器确认

是的

发送从机地址

发送命令

发送停止位

发送PEC字节

从从属服务器确认

是的

从从属服务器确认

是的

发送停止位

结束睡眠

设置SCL低

SMBus与TSM的通信出于可靠性考虑,TSM将ESD钳位二极管与Vdd和Vss结合在一起。因此

断电的TSM将加载SMBus。这与SMBus规范不同。在powermanaged中

因此,当需要SMBus时,需要保持TSM通电。这个

睡眠模式没有问题。

SCL引脚的辅助功能为时钟脉冲(仅适用于5伏版本)添加下冲

如下图所示(见图13)。这种欠冲是由

片上合成齐纳二极管。典型的下冲持续时间约为15μs.An

SCL线电抗的增加有可能增加这种效应。未及点不影响

TSM识别SCL上升沿,但可能影响非TSM从站的正常运行

在同一辆公共汽车上。

图13由于片内齐纳二极管而导致的SMBUS SCL线未及。

(仅限5伏版本)

SMBus与TSM的通信

德克斯特研究中心•美国密歇根州德克斯特市休伦河大道7300号,邮编48130•电话:+1(734)426-3921©_

8675版本NC SMBus App Note.doc 2010年7月35日第24页

TSM的输入级别不完全符合SMBus规范。中小企业

规范规定输入低电压最大值为0.8V,最小高电压为

2.1V.对于TSM(参考数据表),规格不同。当5V(也适用于

>使用5V应用),TSM使用片上电压调节器(5V–至–3V±10%)。

在3V版本中,电源直接使用。然后,在5V(以及大于5V)时

TSM的内部电路在3V±10%的电压下工作,而在3V的电压下,电源规格

覆盖3V±20%。此电源的较高公差导致

输入电平。5V TSMs的最坏情况值为:车辆识别号,L=0.5…1.5V和车辆识别号,H=1.6…2.4V(大于

所有温度和电源电压),以及3V TSM的为0.5…1,5V和1.2…2.8V(idem)。

然而,这并不意味着5V的TSM可能有车辆识别号L=1.5V和车辆识别号H=1.6V

同时,TSM也不会同时具有车辆识别号L=1.5V和车辆识别号H=1.2V。两者

阈值随着电源电压的降低而降低。这两个阈值也是

受同一方向的温度影响。SDA和SCL都有滞后现象

抗噪声输入。

总之,保持总线上的逻辑电平Vlow<0.5V,Vhigh>2.8V肯定会

使用TSM覆盖所有操作案例,但不太可能是真正必要的。详细值

(由设计保证,而非试验限值)如下:

表6

SMBus与TSM的通信

德克斯特研究中心•美国密歇根州德克斯特市休伦河大道7300号,邮编48130•电话:+1(734)426-3921©_

8675版本NC SMBus App Note.doc 2010年7月35日第25页

图14输入电压水平与电源电压和温度

9号。应用程序信息

TSM温度计在SMBus配置中的应用

图15 TSM SMBus连接。

SMBus与TSM的通信

德克斯特研究中心•美国密歇根州德克斯特市休伦河大道7300号,邮编48130•电话:+1(734)426-3921©_

8675版本NC SMBus App Note.doc 2010年7月35日第26页

使用3.3V电源将TSM连接到SMBus。TSM具有二极管钳位SDA/SCL至

因此,有必要为TSM提供电源,以便不加载SMBus线路。

在SMBus配置中使用多个tsm

图16在SMBus网络中使用多个TSM设备。

TSM支持EEPROM中的7位从机地址,因此允许通过

两根普通电线。电流源上拉(如LTC1694)可能优先采用较高的

总线上的电容负载(C3和C4代表线路寄生),而简单的电阻上升

(R1和R2)提供明显的低成本优势。

高压电源操作

作为标准,模块MD-0003和MD-0005的工作电压为5伏。此外,

由于在引脚SCL/Vz上提供了集成的内部参考调节器,这些模块可以

很容易从高压电源(如VDD=8V…16V)供电。只有一些外部的

如下图所示的组件是实现这一点所必需的。

图17 12V调节器实施。

使用SCL/Vz引脚的第二个(合成齐纳二极管)功能,2线接口

只有在电压调节器过驱动(5 V调节电源被强制至Vdd)时,功能才可用

别针)。//SMBus控制信号

#定义_SCL_IO TRISCbits.TRISC3//Pin RC3方向控制位

#定义_SDA_IO TRISCbits.TRISC4//Pin RC4方向控制位

#define _SCLPORTCbits.RC3//为SLC线路分配pin RC3

#define _SDAPORTCbits.RC4//为SDA行分配pin RC4

#define mSDA_HIGH()_SDA_IO=1;//设置SDA行

#define mSDA_LOW()_SDA=0;_SDA_IO=0;//清除SDA行

#define mSCL_HIGH()_SCL=1;_SCL_IO=0;//设置SCL行

#define mSCL_LOW()_SCL=0;_SCL_IO=0;//清除SCL行

#定义ACK 0

#定义NACK 1

#定义SA 0x00/从地址

#define DEFAULT_SA 0x5A//默认从属地址

#define RAM_Access 0x00//RAM Access命令

#定义EEPROM访问0x20//EEPROM访问命令

#在eeprom中定义RAM-Tobj1 0x07//To1地址

//延迟常数

#定义DEL1SEC 100000

#定义DEL80ms 7400

#定义DEL200ms 18500

//高低电平时钟@Fosc=11.0592MHz,Tcy=362ns

#定义HIGHLEV 3

#定义LOWLEV 1

//延迟常数@Fosc=11.0592MHz,Tcy=362ns

#定义TBUF 2

/****************************************************************************

//SMBus上的启动条件

/****************************************************************************

//名称:起始位

//函数:在SMBus上生成启动条件

//参数:否

//Return:名称

//备注:请参阅“系统管理总线(SMBus)规范版本2.0”

/****************************************************************************

无效起始位(void)

{

mSDA_HIGH();//设置SDA行

Delay10TCYx(TBUF);//稍等几微秒

mSCL_HIGH();//设置SCL行

Delay10TCYx(TBUF);//生成站点之间的总线空闲时间

//和启动条件(Tbuf=4.7us min)

mSDA_LOW();//清除SDA行

Delay10TCYx(TBUF);/(重复)启动后保持时间

//条件。在此期间之后,生成第一个时钟。

/(Thd:sta=4.0us最小值)

mSCL_LOW();//清除SCL行

Delay10TCYx(TBUF);//稍等几微秒

}

SMBus与TSM的通信

德克斯特研究中心•美国密歇根州德克斯特市休伦河大道7300号,邮编48130•电话:+1(734)426-3921©_

8675版本NC SMBus App Note.doc第28页,共35页2010年7月

/*************************************************************************************

//SMBus上的停止条件

/*************************************************************************************

//名称:停止位

//函数:在SMBus上生成停止条件

//参数:否

//Return:名称

//备注:请参阅“系统管理总线(SMBus)规范版本2.0”

/****************************************************************************

无效停止位(void)

{

mSCL_LOW();//清除SCL行

Delay10TCYx(TBUF);//稍等几微秒

mSDA_LOW();//清除SDA行

Delay10TCYx(TBUF);//稍等几微秒

mSCL_HIGH();//设置SCL行

Delay10TCYx(TBUF);//停止条件设置时间(Tsu:sto=4.0us min)

mSDA_HIGH();//设置SDA行

}

/*************************************************************************************

//在SMBus上传输数据

/*************************************************************************************

//名称:发送字节

//Function:在SMBus上发送一个字节

//Parameters:unsigned char TX_buffer(将在SMBus上发送的字节)

//返回:无符号字符确认位(确认位)

//0-确认

//1-珍珠层

//注释:首先发送MSbit

/****************************************************************************

无符号字符发送字节(无符号字符发送缓冲区)

{

无符号字符位计数器;

无符号Ack_位字符;

无符号字符位;

for(位计数器=8;位计数器;位计数器---)

{

if(Tx_缓冲区和0x80)

bit_out=1;//如果Tx_buffer的当前位是1 set bit_out

其他的

bit_out=0;//否则清除bit_out

send_bit(bit_out);//在SDA上发送当前位

Tx_buffer<<<=1;//获取下一位进行检查

}

Ack_bit=Receive_bit();//获取确认位

返回Ack_位;

}//TX_byte()结束

/*************************************************************************************

------------------------------------------------------------------------------------------------------------------

无效发送位(无符号字符位)

{

if(bit_out==0)//检查位

mSDA_LOW();//bit_out=1时设置SDA

其他的

mSDA_HIGH();//如果bit_out=0,则清除SDA

不()//

No();//Tsu:dat=250ns最小值

不()//

mSCL_HIGH();//设置SCL行

Delay10TCYx(HIGHLEV);//时钟脉冲高电平

mSCL_LOW();//清除SCL行

Delay10TCYx(LOWLEV);//低电平时钟脉冲

//mSDA_HIGH();//Master release SDA行,

回报;

}//send_bit()结束

严重的噪音也可以从SCL(在最坏的情况下,也可以从

SDA)销。利用PWM输出可以解决这一问题。此外,脉宽调制输出可以通过附加

滤波(在较低的脉宽调制频率设置下)。随着简单的LPF RC网络的增加

ESD额定值是可能的。

 
TAG:
打印本页 || 关闭窗口
 上一篇:热电堆SMBus
 下一篇:温度热流测试仪