我通过浏览数据表,用户指南 和应用报告来连接湿度传感器。 我有一些与i2c相关的问题。
传感器未给出确认
问题
- 写入从机的开始,写入地址字节,停止后,传感器未给出确认。
- SCL的脉冲宽度是否正确?
我为生成时钟和数据所做的工作:
********
UCB1BR0 = 12; // fSCL =SMCLK/12 =~100kHz
UCB1BR1 = 0;
UCB1I2CSA = 0x51; // 默认从属地址(0x28)在传感器数据表中给出
******* 从机启动,停止和写入地址的连续循环*****************
同时(1)
{
UCB1CTL1 || UCTXSTT; // I2C启动条件
UCB1CTL1 || UCTXSTP; //生成I2C停止条件
}
除以上所述外,我还为USCI模块设置了必要的配置。
根据I2C协议和数据表,我的问题给出了Start序列,7位从属地址和写入位从属写入地址0x28的计算字节为0x51。
所以我设置 了UCB1I2CSA = 0x51。
因此,在发送开始后,从属写入地址必须在9时钟脉冲中通过使SDA线路低电平(这不会发生)从传感器发出确认。
生成的时钟脉冲类似于峰值。 正确吗? 时钟脉冲是否有任何问题。
有人能帮我分析这种情况吗? 我已经从CRO看到了这种反应。