トップページ > dsPIC入門 > コンフィグレーションについて(1)

クロックの設定

_FOSCマクロで、クロック回路の設定をします。

ソースコードでの記述方法 :

_FOSC(発振回路の選択 & 選択した発振器のモード設定 & クロック切り替え設定);


_FOSC()のカッコ内に、3つのパラメーターを記述します。パラメーターの順序は関係ありません。 “FOSC”はOscillator Configurationの略らしいです。

なお、dsPICが実際に動作する速度は、ここで設定する「入力クロック」の1/4になります。 これは「システムクロック」と呼ばれ、入力クロックと区別されています。 主にプログラムの実行及び内部モジュールはこのシステムクロックで動作します。

発振回路の選択

dsPICには合計4つの内部発振回路があります。この4種類のうちから1種類を選択するためのパラメーターです。
以下にパラメーターとして使用されるマクロを列挙します。

選択した発振器のモード設定

内部PLLにおいて周波数を4倍、8倍、16倍に逓倍(ていばい)して使用することができます。 このPLLの設定を行うためのパラメーターです。また、発振子を使用する場合は使用する周波数ごとに パラメーターを変える必要があります。(発振回路のゲインが違うから…?)
以下にパラメーターとして使用されるマクロを列挙します。

水晶発振子(セラロック等含む)を使用する場合

外付け部品無し、内部発振回路からのクロックを使用する場合 外部クロックで、周波数が高い場合(4MHz以上) 外部クロックで、周波数が低い場合(4MHz以下)

クロック切り替え機能の有無

クロックが停止してしまった場合に、自動的に内部32kHzクロックに切り替える機能があります。 また、それを検出してトラップ(強制的に0x000006番地へ飛ぶ強制割り込み)を発生させることができます。

“CSW”というのはClock Switch(クロック切り替え)の可否
“FSCM”というのはFail Safe Clock Monitor(クロックのエラー検出)可否

なんじゃないかな…と思っています(汗)
以下にパラメーターとして使用されるマクロを列挙します。

以上をふまえた設定例

「セラロック使用、周波数はそのまま、クロック切り替えOFF、フェイルセーフクロックモニターOFF」 という条件で初期設定するときは、

  _FOSC(XT & CSW_FSCM_OFF);

…のように記述します。




戻る   次へ