我试着让da14580连接到HP203b压力传感器。我在树莓派上测试了这个传感器,效果很好。在da14580上,时间似乎太快了。我能看到信号发出,但压力传感器没有反应。这是在正常速度下运行。当我在逻辑分析仪中查看波形时,Pi连接SCL在10秒内低,然后如预期的10秒内高。使用对话芯片,低电平6秒,高电平4.5秒。(我猜实际上是5和5,由于我的采样速度有一些误差)
为什么来自da14580芯片的SCL速率要快两倍。我该怎么做才能解决这个问题?
谢谢你!
约翰
设备:
嗨johncharris,
你能提供给我I2C外围块的初始化代码片段吗?此外,如果您能够分享我的波形从逻辑分析仪,这将是非常有帮助的。
谢谢,PM_Dialog
这是代码。我有完整的I2C c文件,我正在使用的附件zip。我有一个截屏的逻辑分析仪与工作实现在树莓派和另一个截屏的非工作波形从da14580。
谢谢你!
约翰
嗨,约翰,
让我检查一下你的输入,我会尽快给你答复。
谢谢,PM_Dialog
谢谢你!
约翰
嗨,约翰,
I2C模块可以在两种模式下运行:正常模式或快速模式。I2C_CON_REG寄存器的I2C_SPEED位域控制控制器运行的速度。
根据你的初始化代码,使用的是标准模式,所以速度将是100kbit /s,正如你在逻辑分析仪波形中看到的那样。我在我的一边测试它,在标准模式下,SCL在1(高)为4.908 usec,在0(低)为5.092usec,这意味着10usec周期时间。在你的情况下,你需要20usec(高10usec,低10usec)转换为50kbit /s。这是不可能实现的,因为I2C块的最低速度是100kbit /s。
由于没有通用的i2c驱动程序来创建您自己的传感器驱动程序实现,我建议您参考SDK中的i2c示例,该示例位于5.0.4\projects\target_apps\peripheral_examples\i2c\i2c_eeprom路径下。例如,检查i2c_eeprom_init()函数。
谢谢,PM_Dialog