こんにちは。koraです。
前回、Raspberry Pi 4のGPIOピンからXM540を動かせるようになったので、前回の回路をもとに専用基板を設計します。
搭載する機能
今回作る基板はRaspberry Pi 4のGPIOピンヘッダーに直接取り付けるものになります。搭載するものは次の通りです。
- 電源 … バッテリー電圧をRaspberry Pi 4に供給可能な5Vまで下げる降圧DC/DCコンバータ
- 冷却ファン … Raspberry Pi 4のCPU冷却用
- RS485変換IC
- 複数のサーボを接続するためのハブ
- インターフェース … スイッチとLED
回路図作成
回路設計には、マイクロマウス研修でもお世話になったオープンソースの電子回路設計ソフトKiCadを使用します。
テンプレート
KiCadで新しくプロジェクトを立ち上げる際、テンプレートを選ぶことができます。ここでRaspberry Pi 40-pin Expansion Boardを選択すると、Raspberry Pi拡張用の基板外形・ピンソケット・ネジ穴が配置された状態で設計を始めることができます。
レベル変換
注意しないといけないのがRS485IC変換ICです。ここではSN75176BPというICを使用しますが、これは5V系なため3.3V系のRaspberry Piで信号を受け取るにはレベル変換が必要です。レベル変換としてシンプルな方法は抵抗分圧回路を使うことです。ただし単純に抵抗で分圧するだけでは信号がなまってしまい、1Mbpsを超えるほどの通信速度になると安定しなくなると言われています。これは20~30pFほどのコンデンサを抵抗と並列に接続することで解決できます※1。(信号の立ち上がりの瞬間、コンデンサの理想抵抗はゼロとなって電流を流すため、抵抗による信号のなまりを補ってくれるからです)
フェイルセーフ・バイアス
RS485規格では信号線Aと信号線Bの差動電圧が+200mVであれば1、-200mV以下であれば0になりますが、+200mVと-200mVの間だと値が定まりません※2。新しい世代のICではこのしきい値が改良されていて問題ないらしいのですが、SN75176BPはそうなっていないようなので、信号が不定になることを防ぐためにプルアップ抵抗とプルダウン抵抗を使うことになります※3。もっとも、実際の基板では抵抗を追加することで逆に通信が安定しなくなる可能性もあるので、その場合はこれらの抵抗は使用せずに通信します。
※2. RS-485/RS-422 回路の実装ガイド
※3. SNx5176B Differential Bus Transceivers Datasheet
全体
電源からインターフェースまで一通り部品を配置して回路図を作成しました。次回はこれをもとに基板レイアウトを作成したいと思います。