RTL8195AM 功耗問題

您好,目前手上有個專案使用貴司的RTL8195AM來進行產品開發。

環境為:
stander SDK版本: sdk-ameba-v4.0a_without_NDA
FreeRTOSConfig.h底下設定參數 configUSE_TICKLESS_IDLE (1)

此裝置的基本運作為透過MQTT協定固定每100ms週期性送出一筆sensor數據(2kB),在裝置關閉WIFI不運作時功耗約為31mA,開啟WIFI並連線開始傳送數據時量測到的功耗約為80mA,如純粹與MQTT server連線不傳送數據功耗約為48mA。

想請問有方法可以讓裝置運作時功耗再降低嗎?

Deepsleep模式可以進一步降低功耗

1 Like

您好,感謝回覆

想再詢問一個問題,目前使用sdk-ameba-v4.0a_without_NDA 搭配IAR(7.80.4)環境做開發。我把source code更改為下圖1. 並燒錄到裝置且斷電重開之後,當裝置下次要再執行燒錄或除錯模式就會跳出圖2.視窗通知無法燒錄,請問有辦法可喚醒CPU來執行燒錄嗎?

圖1.

圖2.
燒錄問題_2

@roy1100012

我按照你的代码改,确实出现了 IAR 不能烧录的问题。
我是这么解决的:

  • 把开发板上的 DAP firmware 换成 Arduino 版本
  • 通过 Arduino 给 RTL8195 烧录一个示例的代码
  • 重启确认 CPU UART 输出正常
  • 把开发板上的 DAP firmware 再换回 IAR 版本
  • 再次用 IAR 烧录,没问题
1 Like

Hi wyy:

感謝您的回覆,在開發板上目前的確可以用您上述的方法重新燒錄。
但很不幸我現在接手的重新layout板子上沒打DAP chip,如果透過J-LINK燒錄有方法救活
嗎?

@roy1100012

把 DAP 關掉,用 JLink 测试后,复现了问题。
尝试了这么解决:
在 retry 弹窗出来后,点 yes,然后按开发板上的 pushbutton 重启芯片。通常一次不行,需要重启几次,运气好的话,时间会和 JLink 对上,UART_LOG 会打出 Flash 烧录的信息。重启的速度也不用太快,基本上重启一下,等 UART_LOG 信息打印完,看到没有 Flash 烧录的信息,再去重启。

1 Like

Hi wyy:

非常感謝您的協助,目前照您提供的方法執行燒錄成功了。

另外,今日後續開發有遇到新的問題想再跟您詢問。目前專案在加入我方應用端的程序時遇到RAM不足的狀況,所以參考"UM0034 Realtek Ameba1 Memory Layout.pdf"文件,第4.3項把library移到SDRAM,但發現在pmu_release_wakelock(PMU_OS); 以及SDRAM都有使用的狀況下,當程序執行到wifi_off(); or wifi_on();等函式時裝置就會停止運作(如SDRAM不使用,上述問題不會發生)。

想請問port.c底下vPortSuppressTicksAndSleep( );圖1.處是否要做修改才能讓裝置可正常運作?

圖1.

Hi @roy1100012

請問一下,這個版本的SDK您是從何處獲取的呢? 因爲目前我們的全平臺上已經不再提供這個版本的SDK了,因此它應該有很久沒有更新了,我們比較新的SDK是Github上的版本,這個版本有比較新的更新和功能,并且也支援GCC和IAR來build firmware。

Github Ameba 1 SDK鏈接如下,

Hi xidameng

我印象是從https://www.amebaiot.com/ 阿米巴網站獲取的,已經是去年初的時候下載的了。

1 Like

收到,因爲這個版本已經很久沒有更新了,所以我們已經把它拿下來,換成Github版本的SDK了,那邊的SDK更穩定一些,版本清晰,也比較容易幫助你debug,這邊建議換成Github的版本再試一下