亲爱的对话框,
我开发了一个带有Murata LBCA2HNZYZ BLE模块的产品(包括DA14580芯片)。
该产品有两个模块,一个是中央,另一个是外围设备。
但是在彼此连接后,外围设备一个小时不会响应几次。
中心与外围的距离约为6米。在我的环境里没有无线电波干扰。
在我的测试代码中,中央每50ms发送一个有23个八位pdu长度的数据包。
在许多情况下,外围响应一个空分组的ACK。
但是外围设备在从中央发送数据包后不会突然发送任何响应。
此时,Central致以同一数据包(重试)。
最后他们断开了连接,因为中心从外围设备上得不到任何数据包。
在这种情况下,外设发送错误的BLE堆栈(GAPC)“0x3D(由于麦克风故障而终止)”。
请帮我找出断开的原因以及如何提高连接的稳定性。
以下是我环境的详细信息。
(SDK)
3.0.10.1
(BLE设置)
WinSize: 02
WINOFFSET:0x0002
间隔:0x0006
延迟:0 x0000
超时:0x0048
ChM: 0 x1fffffffff
SCA:0x00.
加密是启用的。
使用MIDI在蓝牙协议上
关键词:
设备:
嗨,避开Kudoh,
连接终止这种原因是有点很少发生,也有点奇怪,由于麦克风在控制器的级别,我不认为有很大程度上通过软件为了使断开的原因,即使这是一个糟糕的天线或嘈杂的环境你应该能够重新发送。唯一能想到的,可能会导致这种断开的是你的软件使用AES硬件,也许在你使用这个硬件块的情况下,它没有被正确共享。如果中央设备或外围设备不能正常工作,也要尝试更换它们。
由于MT_dialog
亲爱的对话框,
感谢您的回复!
实际上我使用DA14580中的AES硬件,因为我们的BLE连接是加密的。
我又做了一些测试这里还有一些其他的事实。
1.我可以用两个Murata EVK (LBCA2HNZYZ-TEMP-DK)和我们的软件重现同样的问题。
2.当我们的外设连接到MacBook时,没有问题。
(BLE设置)
WinSize: 03
间隔:0x000F.
延迟:0 x0000
超时:0 x0064
ChM: 0 x1fffffffff
SCA:0x05
加密是启用的。
使用MIDI在蓝牙协议上
3.当其他外围设备(不使用加密)连接到我们的中心时没有问题。
(BLE设置)
WinSize: 02
间隔:0x0006
延迟:0 x0000
超时:0x0048
ChM: 0 x1fffffffff
SCA:0x00.
加密禁用。
使用MIDI在蓝牙协议上
4.我可以用更长的连接间隔(7.5->15ms)和超时(720->1000ms)重现同样的问题。
5.当中央和外围设置得更近(0-3m)时没有问题。
我想中央加密方法存在一些问题。
我期待着您的回音。
谢谢!
顺庚
嗨,避开Kudoh,
关于加密,我的介绍是什么,如果在您的中心侧使用命令,请按顺序进行应用程序级别实现使用加密硬件?更具体地说,如果应用程序中的任何位置,则使用以下命令GapM_USE_ENC_BLOCK_CMD?由于您在应用程序中使用安全性,堆栈将处理所有加密操作,您不必从您的应用程序中执行任何操作。
但除此之外,当设备之间有最小距离时,你看不到这种情况发生,这将表明天线问题。此外,通过嗅探日志我已经注意到您有重传(意外的SN),您可以提供一些关于您使用的XTAL32的信息(如果您正在使用,类型等)。你也可以在中心和外设之间切换单板,例如pcb central ->fw peripheral和pcb peripheral ->fw central,并检查这次是否能在中心发现同样的错误。
由于MT_dialog
亲爱的对话框,
我不使用命令gapm_use_enc_block_cmd。
我只在示例代码的BLE_APP_SEC宏中使用了一个Bond和一个encrypt命令。
我不使用32khz xtal和睡眠模式。
我曾尝试交换Murata EVK (LBCA2HNZYZ-TEMP-DK)的硬件,以便从中心切换到外围,从外围切换到中心。
但我已经能够重现这个问题。
现在我正在尝试在中央和外围都有同样的测试而没有加密。到目前为止它似乎很好(一小时)。
我将继续进行这次测试。
谢谢!
顺庚
嗨,避开Kudoh,
由于您已更改硬件并且您能够重现问题,是从外设侧的断开连接(外设报告MIC错误作为断开的原因,并且由于中央的故障麦克风字段包而下降,因此如前所述)或中央侧(MIC断开原理出现在中央,由于包裹包上的包上的错误麦克风领域)?
如果没有安全性和加密,您可能会因超时而丢失,因为您不使用加密,因此不应获得MIC原因断开连接。
由于MT_dialog
亲爱的对话框,
在许多情况下,断开从外围侧。但也脱离了中央侧面。
而且没有安全性和加密,我没有得到任何断开连接,包括超时(代码0x08)。
我使用的DA14580有7.5 ms最快的间隔和安全和加密与16mhz xtal。
我想这可能是因为内核的性能不足。
(而且我猜当中央和外设放在一定距离时,核心需要更多的能量。)
DA14580有硬件AES外设,但安全和加密需要一些核心能力?
我想知道在[7.5 ms连接间隔+安全性和加密]和[仅7.5 ms连接间隔]情况下,是否可以获得性能边际的信息。
谢谢!
顺庚
嗨,避开Kudoh,
由于加密是通过硬件完成的,所以对系统施加延迟似乎有点奇怪,我们正在检查,我们会让你知道。也只是为了验证连接间隔是否更大,例如50毫秒或100毫秒,你没有得到一个断开的原因?
由于MT_dialog
亲爱的对话框,
我已经测试了100毫秒的连接间隔和使用加密。
并且我能够重现同样的问题(0x3D连接终止由于MIC故障从外设)。
我期待着你的最新消息。
谢谢!
顺庚
嗨,避开Kudoh,
如果是这种情况,那么连接的间隔似乎与问题无关,核心中缺乏性能的情况可以被删除。是否有可能通过邮件共享您的代码以尝试复制这个问题?
由于MT_dialog
亲爱的对话框,
谢谢你的支持。
你能告诉我一个我应该发送代码的地址吗?
我在网站上寻找一个地址,但我找不到...
谢谢你!
顺庚
嗨,避开Kudoh,
已向该注册邮箱发送邮件。
由于MT_dialog
亲爱的对话框,
我收到你的邮件了!我发送了我的代码。
谢谢
顺庚