紹介: ユーザーは、プログラマのトリミング機能を使用して、内部基準クロック(IRC)の値を変更できます。2 つのレジスタ (ICS_C3 と ICS_C4) があり、それぞれクロックのトリム値と細かいトリム値が含まれています。デフォルトでは、デバイスには工場出荷時にプログラムされたトリム値が付属しており、デバッグモードでない場合のリセット初期化中にこれらのレジスタに自動的に渡されます。これらのレジスタは、必要なクロック値を取得するために適切な値を渡す必要があります。これは、プログラマーが画像に入るところです、彼らは一般的に、必要なクロックに対応する正確なトリムと細かいトリム値を見つけるためにこの能力を持っています。ここでの問題点は、プログラマによって計算されたカスタマイズされたトリム値は、予約されたフラッシュ位置(Ke02の場合は0x000003ffや0x000003feなど)に保存され、コードの初期化中にユーザーが手動でトリムレジスタ(ICS_C3 &C4)にコピーする必要があることです。このプロセスを使用してクロックをトリミングすると、サンプル間の偏差なしに正確な目的のクロックが得られます。
過程:
プログラマーには、次のように構成設定でトリミング機能を有効にして設定するためのオプション(PEmicro Multilinkユニバーサルを使用しているような)があります。
このオプションを有効にすると、プログラマーは最適なトリム値を見つけて、内部メモリ位置に格納します。
トリム内部参照値の0x03ff
ファイントリム内部基準値のための0x03fe
コンソールからの次のスナップショットは、このプロセスを示しています。
次のステップは、上記の場所からこれらの値をコピーしてICS_C3に渡し、アプリケーションコードで手動でICS_C4することです。以下のコード行を使用できます。
ICS->C3 = *((uint8_t*) 0x03FF);内部基準クロックのトリミング
ICS->C4 |= ICS_C4_SCFTRIM(*(*((uint8_t*) 0x03FE));ファイントリム内部基準クロック
上記のロジックが行うことは、ファクトリープログラマーからICSレジスタにトリミングされた値をコピーすることです–定数値には依存せず、プログラマーによって行われるチューニングに従ってレジスタを動的に更新します。
同様のオプションは、トリミングプロセスの世話をするために、プロダクションプログラマーにも存在します。
注:上記の手順はKEシリーズを参照したもので、他のシリーズのユーザーは特定のアドレスとレジスタのデバイスリファレンスマニュアルを確認する必要があります。
また、理解しやすいように上記のものを追加したコードを添付します。
ありがとうございます
マドゥール