新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 為低功耗應用選擇正確的 µC 外圍器件

        為低功耗應用選擇正確的 µC 外圍器件

        作者: 時間:2010-03-09 來源:網絡 收藏

        內部振蕩器時應慎重。雖然某些內部振蕩器可以在數微秒內喚醒處理器,但是,必須在經過數毫秒,當外部晶體達到穩定之后, 才能以更高的速度運行,然后 CPU 時鐘才能切換到更高的頻率。例如,如果一個 100 MIP 的處理器有一個 20kHz 的內部時鐘,該時鐘與外部振蕩器的 1 MHz 時鐘同時啟動,內部振蕩器將仍然能夠執行 999 條指令,而更高速度的處理器用同樣的時間只能執行 20 條指令。
        定時器

        利用好定時器有助于在處理器保持待機狀態的情況下實現系統處理功能。由于定時器非常小,因此這有助于大大降低。應該使用實時時鐘模塊接受 32kHz 計時器定時器輸入和設置不同時間間隔的“警報”或中斷,在無需處理器干預的情況下,使計時器計數增加。同樣,應該使用影子寄存器更新和比較來自 ISR 的值。一旦寄存器讀到有效的預編程值,即觸發 ISR,使處理器脫離休眠或待機狀態,而不需要 CPU 尋找 ISR 地址、更新周期或比較值。
        管理開銷

        管理開銷系統監視程序、監管工作有助于防范不安全的狀況,有關包括電壓監控器和看門狗定時器。由于數字電路依賴觸發器或從負到正(或相反亦然)狀態的轉換,因此,即使工作電壓有稍小的下降,也可能會意外觸發 RESET 條件,從而造成系統無法工作。電力減弱保護作為電壓監控的一部分,一般用于確保電壓瞬變不會強制處理器進入和退出RESET 狀態。

        只要有可能,在電壓監控解決方案中應采用不可屏蔽的中斷 (NMI) 來識別電壓瞬變。這種方法讓用戶能隨心所欲地設定電壓觸發的門限電平,無需系統復位條件,其一般比模擬-數字轉換器 (ADC) 通道更低。

        看門狗定時器監視故障情況。雖然在典型的嵌入式中,內嵌的系統程序器往往禁用看門狗定時器,但是在系統中,在電源電壓不穩定的情況下,看門狗定時器是一種有用的工具。看門狗定時器會執行預先設定功能,例如在符合某些條件時,比如電壓過低或有內存問題時,向處理器發出 RESET 指令。所的處理器應該能夠生成已知的 ISR,使處理器無需執行 RESET 而恢復聯機狀態;因為執行 RESET,必須啟動設備,因而會消耗更多的處理器功率。
        UART 通信

        將一個數字時鐘與另一個數字時鐘精確到秒地同步是不可能的,因為每個時鐘均與其內部晶體同步。在 MCU 驅動的系統中,模式下使用的 32kHz 實時時鐘晶體與用于生成UART 波特率的普通 38.4kHz 頻率之間會出現類似的同步問題。因為實時時鐘的 32,768 頻率使 15 位寄存器每秒溢出一次,所以非常適合時間保持(time-keeping) 。比較而言,在UART 中使用相同的頻率,則在典型的 10 位(起始位、8 位數據和 1 個奇偶校驗位)傳輸中保證至少有一位讀取不。這是由于 32,768Hz 時鐘必須除以 3.4,才能得到 9,600 波特率。由于沒有 3.4 這一,因此必須選擇除以 3 或除以 4(參見圖2)。

        將一個數字時鐘與另一個數字時鐘精確到秒地同步是不可能的,因為每個時鐘均與其內部晶體同步。在 MCU 驅動的系統中,模式下使用的 32kHz 實時時鐘晶體與用于生成UART 波特率的普通 38.4kHz 頻率之間會出現類似的同步問題。因為實時時鐘的 32,768 頻率使 15 位寄存器每秒溢出一次,所以非常適合時間保持(time-keeping) 。比較而言,在UART 中使用相同的頻率,則在典型的 10 位(起始位、8 位數據和 1 個奇偶校驗位)傳輸中保證至少有一位讀取不。這是由于 32,768Hz 時鐘必須除以 3.4,才能得到 9,600 波特率。由于沒有 3.4 這一選擇,因此必須選擇除以 3 或除以 4(參見圖2)。

        圖 2:9600 波特傳輸時 32Khz 驅動 UART Rx 錯誤



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 嵊州市| 永吉县| 桐庐县| 包头市| 呼和浩特市| 衡东县| 兴隆县| 玉山县| 安岳县| 视频| 甘南县| 玉环县| 长春市| 大宁县| 峨眉山市| 晋江市| 蒲江县| 文登市| 淅川县| 嘉定区| 彰武县| 永平县| 凭祥市| 左贡县| 枣阳市| 甘孜| 新丰县| 桂林市| 故城县| 佛学| 龙门县| 山丹县| 平顶山市| 林周县| 多伦县| 安阳市| 南投市| 丹阳市| 丘北县| 榆林市| 吴忠市|