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