TOP

FAQ 常見問答

    • .MCU在Sleep Mode功耗一般爲多大?

      MCU進入Sleep Mode時功耗將降至最小,一般不會超過2uA。工規的IC,以SN8P2501B爲例,在-40℃~85℃時,其Sleep Mode功耗爲10~21uA。 MCU型號不同,可能會稍有差异,具體可參看datasheet電氣特性章節。
    • .2系列MCU,在Green Mode下,TC0是否還會繼續計數,是否能將系統喚醒?

      對于大部分MCU,當系統進入綠色模式後,其喚醒源可以是T0溢出,外部中斷P0,P1(需要設置P1W寄存器)電平變化觸發,也可以爲外部復位或看門狗溢出。TC0幷不能將系統從綠色模式喚醒。

      在程式進入綠色模式前,若使能TC0功能,則在程式進入綠色模式後仍然會計時,計滿溢出後將TC0IRQ標志位置舉起,但不會立即回應該TC0中斷,必須等到喚醒源將系統從綠色模式喚醒後才可以。

      也有些例外,如SN8P2711/2711A,SN8P2808。這些型號的MCU,其T0M寄存器均具有TC0GN位,可以設置是否開啓TC0喚醒綠色 模式的功能;若將其置1,則TC0溢出可以將系統從綠色模式喚醒;若設置其爲0,則不會。而此時TC0是否會繼續計數,請參考相應datasheet中的 SYSTEM OPERATION MODE/OVERVIEW章節。

      SN8P2711/2711A沒有T0定時/計數器,只能通過設置TC0GN位利用TC0來喚醒綠色模式,SN8P2808既可以用T0來喚醒,也可以用TC0來喚醒綠色模式,只是若要通過TC0來喚醒,必須設置TC0GN位爲1。 
    • .如何正確設置進入低速模式?

      設置進入低速模式可分爲兩種情况:不停掉外部高速振蕩器或停掉外部高速振蕩器。
      1 用戶若對功耗要求不是很高,可以不停掉外部高速振蕩器。
      程式設置如下:

      B0BSET FCLKMD

      2 停掉外部高速振蕩器以减小功耗。

      B0BSET FCLKMD
      B0BSET FSTPHX

      以上指令執行順序不能顛倒,若客戶在沒有設置進入低速模式前停掉外部高速振蕩器,由于此時程式還處于普通模式狀態,振蕩器一旦停振,系統將不再執行,從而導致出錯。
      詳細資訊可參考datasheet中系統模式切換和系統低速時鐘章節。
    • .芯片爲何無法進入Sleep Mode?

      需要進入Sleep Mode,可在程序中設置:B0BSET CPUM0。如果無法進入Sleep Mode,請檢查以下三種情况:
      1.檢查watchdog的設置,當選擇Always on選項時,系統將無法進入sleep模式;
      2.檢查Port0是否變化的電平信號輸入,用戶需要根據實際情况决定Port0是否上拉;
      3.檢查是否在程序中設置Port1具有喚醒功能,如果有設置此功能,還需檢測Port1是否有變化的電平信號輸入。
      以上三種情况都可使芯片退出Sleep Mode,因此用戶需確保外來信號的正確性,而且作爲有喚醒功能的口都要上拉。
    • .芯片從低速模式進入睡眠模式,將芯片喚醒後,系統將工作于哪種模式?

      下圖是SONIX MCU的工作模式切換圖。

      從上圖可以看到,不管系統是從低速模式還是從普通模式進入睡眠模式,當系統被喚醒後,它都會進入普通模式。
      另外,系統從Green Mode被喚醒後,將返回原模式(普通模式或低速模式)。
    • .在程序中應如何設置才能增加MCU進出GREEN MODE的穩定性?

      爲了增加MCU進出GREEN MODE的穩定性,在進行模式切換時,必須使用IDE自帶的宏指令來操作(在M2IDE_V115或以後的版本中已附帶這部分宏指令,路徑爲 C:\Sonix\M2IDE_V115\use_inc2下,相應母體的inc文件內),其它模式間的切換也必須使用對應的宏指令來完成。

      關于各種模式操作的宏名稱, 請參考下表:
      宏名稱 宏長度 說明
      @SleepMode 1-word 系統進入Sleep Mode (Power Down).
      @GreenMode 3-word 系統進入Green Mode, 包含系統同步處理程序.
      @SlowMode 2-word 系統進入Slow Mode, 同時停止高速振蕩源.
      @NormalMode 5-word 系統由Slow Mode切換至Normal Mode, 程序包含啓動高速振蕩器, 高速振蕩器warm-up程序與系統切換至Normal Mode控制程序.
    • .在睡眠模式下,芯片輸入口應如何設置以獲得最低電流?

      1. 睡眠模式下,輸入口應設置爲上拉狀態(input pull-up);不能設爲浮動狀態(input floating)。
      2. 建議客戶可透過以下兩種方法實現:
      (1). 松翰系列芯片大部份I/O都有內建可編程上拉電阻(programmable pull-up resistor),客戶可透過程序設置內部上拉電阻使能(input pull-up resistor enable)。
      例如:使能P1口上拉(enable P1 pull-up resistor)
        mov A, #0FFh
        mov P1UR, A ;P1上拉電阻緩存器P1UR設置爲1,使能上拉
      (2). 對內部無上拉功能的輸入口(例如:與RST共享的輸入口),建議外接一個電阻(20Kohm)上拉到VDD。
      另外,用戶有時詢問該如何設置不用的IO口以省電。其實,輸入還是輸出,是一樣的,只要保持IO口有固定的狀態,不要懸浮,即可减少漏電流的産生; 當然輸出口需要根據外部電路來確定狀態。