主题中讨论的其他器件:CC2564
您好!
我们通过 UART 将 CC256MODN 与 STM32L4连接。 STM32L4运行 Bluetopia 协议栈。 当我们以固定速度(250ms)发送 BLE 通知一段时间时、我们会观察到堆栈未确认一个特定的 HFILL 命令:
| HFILL_GO_TO_SLEEP_IND | 0x30 |
我们可以看到 STM32L4已接收到命令(值0x30,长度为1),并且由 HCITR_COMProcess()函数处理。 但是、 永远不会调用具有 HCILL_GO_TO_SLEEP_ACK 的 HCITR_COMWrite()。 之后、我们无法与 cc2564通信、因为栈会等待新数据接收、而 cc2564正在等待 ACK。
我们可以看到、HILL_GO_TO_SLEEP_IND 和 HILL_GO_TO_SLEEP_ACK 通常被正确接收和发送、并且此错误似乎不太频繁发生。 通过在中将 WAKEUP_Ind_Retransmission_TIMEOUT 的值从500ms 更改为50ms:
HCI_VS_HCIL_参数(不活动_超时= 100ms、WAKEUP_IND_Retransmission_TIMEOUT、RTS_PULSE_WIDTH= 150us)
我们能够在没有问题的情况下运行更长的时间(有时是24小时)、但无论如何都会随机发生。
Bluetopia 在收到 HCILL_GO_TO_SLEEP_IND 时不会调用 HCITR_COMWrite()的原因是否有? 它可以帮助我们找到原因。
谢谢!