Part Number:LP-EM-CC2340R5
您好,
近日,我在追查一個未知的異常. 常常在不確定的狀態下. 讓 BLE 失去連線.
最後, 查出問題 極可能是 停留在一個 讀取外部的 GPIO 已經 TIME OUT了.
但原本有開啟的 LGPTimer LPF3 功能未穩定發生作用…導致無能力檢測 TIME OUT.
我依照 如下圖方式 建立了 LGPTimer.
為了達到降低功耗. 當使用完 GPIO 讀取有正常結束後,
會刻意 執行 "LGPTimerLPF3_stop(lgptHandle) " 來 DISABLE LGPTIMER
待下次,再次要讀取 GPIO 時,
再 執行 "LGPTimerLPF3_start(lgptHandle, LGPTimerLPF3_CTL_MODE_UP_PER);" 來 Enable LGPTimer
請問, 我要如何, 確認 LGPTimer 是否有正常 Work ?
以避免. 無法檢測 TIME OUT 現象再發生。
謝謝!!
Galaxy Yue:
您好,
可以通过示波器监测LGPTimer的计时情况。
您可以参考这个帖子关注使用方法重点看 LGPTimerLPFE.h 文件中
https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1273226/cc2340r5-how-to-configure-timer
以及这个帖子中有提到参数配置的原因
https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1234744/cc2340r5-how-to-configure-lgptimer-dio
建议您检查是否正确启动
也请考虑复用或者占用的情况导致time out
,
March Yao:
您好,Galaxy:
謝謝你的回覆 . 這兩篇文章,我有去看過了.
但我更想知道的是. LGPTimer 沒有提供 軟體相關檢測 或 API 嗎?
因為,發生的條件,並非很固定.
但至少,能在事後得知.LGPTimer 的1ms中斷是無效的.
( 我利用 LPGTimer 來遞減 100ms count.,當作 timeout )
我也才有辦法去對策其他作法來避開 死迴圈.
還請給予指導。 謝謝!!
,
Galaxy Yue:
Hi March,
这个是关于timer的描述,P10.3&10.4,counter有关也请查阅一下
https://www.ti.com/lit/ug/swcu193/swcu193.pdf?ts=1704192251095&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FCC2340R5
根据文章所述,我认为您通过LGPTimer的寄存器的值可以读取其是否timeout的状态
LGPTimer3
https://dev.ti.com/tirex/explore/content/simplelink_lowpower_f3_sdk_7_10_00_35/docs/driverlib/cc23x0r5/register_descriptions/CPU_MMAP/LGPT3.html
,
March Yao:
謝謝 Galaxy 回覆 指導.
,
Galaxy Yue:
不用客气的,有问题欢迎来论坛随时交流