This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMP100: TMP100功能疑问

Part Number: TMP100
Other Parts Discussed in Thread: TMP101

请问一下,TMP100的数据手册中的GENERAL CALL功能的具体作用是什么?

  • 您好,general call指的是I2C协议的广播呼叫寻址方式。

    我附上I2C协议规范,关于广播呼叫寻址的详细介绍,参考10.1.1部分。

    广播呼叫地址

    广播呼叫地址是用来寻址连接到I²C 总线上的每个器件。但是,如果器件在广播呼叫结构中不需要任何数据,它可以通过不发出响应来忽略这个地址。如果器件要求从广播呼叫地址得到数据,它会响应这个地址并作为从机—接收器运转。第二个和接下来的字节会被能处理这些数据的每个从机—接收器响应。广播呼叫地址的含意通常在第二个字节说明。

    这里要考虑两种情况:

    • 当最低位B 是“0”。

    • 当最低位B 是“1”。

    广播呼叫地址格式
    当位B 是“0”时,第二个字节的定义如下:

    • 00000110 (H ‘06’)。 通过硬件写入和复位从机地址的可编程部分。接收到这个两字节序列时,所有打算响应这个广播呼叫地址的器件将复位并接受它们地址的可编程部分。要采取预防措施确保器件不会在加上电源电压后将SDA 或SCL 线拉低,因为这些低电平会阻塞总线。

    • 00000100 (H ‘04’)。通过硬件写从机地址的可编程部分。所有通过硬件定义地址可编程部分(和响应广播呼叫地址)的器件会在接收这两个字节序列时锁存可编程的部分。器件不会复位。

    • 00000000 (H ‘00’)。这个代码不允许在第二个字节使用。

    编程过程的顺序请参考相应器件的数据表。

    剩下的代码没有被确定,器件必须忽略它们。

    当位B 是“1”时,这个两字节序列是一个“硬件广播呼叫”。即序列由一个硬件主机器件发送,例如键盘扫描器,它们不能编程来发送一个期望的从机地址。由于硬件主机预先不知道报文要传输给哪个器件,它只能产生这个硬件广播呼叫和它自己的地址——让系统识别它。

    第二个字节中剩下的7 位是硬件主机的地址。这个地址被一个连接到总线的智能器件识别(例如:微控制器并指引硬件主机的信息。如果硬件主机也可以作为从机,它的从机地址和主机地址一样。

    I2C spec.pdf

  • 请问一下,TMP100是在产生故障警告时会响应主机的广播寻址?还是有特定的条件?

  • 您好,广播呼叫地址是主机寻址的一种方式,和报警机制是无关的。

    Alert报警机制,指的是当总线上的主机感知到 ALERT 线路上存在 ALERT 条件,主机会发送 SMBus 警报命令(00011001)。  TMP101有Alert引脚,那么当主机发送警报命令之后, Alert引脚有效,TMP101会确认警报命令,并通过在 SDA 线上返回其从器件地址进行响应。对于TMP100来说,它没有ALert引脚,那么器件根据警报命令定期轮询器件,如果TMP100响应警报明命令的话,也是通过SDA线返回其从器件地址。

    综上,广播呼叫是主机对从机进行寻址,而报警机制,是主机发出报警命令,从机通过反馈其从器件地址来响应警报。 

  • 不必客气,后续有什么问题,大家再讨论。