LoginSignup
6
3

More than 3 years have passed since last update.

自作コンピュータの作り方 第3話

Last updated at Posted at 2020-08-07

 第3話 マザーボードの機能について

第1話は以下より
https://qiita.com/nonNoise/items/c4800ac35c529c04e941
第2話は以下より
https://qiita.com/nonNoise/items/01427a281ceb7bdc0238

急に来られた方が困らない用に、以下にこの話の目的を書きます。

"自作の組込みマザーボードを作って自作のコンピュータを作りたい"

そんなマニアックな願望があり、偏った知識で語っていきます。

マザーボードの機能について

早速、マザーボードの話をしていきます。

image.png

図を書きました。

この図は、マザーボードを模して書いてます。

良いですか?マザーボードです。

本来、こういった図は「CPUアーキテクチャ」で語られるモノですが、
見ての通りバスの線を引いてません。

今回は、マザーボードの構成の話です。 CPUのアーキテクチャの話はまた別の機会に。

PMIC

PMIC とは、パワーマネージメントICの事で、電源管理を行います。
CPUはマイコンと違い、特殊な立ち上がり方をします。
電圧区分が何種類かあったり、リセットのタイミングなどの処理をする必要があります。
そういったCPUに合わせた電源という意味で、PMICという機能が必要になります。
本来はPMICに関して書き出すと止まらないくらい、PMICの重要度は高いです。
例えば、
電源を入れた瞬間にCPUをフルで稼働させると消費電力がガッと上がってしまうのを、徐々に立ち上げたり。
CPUからスリープモードの通知を受けた際にスリープしたり。
高機能なPMICでは、USBのVBUS電源を管理してたりします。

色々やってるんです。しかもCPUに合わせてやってるんです。

なので、CPUに合わせたPMICを型番指定で、尚且つ、リファレンス回路通りに組む必要があります。

下手にオリジナルにすると、動かないだけではなく、動いてもCPUの性能が発揮できない場合があります。

忠実に、忠実に再現しましょう。忠実に。

Clock

クロックです。CPUはクロックを与えなければ動きません。
近年のCPUでは、チップ内部にPLL(位相同期回路、要するにクロック数を倍々に上げることが出来る仕組み)があり、
定番は24MHzぐらいを供給し、チップ内部で100MHzやら600MHzなどに上がります。
その為、CPUとPMICの次に集中しなければならない部分です。
クロックの配線については、多くの文献と多くの失敗談がありますが、兎に角、近く短く配線するのが大事です。

EEOROM

言わずと知れたEEPROMです。特に新しい機能はなく、古くからあるI2Cの物に対応しているCPUが多く、
容量も1Kビット(128Byte)であったり、非常に小さい。
じゃぁ何で必要なの?いらなくね??

いやいや・・・それが、マザボを作る上で見逃してはならない重要であり。
どうも、この先出てくるU-BootやLinuxで、ボードの番号を識別するための識別IDここに記載します。
識別なので、OS起動時に必要になってきたりします。
というのも、CPUが変わった際にプログラムを変えるというのは当然ですが、
基板のバージョンで変わるや外部回路構成で変わるといった感じで、色んな場面で必要になります。

更に更に・・・Ethernetを使う際のMACアドレスを記載するという超大事な仕事をします。
なので、あって困る物ではないので、騙されたと思って追加しましょう。

RTC

RTCとは、リアルタイムクロックと言い、1秒を正確に生成するためのブロックです。
また、RTCは1秒の他に、カレンダー機能、日時機能といった時間を司る機能を持ってます。
これも重要かって?滅茶苦茶重要。特に近年には超重要。

近年のネットワークセキュリティーでは、日時を使った暗号化や不正処理の確認を行います。
その為、日時の設定が出来なければセキュリティーも担保出来ないという事です。
また、日時が設定できても、電源を止めた際にリセットされるのも悩ましいです。
その為、RTCにはバックアップ電源回路(ボタン電池か電解コンデンサ)を追加したいですね。
そうすれば、色々と救われます。

JTAG

JTAGです。チップの状態確認やCPUのデバックに使えたりします。
OSやプログラムが動いていない状態であっても、JATGを使って確認することが出来ます。
開発中にブレークポイント(動作を一時停止して状態を確認する方法)を行う際などに使います。

正直、自分には利用する機会が無いが、実務では必須になる機能の一つです。

というのも、CPUの型番によって専用のJTAG機器が必要です。

悲しいことに、専用のJTAGは1台1万~2万円とかです。

また、より高性能なJTAGは10万超えだってあります。

その為、プロ以外は使用しなくてもいいと思います。何とかなります。Printfでかんばりましょう。

RAM

RAMです。言わずと知れた、メモリーです。
パソコンでは、メモリーは人権とも言いますが、組込みコンピュータでもその通り、人権です。
ただパソコンと違うのは、組込みコンピュータではボードに固定されている事が大半です。
何故メモリスロットで後から交換出来ないのか分かりませんが、大半はボードに固定です。
その為、マザーボードを設計する際に容量を決めなければなりません。

また、CPUによってアドレスバスが決まっています。
このコア最新でしょ?え?ピンを減らすためにアドレスピン減らした?え?最新CPUでも256MBしかないの?
って事が起きます。悲しすぎます。人権を返せ!
まぁ、メーカーにも思う事はあるのでしょう。無駄にピンが大きいチップは値段もサイズも大きい訳で、基板の配線だって大変です。

また、回路を配線する上で最も大変な機能の一つです。

RAMにはDDR系列(DDR/DDR2/DDR3等)とSRAMの二種類ありますが、DDRは容量が高く、SRAMは高速だが容量が低いといった感じで構成に差が出る。用途に合わせて変更したいが、世間的にはDDRのほうが好まれている。

ROM

ROMです。データを書き込んだら、電源を切っても記憶しています。
近年のROMは、SDカードを使った物が多く、基板に実装したい際はeMMCを使うことが多いです。
SDカードとeMMCは通信方式が似ているため、両対応な場面が多いです。

組込みの場では、SDカードが嫌われます。正直、何故嫌われているのか分かりませんが、以下のような意見を聞きます。
・SDカードは市販品だと耐久性に問題あり?
・eMMCは温度特性が良いため良い?
・SDカードは電気的特性がシビア?
・基板の振動でSDカードの端子が浮く?
・SDカードよりもeMMCのほうが電源ぶち抜きに耐性がある?
などなど

正しいのかどうか、自分にはわかりませんが、そういった意見があるかと思います。

こういった内容も自作コンピュータを行う上で比較出来たらいいなぁと思います。

その他

CPUが持つインターフェース(USBやGPIO等)がこの後続きますが、それらは型番によって変わりますので割愛します。

ただ、マザーボードを作る上では、どの機能を有効にするかという意味では、非常に吟味して考えます。

また、マザーボードに部品を置く際に、どの場所にどの向きで置くかによって使い勝手が変わります。

そういった事を考えながら、マザーボードを作るのは面白いなって思います。

次回

しまった、ここの項目が長くなったので、一旦切ります。

次回は・・・CPU毎のマザーボード構成 です。
https://qiita.com/nonNoise/items/2130af358abaac70f270

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3