?這周接手了另一個同事用合宙Air780EP模塊沒做完的項目,剛上手之后就發(fā)現(xiàn)了一個問題:
在通過AT+CSCLK=2進(jìn)入休眠之后,連接MQTT服務(wù)器,從服務(wù)器端下行消息到模塊喚醒,并且觸發(fā)RI腳的下降沿,以此喚醒MCU——但實際卻喚醒不了。
問題排查及解決方式記錄如下,希望對遇到類似情況的朋友有所幫助。
一、通過自測縮小問題范圍
在做過以下測試后,問題基本上鎖定了。
1. 進(jìn)入休眠后,MQTT鏈接是否有斷開:
使用AT+MQTTSTATU指令查看MQTT鏈接狀態(tài),
返回結(jié)果是:+MQTTSTATU :1
說明鏈接是存在的,沒有斷開。
2. 服務(wù)端下行的數(shù)據(jù)模塊是否有收到:
檢測main_uart串口的URC上報,發(fā)現(xiàn)在下發(fā)消息的時候,模塊有上報:
+MSUB: "/topic",10 byte,1234567890
說明數(shù)據(jù)可以正常收到。
3. 用邏輯分析儀或者示波器檢測下RI腳波形:
發(fā)現(xiàn)在進(jìn)入休眠后,和服務(wù)器下發(fā)消息,模塊收到URC整個流程中——RI腳都沒有出現(xiàn)下拉的波形,說明RI腳的功能有問題?
從Air780EP官網(wǎng)資料的硬件設(shè)計手冊,找下RI腳的位置有沒有量錯,嗯~ 是20腳沒有錯。
合宙Air780EP最新資料:
https://www.air780ep.cn/
?
二、找到了解決方法
通過合宙資料摸索了一小下,看到AT手冊第58頁有一條指令:
設(shè)置RI指示功能:AT+CFGRI
這條指令的功能,就是打開在Air780EP模塊接收到TCP/UDP/FTP/HTTP/MQTT的URC時,就會產(chǎn)生RI腳120ms的低脈沖,也就是給予MCU的下降沿。
AT指令手冊:
https://doc.openluat.com/article/4985
?
休眠流程中,進(jìn)入休眠之前加一條這個AT+CFGRI=1的指令后,重新嘗試了下,果然可以了。
在收到MQTT下行數(shù)據(jù)時,RI腳正確產(chǎn)生一個下降沿,喚醒了主控,大致業(yè)務(wù)邏輯沒問題了!
**三、總結(jié)及建議 **
要想Air780EP模塊可以通過網(wǎng)絡(luò)服務(wù)端下行數(shù)據(jù),以此來喚醒模塊以及喚醒主控,節(jié)省功耗的話:
需要接入模塊的RI腳,并且在流程中 (最好是開機(jī)后就配置,作為初始化的流程)加入一條 AT+CFGRI=1 指令才可以。
并且通過實測,不管進(jìn)入任何休眠模式:
例如:
AT+CSCLK=1
AT+POWERMODE="PSM+"
都需要配置AT+CFGRI=1這個指令后,才可以觸發(fā)RI中斷。看樣子是和休眠模式?jīng)]有關(guān)系的。
審核編輯 黃宇
?
-
4G
+關(guān)注
關(guān)注
15文章
5509瀏覽量
118823 -
模組
+關(guān)注
關(guān)注
6文章
1438瀏覽量
30299 -
MQTT
+關(guān)注
關(guān)注
5文章
649瀏覽量
22439
發(fā)布評論請先 登錄
相關(guān)推薦
評論