你好,
我正在使用一天的DA14531与IMU的一天套件完成。我将BLE_APP_PROFILE示例修改为与IMU的接口并发送IMU数据。
当我使用i2c_speed_fast时,我观察到只有zeroes在行上发送,我的代码在几秒钟后击中了nmi处理程序。在PeripH_Init()函数中,我初始化了I2C外设,我正在读取IMU的WHO_AM_I寄存器,直到我接收正确的值。我使用了逻辑分析仪,观察到只发送零。
我尝试了同样的事情,但使用i2c_speed_standard,我观察到数据正在正确写入SDA行,我能够读取WHO_AM_I寄存器。
这个问题的任何帮助都会很棒。并且我已经附加了工作(i2c_speed_standard)和错误(i2c_speed_fast)方案的屏幕截图。
谢谢
关键词:
嗨Tsgowtham,
我建议使用示波器而不是逻辑分析仪查看信号。您可能会发现您的上拉电阻太弱而无法快速模式通信。
此致
im_dialog.
嗨im_dialog,
快速I2C使用4.7 kohms的外部上拉电阻。是否有任何官方推荐外部拉动电阻值,应该用于快速I2C?
谢谢
嗨Tsgowtham,
上拉电阻的值在很大程度上取决于总线电容。查看以下内容以获取以下详细信息:
https://electronics.stackexchange.com/questions/1849/is-there-a-correct-resistance-value-for-i2c-plar-up-resistors.
此致
im_dialog.