susutex’s blog

自転車、電子工作、プログラミングとかについて書くかもしれないブログ

Maker Pi RP2040のモーター用電源をUSBから取りたくない

久々に秋葉原に寄った際にM5Stackと、RP2040の使用されたMaker Pi RP2040というボードを買った。
Maker Pi RP2040はモータードライバや1cell LiPo用の回路がついていて簡単なロボットを動かすのにすぐ使えそうと思っていた。

www.cytron.io
ボードの使い方をいろいろ調べていたが、電源が3つ(USB/LiPo/VIN)ありどれをどうつないでよいのかよくわからない。


上記webサイト内資料から持ってきた電源の回路図。
上半分が3つの電源を選択する部分で、3つのうち電圧の高い電源がダイオードORで自動で選択されるようになっている。
またVBUS以外は逆流防止にFETを使用しているのでFETをONにできれば順方向電圧が小さくなる。ただし二つ以上の電源が供給された場合は二つの電源の電圧差によってはFETがONにならない場合がありそう。

問題は、LiPo(VBAT)とUSB電源(VBUS)を同時につなぐとVBUSからすべての電源が供給される。モーター回すと多分PCのUSBポートの電源供給が止まる。
ファーム書き換えなどはSWDでも行えそうだがPythonコンソールの操作はUSBで行う必要があるので絶対にUSBをつながないという選択肢は難しく、USB接続中に何かの拍子にこれが発生して嫌な挙動をする可能性がある。ボード上にUSBからの給電を遮断する機能はない。

解決策としては以下のようにいくつか検討したが最後のが一番良さそうなのでこれで運用することに。
最後の方法をとってもモーターを回すとノイズのためか仮想シリアルが不安定になる。ターミナルSW側を接続しなおすと直る。

・VINに5V以上を供給する
電圧上限は6Vらしいので供給電圧範囲が5~6Vとやや狭い。
Q4のFETをONにしようとするともっと厳しくなる。

VMに直接5V以上を供給する
電源供給範囲は相変わらず狭いが、VBUSとの電位差が小さくてもQ4をONできるかどうかを気にしなくてよくなる。
電源スイッチで電源をOFFにできなくなる問題と、VMにつないだ電源供給回路に逆接保護がない場合はそちらが何かの理由で電圧低下した際にVBUSから電源が流れ込んで破壊する問題がある。

・D3を外してVBUSを切断する
この方法を取ろうかと思ったが、実はVBUSからVBATに充電回路経由で出力されているためあまりこれもよくなさそう。Q1/Q4がONにできなくなる可能性も残る

・供給側でVBUSを遮断する
VBUSを切断したケーブルを用意するか、USBコネクタの足上げorパターンカットをする必要がある。
手持ちの電源供給スイッチ付きのUSBハブが本当に電源供給のみを遮断するタイプで、スイッチを切っても通信は問題なくできたので工作なくこれができた。
回路的にUSBハブへの電源逆流の心配もなさそう。