応用情報技術者 2010年 春期 午前2 問25
問題文
ワンチップマイコンにおける内部クロック発生器のブロック図を示す。15MHzの発振器と、内部の PLL1, PLL2 及び分周器の組合せでCPUに 240MHz, シリアル通信(SIO) 115kHzのクロック信号を供給する場合の分周器の値は幾らか。ここで、シリアル通信のクロック精度は±5%以内に収まればよいものとする。

選択肢
ア:
イ:
ウ:
エ:(正解)
🔒 解説は解答すると表示されます
分周比の選定【午前2解説】
正解の理由
図から、発振器の 15 MHz はまず PLL1 で逓倍され、その出力が分周器へ供給されている(上流の PLL2 を経て CPU 用 240 MHz が作られているが、分周器の入力は PLL1 出力である)。図の逓倍比は PLL1=8倍、PLL2=2倍と読み取れるため、分周器の入力周波数は です。選択肢はすべて 形式なので、分周後周波数は になります。
目標の SIO クロックは (許容 ±5%)。許容範囲は
です。
各 を試すと、 のとき
となり、許容範囲内です。したがって正しい選択肢は エ()です。
解法ステップ
- 図から分周器の入力周波数を確認:発振器 15 MHz → PLL1(8倍)→ 分周器の入力 。
- 分周器の出力を と表す。
- 目標周波数と許容範囲を計算:
- 目標
- 許容範囲
- 各選択肢について を計算して許容範囲に入るか確認:
- のとき → 許容内 → 正解
- 必要なら誤差率を算出して安全性を確認:
- 誤差率 (許容 ±5% の内側)
計算の指針として近似的には を使い、四捨五入して最良の を選びます。ここでは 。
選択肢別の誤答解説
- ア:
。目標 115 kHz とは桁が違いすぎるため不適合。 - イ:
。まだ大幅に高い。 - ウ:
。目標より約4倍高い。 - エ:
。目標 115 kHz に対して誤差約 で、許容 ±5% に入るため正解。
よくある誤解
- 分周の基準周波数を CPU の 240 MHz として計算してしまう。図をよく見ると分周器は PLL1 出力から取られており、基準は 120 MHz(15 MHz×8)である点に注意する。
- PLL の逓倍比を読み間違える(例:8 倍を 18 倍と誤認)。逓倍表記を正確に読み取り、逐次計算すること。
- 単に「近い値」を選んでしまい、許容誤差の上下限を確認しない。絶対値差ではなく相対誤差(%)で判定する。
補足コラム
- なぜ 2 の冪()になっているか:マイコン内部の分周器はビットシフトで実装されていることが多く、 分周はハードウェア的に簡単で遅延が少ないため採用されます。
- 選択肢が 2 の冪でない場合は、同様に許容範囲判定を行いますが、整数除算でしか得られない周波数により近似の幅が変わります。実装仕様で「許容誤差」や「分解能(分周器が取れる値)」を確認する習慣をつけましょう。
簡単な数値確認用 Python スニペット(理解確認用)
f_in = 15_000_000 * 8 # 120 MHz
target = 115_000
for n in (4,6,8,10):
fout = f_in / (2**n)
err = (fout - target) / target * 100
print(n, fout, f"{err:.2f}%")
FAQ
Q. 分周器がどのブロックにつながっているか不明なときは?
A. 回路図で分周器の入力線がどのノードに接続されているか(PLL1 出力か CPU クロック後か)をまず確認してください。分岐点の位置で基準周波数が変わります。
A. 回路図で分周器の入力線がどのノードに接続されているか(PLL1 出力か CPU クロック後か)をまず確認してください。分岐点の位置で基準周波数が変わります。
Q. 許容 ±5% とは具体的にどう使う?
A. 目標周波数 に対して上下の限界を と で求め、その区間に分周後周波数が入るか確認します。
A. 目標周波数 に対して上下の限界を と で求め、その区間に分周後周波数が入るか確認します。
Q. 計算で単位を揃えるコツは?
A. 常に Hz 単位で計算すると単位間違いが起きにくいです(例:MHz→Hz は ×10^6、kHz→Hz は ×10^3)。
A. 常に Hz 単位で計算すると単位間違いが起きにくいです(例:MHz→Hz は ×10^6、kHz→Hz は ×10^3)。
関連キーワード: PLL、分周器、クロック生成、許容誤差、周波数分割、2の冪

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

