Renesas Synergy™

FAQ 2000195 : システムクロックコントロールレジスタ(SCKCR)を設定しましたが、意図した周波数になりません。原因は何ですか?

以下の注意事項が守られているかをご確認ください。
1. 連続書き込みの注意事項
2. 周波数の大小関係の注意事項

1. 連続書き込みの注意事項
システムクロックコントロールレジスタ(SCKCR)への書き込み後、周波数の変更が完了するまでの間に再度SCKCRへ書き込みを行った場合、その書き込みは無視されます。そのためSCKCRへの書き込みが続く場合は、書き込んだ値がSCKCRから読み出せることを確認してください。

従って、ICLK、PCLK、BCLKを順次設定しながら読み出し確認を行っていない場合、書き込んだ値が無視されている可能性があります。
ICLK、PCLK、BCLKを設定する場合には、SCKCRに一括書き込みを行うか、あるいはICLK、PCLK、BCLKを順次設定する場合は、そのつど読み出しを行い設定値が書き込まれているかを確認しながら行ってください。

2. 周波数の大小関係の注意事項
周波数の設定には大小関係に制限があります。
システムクロックコントロールレジスタ(SCKCR)にビットフィールド指定で書き込む場合、手順によってはこの制限を守れないことがあります。

【例】
RX64Mの場合、「システムクロック(ICLK)は外部バスクロック(BCLK)より低い周波数を設定しないでください」という制限があります。このとき、以下のような手順では正しく設定されません。

<ソースコード>
・・・
SYSTEM.SCKCR.BIT.ICK = 1; // ①ICLKを2分周する
while (1 != SYSTEM.SCKCR.BIT.ICK);
SYSTEM.SCKCR.BIT.BCK = 4; // ②BCLKを16分周する。
while (4 != SYSTEM.SCKCR.BIT.BCK);
・・・

SCKCRレジスタの値が0x00000000(初期値)のとき、ICLKとBCLKの分周比を変更する場合、①でICLKを2分周しようとしても、この時点ではBCLKは1分周であるため、制限事項に抵触します。

各注意事項の有無はデバイスごとに異なります。各デバイスのユーザーズマニュアルをご確認ください。
「クロック発生回路」 > 「使用上の注意事項」 > 「クロック発生回路に関する注意事項」

 

適用製品

RXファミリ
他にご質問がございましたら、リクエストを送信してください