无附带I2C无法在DA14531微小模块上正常工作

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
11个帖子/ 0新
最后一篇
Sergei Bezroukov.
离线
最后一次露面:11个月2周前
加入:2020-06-25 00:28
无附带I2C无法在DA14531微小模块上正常工作

你好呀,

我使用DA14531微型模块,具有无附加的SDK 6.380.10.4和出厂编译的Dodeless_531_Stantalone_set_two.hex图像以及TI的HDC1000传感器。当我读取或写入传感器寄存器时出现问题。

通过读取寄存器,命令如下(请参阅附加控制台会话):

AT + IOCFG = 9,7

AT + IOCFG = 8,8

AT + i2ccfg = 7,100,16

在+ I2CREAD = 0 x40,以0 xfe

这里0x40是传感器I2C地址,0xFE是传感器寄存器地址。这样,应该读取2字节的传感器的制造商ID。但是,只读第一个ID字节并通过读取模块晶体的第二个字节仅为8个SCL脉冲到传感器(而不是9)并挂起。请参阅附加的逻辑分析器图像。上拉I2C电阻为4.7K,因此它们不是问题。大约3分钟后,模块在终端窗口中重置并打印+就绪。先前的I2C引脚配置是重置和忘记的。

通过写入Senswor配置寄存器,模块组成了正确的SCL脉冲数,但不会在通信结束时撰写停止条件,并使SCL线路低。写入由以下命令完成,请参阅附加的逻辑分析仪图像:

AT + I2CWRITE = 0x40,2,0

其中2是传感器寄存器地址,0是写入的值。

我还尝试了其他传感器和1字节和2字节寄存器的组合。没有什么能像预期的那样工作。

问题:它是否是模块的已知问题,一个应该等待新的固件发布或有一种方法来解决它?

依恋:
PM_DIALOG.
离线
最后一次露面:6小时2分钟前
职员
加入:2018-02-08 11:03
嗨Sergei Bezroukov,

嗨Sergei Bezroukov,

感谢您的后续问题和反馈。让我查一下,然后给你答复。

谢谢,PM_DIALOG.

PM_DIALOG.
离线
最后一次露面:6小时2分钟前
职员
加入:2018-02-08 11:03
嗨Sergei Bezroukov,

嗨Sergei Bezroukov,

很抱歉耽搁了。所以,如果我现在理解了,这个可以在大约3分钟后复制,对吗?请问这个模块是与对端设备连接,还是只是发布?

在模块重置自身(3min之前)之前,如果I2C命令正常工作,请澄清您是否可以澄清?

谢谢,PM_DIALOG.

Sergei Bezroukov.
离线
最后一次露面:11个月2周前
加入:2020-06-25 00:28
仅限所有I2C命令

除了所有I2C命令中,只有I2CCFG正常工作。我没有设法制作任何其他I2C命令工作。当我尝试I2C命令时,模块只是宣传并且未连接到任何客户端。通过发送读取模块仅通过读取最后一个字节并挂起(终端终于可以在OK)中产生8个时钟,并在3分钟后重置自身。通过发送写入模块响应OK响应,不会重置自身。但是,在这种情况下,它不构成停止条件并通过接地时钟引脚保持I2C总线忙。

PM_DIALOG.
离线
最后一次露面:6小时2分钟前
职员
加入:2018-02-08 11:03
嗨Sergei Bezroukov,

嗨Sergei Bezroukov,

非常感谢你的额外投入。我会将这种行为升级到团队内部,我会尽快让你知道。

您可以尝试使用set_two项目而不是使用odeless_531_standalone_set_two.hex图像?

所以,从我们的网站下载无附带项目 -DA14585-DA14531无代码AT命令- 打开Keil项目项目\ target_apps \ deceless \ dodeless_5xx \ keil_5。

然后请尝试启用开发调试 - #define cfg_development_debug在da1458x_config_basic.h中 - 重建项目并以调试模式运行它。

发送特定的I2C后,项目是否正常运行,或者陷入断言?'

谢谢,PM_DIALOG.

Sergei Bezroukov.
离线
最后一次露面:11个月2周前
加入:2020-06-25 00:28
我重新编译了套装

我按照您的建议从source on Keil重新编译了SET TWO project。行为没有任何改变。通过发送READ命令,代码被卡在文件user_i2c.c的第89行(等待由宏WAIT_UNTIL_NO_MASTER_ACTIVITY()提供的while循环)。没有陷入一个断言。

PM_DIALOG.
离线
最后一次露面:6小时2分钟前
职员
加入:2018-02-08 11:03
他谢尔盖,

他谢尔盖,

我在内部升级到球队,所以我会尽快回复你的消息。

谢谢,PM_DIALOG.

PM_DIALOG.
离线
最后一次露面:6小时2分钟前
职员
加入:2018-02-08 11:03
嗨谢尔盖,

嗨谢尔盖,

再次感谢您的反馈。请查找附加的差异文件,并在项目/ target_apps /无附加/附件/无附件/无附件/无附件中的建议修改程序进行建议的修改。

当最后一个命令发送到从站时,应设置I2C_Stop位,如diff文件所示。

应修改相关函数是:user_i2c_read_byte(),user_i2c_read_word16(),user_i2c_write_byte(),user_i2c_write_16(),user_i2c_scan()

在这些更改之后,您是否能够成功地执行I2C AT命令?

谢谢,PM_DIALOG.

依恋:
PM_DIALOG.
离线
最后一次露面:6小时2分钟前
职员
加入:2018-02-08 11:03
嗨谢尔盖,

嗨谢尔盖,

能否告知我们建议的修改是否解决了I2C问题?

谢谢,PM_DIALOG.

Sergei Bezroukov.
离线
最后一次露面:11个月2周前
加入:2020-06-25 00:28
亲爱的对话团队,

亲爱的对话团队,

对不起,我与其他东西很糟糕......

无论如何,我只是根据您的建议制作了代码修改并重新编译了图像。

所有I2C读/写命令现在都工作正常。

非常感谢您的支持!

PM_DIALOG.
离线
最后一次露面:6小时2分钟前
职员
加入:2018-02-08 11:03
嗨谢尔盖,

嗨谢尔盖,

谢谢你让我们知道。如果您有任何其他问题,请在论坛发帖。欢迎您的反馈!

谢谢,PM_DIALOG.