在I2C传输过程中失去BLE连接。

⚠️
嗨,那里..感谢您参加论坛。激动人心的消息!现在,我们正在转到我们的新论坛平台,该平台将提供更好的功能,并包含在主话网站中。所有帖子和帐户都已迁移。我们现在仅在新论坛上接受流量 - 请在https://www.dialog-spoomendonductor.com/support。我们将在未来几天修复错误 /优化搜索和标记。
12个帖子 / 0新
最后一篇文章
尼古兰
离线
最后一次露面:1周3天前
加入:2018-03-20 08:24
在I2C传输过程中失去BLE连接。

嗨对话,

我的一项任务负责通过I2C将大量数据发送到外部芯片。我经常遇到DA14681发送错误的I2C信号(重新发布启动条件)并在几秒钟内失去BLE连接的问题。我发现,只要增加连接间隔,这种问题的发生率就是降低。此外,在我添加了许多奴隶延迟之后,结果更好。我想在I2C传输期间,每个间隔的BLE TX/RX事件可能发生。请查看所附的PDF文件,以理解我的意思。问题可能吗?如果是,如何防止BLE TX/RX事件和I2C TRNASSISSIRS同时发生?是否有可能知道BLE TX/RX事件提前发生,然后在以下步骤中进行I2C传输?

谢谢你的帮助。

设备:
pm_dialog
离线
最后一次露面:10小时6分钟前
职员
加入:2018-02-08 11:03
嗨,尼古兰,

嗨,尼古兰,

让我检查一下,我会告诉你。

谢谢,pm_dialog

尼古兰
离线
最后一次露面:1周3天前
加入:2018-03-20 08:24
嗨对话,

嗨对话,

有我的问题解决方案吗?感谢您的帮助

pm_dialog
离线
最后一次露面:10小时6分钟前
职员
加入:2018-02-08 11:03
嗨,尼古兰,

嗨,尼古兰,

我为延迟表示歉意。因此,如果我正确理解了您的描述,则在I2C交易同时发生BLE事件时,问题就会存在。这个对吗?

该应用程序是否在对等设备中的通知中发送I2C值?当此问题发生时,设备会重新启动还是仅断开连接?您是否运行了调试模式?另外,您是否使用任何睡眠模式?

我认为比I2C优先级更高的事件可能是它在ISR中提供。与I2C(Priority_2)相比,BLE中断具有更高的优先级(Priority_1)。

谢谢,pm_dialog

尼古兰
离线
最后一次露面:1周3天前
加入:2018-03-20 08:24
嗨对话,

嗨对话,

是的,我的问题是BLE事件(ACK)和I2C传输(尤其是阅读)。

似乎可以重新启动或I2C返回0x8001故障(我使用I2C适配器,例如AD_I2C_READ();)。我观察到I2C信号传输分为两个(似乎重新发布启动条件,因为DA14681在字节完成后无法给出ACK)

我通过两种模式的调试模式和生产获得了相同的结果。结果应该不同吗?问题发生时,我使用了“ PM_MODE_IDLE”。您提到的是,与I2C(Priority_2)相比,BLE中断具有更高的优先级(Priority_1)。我认为这是这样的,BLE事件(resposne ack)导致不规则的I2C传输,并让DA14681转到未知状态(稍后重新启动),或者仍然一直在等待外部数据。

我打算知道哪个任务或函数负责在每个连接间隔中发送BLE ACK,并让我在下一步中进行I2C Tramission。

pm_dialog
离线
最后一次露面:10小时6分钟前
职员
加入:2018-02-08 11:03
嗨,尼古兰,

嗨,尼古兰,

在调试模式下的行为是什么?代码会卡住吗?例如,您是否获得任何断言或其他任何东西。

谢谢,pm_dialog

尼古兰
离线
最后一次露面:1周3天前
加入:2018-03-20 08:24
嗨对话,

嗨对话,

通常,由I2C传输塞。我不使用断言。我将移动应用TX/RX数据用于DA14681,然后处理数据,然后通过I2C使用外部芯片进行TX/RX数据。

我希望我能完全知道何时发生BLE事件(确认),请允许我在两个连接事件之间进行I2C传输。是否可以知道BLE连接事件的中断?如果是,怎么知道?

还有一个问题,如果DA14681启动了更改连接率参数的请求,它将完成多长时间并调整新的连接率参数? one connection interval or longer ?

谢谢你的帮助。

奈杰尔

pm_dialog
离线
最后一次露面:10小时6分钟前
职员
加入:2018-02-08 11:03
嗨,尼古兰,

嗨,尼古兰,

很抱歉,我答复晚了。因此,如果我正确理解,您想在每个连接间隔中触发应用程序,这是您的要求吗?

关于您的第二个问题,您是指连接更新参数过程吗?通常,连接间隔是由中央定义的,因此您可以做的是发布连接更新请求,并且中央将决定是否接受您请求的连接参数。您的意思是,一旦主人接受了更新参数请求,它将需要多少钱?

谢谢,pm_dialog

尼古兰
离线
最后一次露面:1周3天前
加入:2018-03-20 08:24
嗨对话,

嗨对话,

是的,我想在连接事件之间进行I2C传输。请教我怎么做?

感谢您的帮助

奈杰尔

pm_dialog
离线
最后一次露面:10小时6分钟前
职员
加入:2018-02-08 11:03
嗨,奈杰尔,

嗨,奈杰尔,

是的,但是设备是否在睡眠模式下配置?通常,该系统可以进入广告签名或连接间隔之间的睡眠模式。

谢谢,pm_dialog

尼古兰
离线
最后一次露面:1周3天前
加入:2018-03-20 08:24
嗨对话框

嗨对话框

负责发送BLE确认的代码(或函数)在哪里?我想知道执行代码的时间,允许我在发送确认后立即进行I2C传输,以确保在下一个ACK之前完成I2C作业。谢谢

pm_dialog
离线
最后一次露面:10小时6分钟前
职员
加入:2018-02-08 11:03
嗨,奈杰尔,

嗨,奈杰尔,

请查看第7.7节中断的一代UM-B-044:DA1468X软件平台参考用户指南。请检查以下子弹:

BLE_EVENT_IRQ:广告 /扫描 /连接事件的结束。用于清理/重新定义状态并推迟TX/RX处理操作。

之后,请参见第8.3.4节中的钩子UM-B-056:DA1468X软件开发人员指南文档。BLE钩机制为用户应用程序提供了一种通知特定BLE事件的确切时间的通知。请参见图41:连接。

谢谢,pm_dialog