TRIM設定方法

【ICSモジュールの初期化シーケンス】

データーシートによると、内部基準クロックの正確なクロックを保証するためには内部基準クロックのトリミングが必要です。ファイントリムビットおよび8ビットトリムレジスタに格納する値はFLASHの0xFFAEと0xFFAFに格納されている値が推奨されます。このトリム値は工場設定トリム値です。
数個のデバイスを調査したところ、其々のデバイス毎に僅かながら違う値が入っていました。
OSBDMでFLASHを消去すると、この工場設定が失われてしまいます。従いまして新しいデバイスの内に工場設定値を調査してプログラムに書き込むか、或いは正確な周波数を調査する環境でトリム値を見つける必要があります。工場設定値は内部基準クロックを31.25kHzにする為のトリム値が格納されています。単純に言えばCPUクロックが16MHzになる値です。

【工場設定値の調べ方】

工場設定値はFLASHの下表のアドレスに格納されています。
FTRIM 0xFFAE
TRIM 0xFFAF
FTRIMはファイントリムビットなので0xFFAEのLSB1ビットのみです。格納されている値はFEなら”0”、FFなら”1”です。
ダミープロジェクトを作ってデバッカーを起動させます。
MC9S08QG8用ダミープログラムを用意しましたProjectQG8.lzh
MC9S08QG8用ダミープログラムを用意しましたProjectSH8.lzh
上図のようなLOADER WARNINGが表示されたらAbortをクリックしてください。これでFLASHのイレースが中止されます。
デバッカー画面の右下に下図のようなMemoryウィンドーがありますのでスクロールしてFFA8行を見つけてください。
FFA8行の右から2番目がアドレス0xFFAEになります。上図ではFEという値が格納されています。この値が推奨されるFTRIM値です。
FFA8行の一番右がアドレス0xFFAFになります。上図ではA8という値が格納されています。この値が推奨されるTRIM値です。

【内部基準クロックの測定方法】

ダミープロジェクトはQG8用にプロセッサーエキスパートでCPU.cとTO1.cを自動生成したものです。


16番ピンに2.00MHz、周期で500nSのパルスが出力されます。
下図はダミープロジェクトのMAIN.cです。赤字で示す2行で補正値をトリムレジスタに格納しています。
ICSTRMは8ビットデータなので読み取った値をそのまま記述します。FFの場合は既に失われています。
ICSTRIM = 0xA4 から動作させてICSTRMとFTRIMの値を調整して、出力が2.00MHzに一番近い値を決定してください。

FTRIMは1ビットなので読み取った値がFEならば”0”、FFならば”1”です。
”0”の場合は ICSSC_FTRIM = 0;と記述します。
”1”の場合は ICSSC_FTRIM = 1;と記述します。
読み取ったがFFの場合は既にデータが失われているので
void main(void)
{
/* Write your local variable definition here */

/*** Processor Expert internal initialization. DON'T REMOVE THIS CODE!!! ***/
PE_low_level_init();
/*** End of Processor Expert internal initialization. ***/

/* Write your code here */
/* For example: for(;;) { } */

  ICSTRM = 0xA8;
  ICSSC_FTRIM = 0;


/*** Don't write any code pass this line, or it will be deleted during code generation. ***/
/*** Processor Expert end of main routine. DON'T MODIFY THIS CODE!!! ***/
for(;;){}
/*** Processor Expert end of main routine. DON'T WRITE CODE BELOW!!! ***/
} /*** End of main routine. DO NOT MODIFY THIS TEXT!!! ***/

電子工作の森で紹介したOSBDMとライターボードで測定しました。勿論周波数カウンターでも測定できます。
タイマー出力の波形写真です。ダミープログラムはバスクロック8MHzですから周期は500nS周波数は2.000MHzになります。

TOP BACK