2011年2月26日 星期六

DIY - PIC: PIC18F4550 微控制器的時鐘結構 (廿十四)

DIY - PIC: PIC18F4550 微控制器的時鐘結構 (廿十四) :

Microchip PIC18F4550 的內部時鐘結構屬於帶有 USB 介面的特殊功能中檔微控制器,而內部的分頻結構原理也是不簡單,需要化時間來了解!PIC18F4550 的時鐘結構主要是分開為兩個部分,第一個是提供 USB 的時鐘,第二個是提供 MCU 的時鐘。產生原始時鐘可用外部電路 (主振盪器或輔助振盪器電路) 或內部電路 (內部振盪器電路) 提供,其中以用石英晶體組成的振盪電路為主,特別在要使用 USB 功能時。以下用 20MHz 用外部石英晶體的振盪電路作為例子。

▲PIC18F4550 時鐘簡化框圖
首先用 20MHz 石英晶體 (4MHz / 8MHz / 12MHZ / 16MHz / 20MHz 或 24MHz都可以) 及電容器接在 OSC1 和 OSC2 引腳(PIC18F4550 引腳 13和引腳 14),組成典型皮爾斯 (Pierce) 振盪器電路。

▲石英晶體振盪器電路
USB 時鐘產生原理,由於 USB 模塊必須要求工作於 6MHz 的(低速)或 48MHz 的(全速)時鐘,振盪頻率 20MHz 進入,為了適合這些要求, PIC18F4550 要提供 48 MHz 的時鐘以進行全速 USB 操作。在電路上增加了一個額外的預分頻器和後分頻器系統以提供不同範圍的振盪頻率。

▲USB 時鐘結構
由於 USB 的時序要求,當使能 USB 模組時,需要使用 6MHz 或 48MHz 的內部時鐘。在低速模式 (6MHz) 的 USB 時鐘信號來自於主振盪器,而並非直接來自 PLL (鎖相環)。它被四分頻以產生實際頻率為 6MHz 的時鐘信號。因此,當 USB 模組工作時微控制器只能使用 24 MHz 的時鐘,而且該時鐘源必須處於某種主振盪器模式(XT、HS 或EC,帶或不帶PLL)。如果微控制器時鐘源是輔助振盪器或內部振盪器電路,此限制則不適用。 

USB 模組在兩種模式下都能非同步於微控制器內核和其他外設運行。這意味著可以在使用主振盪器作為 USB 時鐘的同時,用一個獨立的時鐘源以較低的速率驅動微控制器。 如果必須只使用一個時鐘源為所有模組提供時鐘,採用全速模式可選擇較廣範圍的微控制器時鐘頻率。 

主振盪器的頻率首先會接到除頻器,除頻器會根據寄存器數據 (PLLDIV=5) 作出除頻 (÷ 1/2/3/4/5/6/10/12) ,除頻器的目的是要提供一個標準 4MHz 頻率給予 PLL (鎖相環 Phase Lock Loop),PLL 會產生一個 96MHz頻率,96MHz 頻率會除 2 (USBDIV=2) 變成 48MHz,便會提供給 USB 器件。 

USB配置1: 
PLLDIV=5      20MHz /5 = 4MHz           寄存器 CONFIG1L:PLLDIV=100  
USBDIV=2      96MHz /2 = 48MHz        寄存器 CONFIG1L:USBDIV=1  
FSEN=1           48MHz                            寄存器UCFG:FSEN1=1 

在 PIC18F4550 的 CPU 時鐘原理,時鐘源可以由主振盪器、輔助振盪器或內部振盪器電路提供,如用上同 USB 的振盪器 20MHz,20MHz 的頻率通過後分頻器 (CPUDIV)系統作出除頻 (÷ 1/2/3/4) ,然後會選擇 (XT、HS、EC、ECIO) (HSPLL、ECPLL、XTPLL、ECPIO) 的頻率,頻率便會提供給微控制器用。 

CPU配置1: 
FOSC=HS                                                         寄存器 CONFIG1H:FOSC=110x 
CPUDIV= OSC1_PLL2  20MHz /5 = 4MHz  寄存器 CONFIG1L:CPUDIV=100 

CPU配置2: 
FOSC=HSPLL_HS                                                 寄存器 CONFIG1H:FOSC=111x 
CPUDIV= OSC1_PLL2  96MHz /2 = 48MHz       寄存器 CONFIG1L:CPUDIV=100 

PIC18F4550 芯片的振盪器操作通過兩個配置寄存器和兩個控制寄存器控制。配置寄存器(CONFIG1L 和 CONFIG1H)用於選擇振盪模式和 USB 預分頻器 / 後分頻器選項。 在對器件編程時設置這兩個配置寄存器中的配置位元,這些位元將保留此配置直到重新編程為止。

▲CONFIG1L 寄存器
▲CONFIG1H 寄存器
▲OSCCIN 寄存器
2011 年 02 月 26 日 天氣報告
氣溫:19.1 度 @ 23:00 
相對濕度:百分之86% 
天氣:多雲

3 則留言:

  1. 你好
    最近在查相關SD卡、USB 相關資料,看到你這篇文章可以請問一下PIC18F4550 這顆IC是SD或USB內部電路使用的IC嗎?

    回覆刪除
  2. PIC18F4550 是使用 5V 電源供應,一般SD 是使用 3.3V,所以要看 SD卡有沒有分壓,USB 是使用 5V,但提議使用前看清楚產品說明書是否可使用於 5V。

    回覆刪除