示波器上的i2c分析

时间:2015-02-22 15:50:21

标签: embedded i2c

我正在使用基于皮质m3的mc。 我用逻辑分析仪确定了我的沟通,但我并不真正理解我所看到的。你能救我吗?

  • 我正在使用10k上拉电阻
  • 我正在尝试发送数据:0x55。我(想)不看数据,只看一个地址

在下面的图片上你可以看到地址,但我认为这不正确或者我错了。 还没有传感器连接到mc,我更改了地址进行分析。

地址0x00,数据0x55:http://imgur.com/OJfe8Dj,7REdHS7,PLz1qTZ

地址0x55,数据0x55:http://imgur.com/OJfe8Dj,7REdHS7,PLz1qTZ#1

地址0xff,数据0x55:http://imgur.com/OJfe8Dj,7REdHS7,PLz1qTZ#2

我的代码:

 SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
 SysCtlPeripheralEnable(SYSCTL_PERIPH_I2C7);
 GPIOPinConfigure(0x00001002);
 GPIOPinConfigure(0x00001402);
 GPIOPinTypeI2C(GPIO_PORTA_BASE, GPIO_PIN_5);
 GPIOPinTypeI2CSCL(GPIO_PORTA_BASE, GPIO_PIN_4);
 I2CMasterInitExpClk( I2C7Master_Base, SysCtlClockGet(), false);     
 I2CMasterSlaveAddrSet(I2C7Master_Base, 0xff, false);

 I2CMasterDataPut(I2C7Master_Base, 0x55);
 I2CMasterControl(I2C7Master_Base, I2C_MASTER_CMD_SINGLE_SEND);
 while(I2CMasterBusy(I2C7Master_Base));

有人可以解释一下吗?

1 个答案:

答案 0 :(得分:1)

确实,您最好在主传感器和光传感器之间建立有线连接。然后你需要发送一个应该由slave确认的传感器的正确地址。当从机确认其地址时,您将在示波器中看到ACK位。接下来,您将根据传感器上的数据报操作数据 - 任何数据字节也应该被确认(最有可能,或者由数据表引起的)。从有线连接开始,因为在没有负载的情况下尝试I2C总线没有多大意义,我们甚至无法在您发布的图表上看到8-9个时钟周期,因为我认为它没有负载连接。希望它有所帮助。