我正在消化ADS7142的资料,有个问题弄不清楚,就是I2C的高低速模式问题。ADS7142提供了多种I2C模式,standard,fast,fastplus,high speed,这些模式是如何切换的?我的理解是I2C的通信速度都由Master控制,作为slave的ADS7142只要跟随Master就可以了,不需要设定。但在ADS7142的pdf文档7.3.10.4里提到了高速模式的设定OPMODE_I2CMODE_STATU,而这个OPMODE_I2CMODE_STATU是只读的。在7.4节的框图也谈到了配置I2C的速度问题。
请解释一下这个矛盾。
user151383853:
7.3.10.4 Configuring Device into High Speed I2C mode
The device can be configured in High Speed I2C mode by providing an I2C frame with one of the HS-mode master codes (08h to 0Fh).
After receiving one of the HS-mode master codes, the device sets the HS_MODE bit in OPMODE_I2CMODE_STATUS register and remains in High Speed I2C mode until a STOP condition is received in an I2C frame.
xueqing Jia:
回复 user151383853:
My question is what the master code is,and how to provide master code to the ADS7142, I can't find the mastre code transmission in the I2C frame.
Kailyn Chen:
速率是主机来决定的,这里指的是I2C 协议中高速模式的时序,在起始条件之后,需要一个主机码(master code)表示高速模式的开始,这个主机码的方向也是主机发送给从机的,这里需要配置的意思是,如果工作在低速或快速模式下,不需要配置,但高速模式下,需要被提供主机码。
另外,这部分介绍的也是I2C协议中的广播呼叫寻址方式。