MSP430F4xxファミリーは、DCO(デジタル制御発振器)と、
FLL(Frequency Locked Loop) という10ビット周波数積分器を実装しています。
出典:MSP430x4xx Family User’s Guide (SLAU056L)
DCOが生成したクロックをSCFQCTL[N]レジスタと
SCFI0[FLLDx]レジスタにて設定した値で分周し、
リファレンス・クロック (ACLK) と比較し、
周波数キャリブレーションを実行します。
出典: MSP430x4xx Family User’s Guide (SLAU056L)
fDCOCLK : DCOが生成するクロック (DCOCLK) の周波数
N : SCFQCTL[N]レジスタに設定する分周数 (N)
D : SCFI0[FLLDx]レジスタで設定する分周数 (1/2/4/8)
fACLK : FLLが使用するリファレンス・クロック (ACLK) の周波数
としたとき。
FLL_CTL0[DCOPLUS] = 0 のとき、fDCOCLK = (N + 1) x fACLK
FLL_CTL0[DCOPLUS] = 1 のとき、fDCOCLK = D x (N + 1) x fACLK
となります。
出典: MSP430x4xx Family User’s Guide (SLAU056L)
なお、ステータスレジスタ SR[SCG0] = 1 とすると、FLLは停止します。
出典: MSP430x4xx Family User’s Guide (SLAU056L)
FLLが算出した10ビットデータの上位5ビット・データは
SCFI1[DCOx]レジスタに自動的に格納します。
出典: MSP430x4xx Family User’s Guide (SLAU056L)
周波数キャリブレーションの微調整効果を有する下位5ビット・データは、
SCFQCTL[SCFQ_M] = 0 (変調器イネーブル) のとき、
SCFI1[MODx] および SCFI0[MODx]に自動的に格納します。
出典: MSP430x4xx Family User’s Guide (SLAU056L)