【问题标题】:i2c analysis on oscilloscope示波器上的 i2c 分析
【发布时间】:2015-02-22 15:50:21
【问题描述】:

我正在使用基于 cortex 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));

谁能解释一下?

【问题讨论】:

  • 我对 tm4c1294 不熟悉,很可能是处理器中的 I2C 状态机看到总线上的 NACK(由没有接受地址的从设备生成)而不发送数据。一般来说,I2C 主机不应该在地址 NACK 之后发送数据,尽管这实际上没什么坏处。

标签: embedded i2c


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    • 2022-12-18
    • 1970-01-01
    相关资源
    最近更新 更多