UPD78F0411 時鐘控制(1) UPD78F0411 時鐘控制 1.1 控制高速系統時鐘示例 如下兩種高速系統時鐘可用。 X1 時鐘: 晶體/陶瓷振蕩器連接到X1 和X2 引腳。 外部主系統時鐘: 外部時鐘輸入到EXCLK 引腳。 不使用高速系統時鐘時,X1/P121 和X2/EXCLK/P122 引腳可用作I/O 端口引腳。 注意事項 復位釋放后,OCD0A/X1/P121 和OCD0B/X2/EXCLK/P122 引腳為I/O 端口模式。 下面描述的示例是以下情況時的設置過程示例。 (1) X1 時鐘振蕩 (2) 使用外部主系統時鐘 (3) 將高速系統時鐘作為CPU 時鐘和外部硬件時鐘 (4) 停止高速系統時鐘 (1) X1 時鐘振蕩時設置過程示例 <1> 設置P121/X1 和P122/X2/EXCLK 引腳,并選擇X1 時鐘或外部時鐘(OSCCTL 寄存器),當EXCLK 清零且OSCSEL 置1 時,從端口模式切換到X1 振蕩模式
若MSTOP 被清零,則X1 振蕩器開始振蕩。 <3> 等待X1 時鐘振蕩穩定 檢測OSTC 寄存器并等待所需的時間。 在等待時間內,其它軟件處理過程的執行可以使用內部高速振蕩時鐘。 注意事項 1. 在X1 時鐘運行時,不要改變EXCLK 和OSCSEL 的值。 2. 當供電電壓達到所用時鐘的操作電壓后,設置X1 時鐘。 (2) 使用外部主系統時鐘時設置過程示例 <1> 設置P121/X1 和P122/X2/EXCLK 引腳并選擇操作模式(OSCCTL 寄存器) 當EXCLK 和OSCSEL 置1 時,從端口模式切換到外部時鐘輸入模式。
MSTOP清零時,允許外部主系統時鐘輸入。 注意事項1. 在外部主系統時鐘運行時,不要改變EXCLK和OSCSEL 的值。 2. 當供電電壓達到所用時鐘的操作電壓后,設置X1 時鐘。 (3) 使用高速系統時鐘作為CPU 時鐘和外部硬件時鐘時設置過程示例 <1> 設置高速系統時鐘振蕩注 注 當高速系統時鐘已經運行時,不需要設置<1>。 <2> 設置高速系統時鐘作為主系統時鐘(MCM寄存器) XSEL 和MCM0 置1 時,高速系統時鐘作為主系統時鐘和外部硬件時鐘。 注意事項如果選擇高速系統時鐘作為主系統時鐘,則只有高速系統時鐘可以被設置為外部硬件時鐘。 <3> 設置主系統時鐘作為CPU 時鐘并選擇分頻比(PCC 寄存器) CSS 清零時,主系統時鐘提供給CPU。若要選擇CPU 時鐘分頻比,應使用PCC0、PCC1 和PCC2。 (4) 停止高速系統時鐘時設置過程示例 高速系統時鐘可以用如下兩種方式停止。 執行STOP 指令以設置為STOP 模式 MSTOP 置1 并停止X1 振蕩(如果使用外部時鐘則禁止時鐘輸入) (a) 執行STOP 指令 <1> 停止外部硬件的設置 停止那些不能在STOP 模式下使用的外部硬件 <2> 釋放待機模式后設置X1時鐘振蕩穩定時間 當CPU 使用X1 時鐘時,在STOP 指令執行前設置OSTS。 <3> 執行STOP 指令 執行STOP 指令時,系統處于STOP 模式下并且X1 振蕩停止(禁止外部時鐘輸入)。 (b) 通過將MSTOP 設置為1 來停止X1 振蕩(禁止外部時鐘輸入) <1> 確認CPU 時鐘狀態(PCC 和MCM寄存器) 根據CLS和MCS 確認CPU 沒有使用高速系統時鐘。 當CLS = 0 且MCS = 1 時,CPU 采用高速系統時鐘,因此將CPU 時鐘切換為副系統時鐘或者內部高速振蕩時鐘。 <2> 停止高速系統時鐘(MOC 寄存器) MSTOP 置1 時,X1 振蕩停止(禁止外部時鐘輸入)。 注意事項 當MSTOP= 1 時,必須確認MCS = 0 或CLS = 1。此外,必須停止正在使用高速系統時鐘的外部硬件。 1.2 控制內部高速振蕩時鐘示例 下面描述的示例是以下情況時的設置過程示例。 (1) 內部高速振蕩時鐘重新開始振蕩時 (2) 使用內部高速振蕩時鐘作為CPU 時鐘,并且內部高速振蕩時鐘或高速系統時鐘用作外部硬件時鐘時 (3) 停止內部高速振蕩時鐘時 (1) 內部高速振蕩時鐘重新振蕩時設置過程示例注1 <1> 內部高速振蕩時鐘重新振蕩的設置(RCM 寄存器) RSTOP 清零時,內部高速振蕩時鐘開始運行。 <2> 等待內部高速振蕩時鐘的振蕩精確穩定時間(RCM寄存器)。 一直到RSTS = 1 注2。 注1. 復位釋放后,內部高速振蕩器自動開始振蕩并且內部高速振蕩時鐘作為CPU 時鐘使用。 2. 如果CPU 時鐘和外部硬件時鐘不需要很高的精度,則無需等待時間。 (2) 使用內部高速振蕩時鐘作為CPU 時鐘且內部高速振蕩時鐘或高速系統時鐘作為外部硬件時鐘時設置過程示例 <1> 內部高速振蕩時鐘重新振蕩注 (參見5.6.2 (1) 內部高速振蕩時鐘重新振蕩時設置過程示例)。 高速系統時鐘振蕩注 (使用高速系統時鐘作為外部硬件時鐘時所需的設置。 注 當內部高速振蕩時鐘或高速系統時鐘已經運行時,不需要設置<1>。 <2> 選擇主系統時鐘和外部硬件時鐘(MCM寄存器) 使用XSEL 和MCM0 設置主系統時鐘和外部硬件時鐘。 <3> 選擇CPU 時鐘分頻比(PCC 寄存器) CSS 清零時,主系統時鐘提供給CPU。若要選擇CPU 時鐘分頻比,應使用PCC0、PCC1 和PCC2 (3) 停止內部高速振蕩時鐘時設置過程示例 可以用如下兩種方式停止內部高速振蕩時鐘。 執行STOP 指令設置STOP 模式 將RSTOP 置1 且停止內部高速振蕩時鐘 (a) 執行STOP 指令 <1> 設置外部硬件 停止那些不能在STOP 模式下使用的外部硬件。 <2> 釋放待機模式后X1時鐘振蕩穩定時間的設置 CPU 使用X1時鐘時,在STOP 指令執行前設置OSTS。 <3> 執行STOP 指令 執行STOP 指令時,系統處于STOP 模式下并且停止內部高速振蕩時鐘。 (b) 通過RSTOP 置1 停止內部高速振蕩時鐘 <1> 確認CPU 時鐘狀態(PCC 和MCM寄存器) 根據CLS和MCS 確認CPU 沒有使用內部高速振蕩時鐘。 CLS = 0 和MCS = 0 時,CPU 采用內部高速振蕩時鐘,因此將CPU 時鐘切換為高速系統時鐘或副系統時鐘。 <2> 停止內部高速振蕩時鐘(RCM 寄存器) RSTOP 置1 時,停止內部高速振蕩時鐘。 注意事項當RSTOP= 1 時,必須確認MCS = 1 或CLS = 1。此外,必須停止正在使用內部高速振蕩時鐘的 外部硬件。 1.3 控制副系統時鐘示例 可用如下兩種副系統時鐘。 XT1 時鐘: 晶體/陶瓷振蕩器連接到XT1 和XT2 引腳。 不使用副系統時鐘時, XT1/P123 和XT2/P124 引腳可用作I/O 端口引腳。 注意事項 復位釋放后XT1/P123 和XT2 /P124 引腳為在輸入端口模式。 下面描述的示例是以下情況時的設置過程示例。 (1) XT1 時鐘振蕩 (2) 使用副系統時鐘作為CPU 時鐘 (3) 停止副系統時鐘 (1) XT1 時鐘振蕩時設置過程示例 <1> 設置XT1 和XT2 引腳并選擇操作模式(PCC 和OSCCTL 寄存器) 當OSCSELS 設置為如下模式時,將從端口模式切換到XT1 振蕩模式。 <2> 等待副系統時鐘振蕩穩定 使用定時器功能,通過軟件等待副系統時鐘振蕩穩定時間。 注意事項 在副系統時鐘運行時,不要改變OSCSELS 的值。 (2) 使用副系統時鐘作為CPU 時鐘時設置過程示例 <1> 設置副系統時鐘振蕩注 注 當副系統時鐘已經運行時,不需要設置<1>。 <2> 切換CPU 時鐘(PCC 寄存器) CSS 置1 時,副系統時鐘提供給CPU。 (3) 停止副系統時鐘時設置過程示例 <1> 確認CPU 時鐘狀態(PCC 和MCM 寄存器) 根據CLS和MCS確認CPU 沒有使用副系統時鐘。 當CLS = 1 時,CPU 采用副系統時鐘,因此將CPU 時鐘切換為內部高速振蕩時鐘或高速系統時鐘 <2> 停止副系統時鐘(OSCCTL 寄存器) OSCSELS 清零時,停止XT1 振蕩。 注意事項1. 清零OSCSEL 時,必須確認CLS = 0。此外,如果外圍硬件使用副系統時鐘,則應停止其操作。 2. 副系統時鐘振蕩不能通過使用STOP 指令來停止。 文章來源:http://www.originic.hk/Item/Show.asp?m=1&d=1784 |