對OMAP-L138的PSC模塊的理解

正文開始之前我先來扯幾句無關的大笑,懷着無比忐忑和激動的心開始寫我的第一篇博客,在這充滿大神的csdn,也讓我這個小白來灌灌水大笑

剛開始學習TI的OMAP-L138,底層資料特別缺乏,數據手冊也只有英文的,下面是我對PSC模塊的理解(也困擾了小白好久,剛明白一點就想分享一下,有理解錯誤的地方請見諒和多多指正大笑

       PSC (Power Sleep Contorller)
      下面官方手冊的講解,PSC是管理系統電源,時鐘開關,設備和外設的啓動,

      它主要是爲外設和CPU提供電源控制;

       PSC模塊分爲全局PSC(GPSC)和局部PSC(LPSC);

       GPSC包括內存映射寄存器,PSC中斷和PSC控制的外設或模塊的狀態機;              LPSC控制外設和模塊

                             

在系統架構中是這樣的:

       

      官方庫中給的PSC初始化函數爲:


int PSCModuleControl (unsigned int baseAdd, unsigned int moduleId,

                          unsigned int powerDomain, unsigned int flags);

                函數有4個參數

第一個參數爲 SOC_PSC_1_REGS  代表PSC模塊的基地址 


第二個參數就比較複雜了,  PSC模塊分爲2的控制器PSC0 和PSC1,分別控制不同的外設 , 
下表爲PSC0的外設參數,這些外設的具體對應情況可以在pcs.h的頭文件中找到。


                      

      第三個參數有要牽扯到上表中第三列的叫Power Domain的東西,它的參數只有兩個 0和1,具體我理解的也不是很清楚,但是大部分的外設開啓都是選擇Always on(0),只有使用PD_DSP時選擇  PSC_POWERDOMAIN_PD_DSP  (1)

在文檔中有說明:


   第四個參數對應一下文檔,它的大概意思是PSC爲模塊定義了幾種狀態,這幾個狀態直接有一個組合,有的狀態在一些外設控制上無效的,具體的參數定義可以在官方庫中查到,因爲時間緊迫和水平有限,理解還有問題,我會盡量在後面補充和糾正,

                        #define PSC_MDCTL_NEXT_SWRSTDISABLE (0x00000000u)
                        #define PSC_MDCTL_NEXT_SYNCRST      (0x00000001u)
                        #define PSC_MDCTL_NEXT_DISABLE      (0x00000002u)
                        #define PSC_MDCTL_NEXT_ENABLE       (0x00000003u)
                        #define PSC_MDCTL_NEXT_AUTOWAKE     (0x00000005u)
  
                              


         剛開始學習OMAP-L138,肯定有很多不足和錯誤的地方,希望大哥們多多指教大笑


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章