CAN搭載Arduino互換マイコンボード「CANdino」作った話

ArduinoでCAN通信の勉強をしたかったのですが、CANを使えるボードが値段が高すぎるし、ICも大きすぎるし場所をとってしまうのでマイコンボードを作る事にしました。

初めてマイコンボード自作に挑戦したので記事にしようと思います。

kicadデータは[githubのここから](https://github.com/Yu-Tomo/CANdino-kicad)

<b>※基盤発注は自己責任でお願いします。</b>

##1.目的
I2CのセンサデータをCANに流すインターフェースを作成するため、開発しました。
CAN通信を使った開発をするのに、安い既存のボードは大きすぎて場所をとります。せめて、ESP32-devkitcくらいのサイズのボードにします。

##2.CANってなに？

CAN(Controller Area Network)は、車載で使われるデファクトスタンダードな通信方式です。
２本のBUSで相互通信を可能にする便利な奴です。
クルマのECU同士の通信に使われてるみたいです。
センサー値を直接CANに流せばCANバス中のどのECUでもデータを扱えるようになるため、分散処理に便利かなと思ってます。

##3.仕様

個人的に作りたいと考えてるもののために仕様を考えます。

いろいろ詳しい目的があるのですが、このボードの使い道は別の記事に書きます。

・I2CとCAN以外の汎用IOを持たせ、カスタマイズできる
・I2C BUSとCAN BUSにスクリューターミナルや2.54mmピッチポスト(XH,PH,NH,etc...)を搭載可能
・マイコン側とCAN IC側で電源を分離可能(別電源は両方とも5Vのみサポート)
・EEPROMを抜き差し可
・車載システムで使われる電圧12Vを5V降圧機能
・小型軽量化のため、シリアル変換機は搭載せず
・DIPスイッチを搭載


##4.回路図
![ver3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485495/d986c8cc-d9e4-5837-f401-b3aa5a29e1d9.png)


##5.配線図
![回路ver3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485495/ddc395f0-5e2e-d02a-8508-74899d70380b.png)
![タイトルなし3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485495/14c5d003-22ac-2a3e-c7af-0a212f6dce10.png)
![タイトルなし5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485495/6bc20ec6-8526-4066-ed24-1437b9cdfedb.png)


##6.部品表

|   部品名前    |   定格    |   評価   |
|:--|:--|:--|
|   マイコン   ATMEGA328PB-AN-ND   Digi-Key    |   動作温度:-40℃～105℃   最大動作電圧:6.0V   アイドル時消費電流:23mA程度   VccとGNDピンDC最大電流:100mA    |   自動車のボンネットの温度は90℃ほどまで上がります。ボンネット近くで使用する場合もっと耐熱の高いものを用意する必要があります。   
|   CANコントローラ   MCP2515T-E/SOTR-ND   Digi-Key    |   動作温度:-40℃～125℃   最大定格電圧:7.0V   動作電流:5mA    |   マイコンと同等以上の耐熱があるため、この部品を選びます。   
|   CANトランシーバ   MCP2561T-E/SNCT-ND   Digi-Key    |   動作温度:-40℃～125℃   最大定格電圧:7.0V   最大消費電流:70mA    |   150℃までの製品もありますが、マイコンが耐えられないので、125℃までの部品を選びます。   
|   EEPROMAT93Cシリーズ   秋月電子    |   動作温度:-55℃～125℃   最大定格電圧:6.25V   消費電流:5.0mA   パッケージ:DIP    |   パッケージをDIPにして、付け替えを可能にします。   
|   三端子レギュレータ   低ドロップアウト電圧レギュレータ　5V800mA LD1117S50   秋月電子    |   動作温度:-40℃～125℃   入力電圧:6.2～15V   出力最大電流:800mA   SOT-223    |   上記の消費電流の合計は103mA   しかし、I2Cデバイスの電源をマイコンボードから取ると想定して、安全率を８倍とします。   秋月電子でよいものが見つからず、こちらを選択しました。   
|   三端子レギュレータ   296-17616-2-ND       MC33275ST-5.0T3GOSTR-ND   Digi-Key    |   代替案   出力最大電流が少なく、SOT-223のパッケージです。    |       
|   ショットキーバリア   ダイオード   RSX101VAM-30   秋月電子    |   逆電圧:30V   平均方向電流:1A   順方向電圧:0.43V   動作保証:～100℃ほどまでは保証   パッケージ:TUMD2M    |   三端子レギュレータの保護回路用に選択します。   電圧降下が最小のものを選択しました。   
|   青色チップLED   OSBL1608   秋月電子    |   逆電圧:5V   最大電流:30mA   動作温度:-40℃～85℃   サイズ:1608    |   電源が来ているかどうかのLEDなので、信号機で発信として使われる、良いイメージの青色を選択しました。   
|   チップ0Ω抵抗   1608(0603)チップ抵抗 0Ω　RK73Z1JTTD   千石電子通商    |   定格電流:1A   動作温度:-55℃～155℃   100℃ほどで、定格電力の60％   サイズ:1608    |   三端子レギュレータは800mAまで出力できますが、使用電流は500mAまでとします。   
|   チップ1kΩ抵抗   1608(0603)チップ抵抗 1KΩ　RK73B1JTTD102J   千石電子通商    |   定格電力:1/10W   動作温度:-55℃～155℃   100℃ほどで、定格電力の60％   サイズ:1608    |   LED用抵抗です。1kΩ抵抗で   消費電力は5V*5mA = 25mW   定格電力は100mWなので安全率4倍です。   
|   チップ10kΩ抵抗   1608(0603)チップ抵抗 10KΩ　RK73B1JTTD103J   千石電子通商    |   定格電力:1/10W   動作温度:-55℃～155℃   100℃ほどで、定格電力の60％   サイズ:1608    |   プルアッププルダウン用抵抗です。   電流をほとんど使わないため、定格電力が低いものを選択しました。   
|   チップ300Ω抵抗   1608(0603)チップ抵抗 300Ω　RK73B1JTTD301J   千石電子通商    |   定格電力:1/10W   動作温度:-55℃～155℃   100℃ほどで、定格電力の60％   サイズ:1608    |   mcp2561のSPLITピン用の抵抗   出力電流が少ないため、定格電力が低くて問題ありません。   
|   チップ56Ω終端抵抗3216(1206)チップ抵抗 56Ω　RK73B2BTTD560J   千石電子通商    |   定格電力:1/4W   動作温度:-55℃～155℃   100℃ほどで、定格電力の60％   サイズ:3216    |   CANICの最大出力電流が70mA   リセッシブ電圧が3.5Vとします。   終端抵抗が112Ωになるので、3.5V/112Ω   流れる電流は29.16mAここに電圧をかけると102mW   安全率が二倍とれている   
|   セラミック発振子   CSTNE16M0V53C000R0   Digi-key    |   周波数:16Mhz   動作温度:-40℃～125℃   入力電圧定格:6.0V   内臓容量:15pF＋15pF    |   Atmega328Pのデータシートの動作確認では、16Mhz 22pF＋22pFと書いてありましたが、15pF＋15pFでも動作は確認できています。   mcp2515でも動作確認済みです。   
|   セラミック発振子(代替品)   セラミック発振子（チップセラロック）16Mhz   秋月電子    |   上記と同じ村田製作所のセラミック発振子です。   ただし、動作温度は～85℃までです。    |       
|   セラミックコンデンサ4700pF   チップ積層セラミックコンデンサ　4700pF 50V   秋月電子    |   定格電圧:50V   動作温度:-55℃～125℃   温度特性:100℃で4230pFに落ちる   サイズ:1608    |   SPLITピン用のセラミックコンデンサです。   マイコンよりも耐熱が高いです。   
|   セラミックコンデンサ0.1uF   チップ積層セラミックコンデンサ　0.1μF50V X7R 1005   秋月電子    |   定格電圧:50V   動作温度:-55℃～125℃   温度特性:100℃でキャパシティが-10％   サイズ:1005    |   バイパスコンデンサです。   
|   セラミックコンデンサ10uF   チップ積層セラミックコンデンサ10μF   25V　X7S 2012   秋月電子    |   定格電圧:25V   動作温度:-55℃～125℃   温度特性:100℃で7.4uF   サイズ:2012    |   電源IC用のリップル除去コンデンサです。   
|   表面実装DIPswitch   表面実装DIPスイッチ4P KHSシリーズ   秋月電子    |   定格開閉電圧:24VDC   定格開閉電流:25mA        |   簡単に手に入る範囲でこちらを選びます。   
|   表面実装タクトswitch   表面実装用タクトスイッチ　TVAF06-A020B-R   秋月電子    |   定格電圧:DC12V   定格電流:50mA   使用温度:-20℃～70℃    |   車載に搭載する場合、リセットは外部からかけると思われるため、最大70℃とします。   |

##完成ボード
【サイズ】
縦:43.69mm
幅:26.44mm

![IMG_0465.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485495/8d4368b5-f409-022a-3edf-780c663f9233.png)

![IMG_0464.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485495/350011f7-c40c-d1ea-a6c8-fe039fbc8b6b.png)

※ジャンプされていますが、最新版では修正済みです。

##最後に
プログラムは近いうちに記事にしようと思います。