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