在分析PWM驅動的實現之前,我們需要看看6410的芯片手冊中有關PWM章節,知道PWM的產生方式和控制方法,知道相關的一些寄存器才能知道設置那些寄存器,都應該賦什麼值,下面就是其中的一部分,主要是芯片手冊的內容,沒寫有關PWM的全部,主要是我們稍候的PWM驅動主要是針對蜂鳴器的使用,所以選取了相關的內容,感興趣的可以自己去閱讀芯片手冊。
這一章主要是講述S3C6410X RISC微處理器內部的PWM TIMER的功能和用法。
相關閱讀:S3C6410的PWM驅動實例
S3C6410X RISC微處理器有5個32位的定時器。這些定時器在ARM子系統中主要是用來產生內部中斷。另外,定時器0和定時器1包含了PWM功能,可以用來驅動一個外部I/O信號。定時器0和定時器1具有可選的死區發生器的功能,可以用來支持更多的設備。定時器2,3,4是內部定時器,沒有輸出引腳。
PWM支持如下特性:
*五個32位的定時器;
*在第一級為PCLK提供了兩個8位的時鐘預分頻器,在第二級為預分頻的時鐘和外部時鐘提供5個時鐘分頻器和倍頻器;
*對每個PWM都有獨立的可編程時鐘選擇邏輯;
*兩個獨立可編程占空比控制和極性的PWM通道;
*支持自動加載模式和單脈沖模式;
*支持外部輸入來啟動PWM;
*兩個PWM輸出上都有死區發生器;
*支持DMA傳輸;
*可選脈沖或電平中斷;
PWM支持兩種操作模式:
*自動裝載模式
基於可編程占空比和極性產生連續的PWM脈沖。
*單脈沖模式
基於可編程占空比和極性產生單個脈沖。
提供了16個特殊功能寄存器來控制PWM的功能。PWM是可編程輸出的。我們可以通過APB來訪問PWM內部的16個特殊功能寄存器。
圖32-1 描述為獨立的PWM通道的時鐘產生流程。