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

#　第2話　CPUの選択

第１話は以下より
https://qiita.com/nonNoise/items/c4800ac35c529c04e941

さて、自作パソコン風の話で自作コンピュータの話をしていきます。
急に来られた方に間違えないように、以下にこの話の目的を書きます。

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

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

# 参考とするSiPについて

話を進める前に、SiP(System in Package)の型番を決めて進めていきます。

自分が今気になっているSiPは・・・

| メーカー          |              型番 |          CPUコア    |
|:-----------------|------------------:|:------------------:|
|Octavosystems     |          OSD3358  |      ARM Cortex-A8 |
|Microchip         |          SAMA5D2  |      ARM Cortex-A5 |
|Microchip         |          SAM9X60  |     ARM ARM926EJ-S |

この三つが題材（料理）になる者たちです。

#それぞれの構成について

### OSD335x C-SiP

ARM社が最初にCortex-Aシリーズを発表したのが、このCortex-A8である。
有名になったのが、BeagleBoneBlackだろう。
BeagleBoneBlackは、OSD3358 にあるAM3358と同じコアを使用している。
というか、順序が逆で、BeagleBoneBlackで培ったノウハウをSiPで提供するといったアイディアがあったんじゃないかと思うくらい、**同じ構成**である。
なので、**BeagleBoneBlackがワンチップになった！**と思っていただいても問題ない。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12499/799b6e55-e9bd-0ac8-b1f3-87e4b6b93aae.png)

OSD335x には何種類かパッケージがあるが、この**OSD335x C-SiP**に関しては　eMMCやEEPROM、水晶などが追加されている。

|　　　　　　　　 項目|           スペック |  
|:-----------------|------------------:|
|CPU 　　　　   　　|　AM335x ARM Cortex-A8|
|ビット幅／コア数　　|         32bit 1コア|
|クロック 　　　　  |              1GHz|
|RAM 　　　　    　|         512MB |
|ROM 　　　　    　|       4GB |
|その他 　　　　    |       3Dグラフィック　|


| SiPで追加された機能|              型番 |  
|:-----------------|------------------:|
|PMIC(電源IC)      |          TPS65217C|
|LDO               |          TL5209  |
|eMMC              |     買える型番は4GB|
|DDR3              |    買える型番は512MB|
|EEPROM　　　　　　　|                4KB|
|オシレータ　　　　　|              25MHz|

このOSD335x C-SiPは、化け物ともいえる集積度で、**電源5Vを入れればとりあえず動く**レベルにまで完成度が上がっている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12499/b3de3be9-1e9c-3fec-6974-9ad83c4329f4.png)

https://octavosystems.com/2019/04/12/osd335x-c-sip-dead-bug/

そんな感じなので、**SiP入門にはお勧め**だと思います。

が・・・やはり化け物級は・・・チップ単価が高い。
一つ8千円程度する。今ではRaspberryPiが数千円で買えるご時世、チップ単品で8千円は・・・厳しい。


### SAMA5D2  

先のOSD335x がかっこよすぎて、我らMicrochip様はどうなんじゃ？？と思って調べたら、二種類ありました。

先にスペックが上の方から見ていきます。


|　　　　　　　　 項目|           スペック |  
|:-----------------|------------------:|
|CPU 　　　　   　　|  SAMA5D2 Cortex-A5 |
|ビット幅／コア数　　|        32bit 1コア|
|クロック 　　　　  |            500MHz |
|RAM 　　　　    　|         最大256MB |
|ROM 　　　　    　|      無し（外部回路にて）|
|その他 　　　　    |       FPUがあるところ？|


| SiPで追加された機能|              型番 |  
|:-----------------|------------------:|
|LPDDR2 　　　　    |       2Gbit(256MB)|


ん～～　先のOSD335x と比べると・・・低スペックだなぁ。
CPUはOSD335xのCortex-A8よりも最新の Cortex-A5。そこはとても期待できる。
ただ、RAMとROMに関しては、ガクッと落ちる。
この為、BeagleBoneの時にあったような**ディスプレイを繋ぎUbuntuを立ち上げる**といったグラフィカルな動作は厳しそうに思える。
ただ、Linuxが載らないのかと言えば、乗るには乗ります。組込み用の小型なLinuxやYocto等です。

まぁ、自分は**ディスプレイでマウスやキーボードをつなげて操作する**タイプのボードが苦手で。
RaspberryPiですら、SSHでコンソールをたたいている。
そう考えれば、この辺でも十分面白いチップだと思われる。

SiPのクセに、DDRメモリしか内蔵されてないとかなんだかなぁ。

このSAMA5D2 は外部回路に
PMIC(電源制御IC）とROM(QSPI-ROMなど）が必要になります。
ただ、OSD335x と比べて低消費化がされたため、規模としてはそこまで大きくならない予想です。

### SAM9X60

2020年に発売開始した、謎のチップ。コアが古く何故今頃？と海外でもザワついているチップである。
値段がとにかく安い。一時期流行った名刺型Linuxボードに使われていたのと同じコアの為、世界中で安く小さなチップが今後出てくるのではないかと期待している。

|　　　　　　　　 項目|           スペック |  
|:-----------------|------------------:|
|CPU 　　　　   　　|  AT9シリーズ ARM926EJ-S |
|ビット幅／コア数　　|        32bit 1コア|
|クロック 　　　　  |            600MHz|
|RAM 　　　　    　|         最大128MB|
|ROM 　　　　    　|      無し（外部回路にて）|
|その他 　　　　    |       JazelleがあってJavaが動く？？|


| SiPで追加された機能|              型番 |  
|:-----------------|------------------:|
|LPDDR2 　　　　    |       1Gbit(128MB)|


このARM926EJ-Sは、かなりの機種で採用されていたコアらしく、古き良きコアでもある。
過去には「玄箱」と言われる改造出来るNASがあったが、そこに使われていたコアもARM9でもあって、そこそこ情報がある。
https://www.kuroutoshikou.com/product/old_series/old_case/old_case_kurobako/old_case_kurobako_select/kuro-box_pro/

多くのルーターやNASで使われており、**組込みLinux**としては最適な勉強チップなのではないだろうか。

# まとめ

って事で、この３種類のSiPチップを使って、実際にマザーボードを作っていきたいと思います。

え？３種類？

そうです、**3種類同時に**　設計していきます。(既にOSD335x を作りましたが、失敗したで再設計です）

連載形式で進める予定なので、気になったら続きを見ていただければ幸いです。

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

https://qiita.com/nonNoise/items/e4bcb08c4e86ab87d0d5