RP2040でエンコーダーモーター対応モータボードを作りました。
過去にSTM32で作っていたもののRP2040版になります。
https://qiita.com/usashirou/items/8d83daa6a9ea384b3f79
写真の上がRP2040,下がSTM32F103のものです。
今回は、RP2040のモータードライバーボードを基に、RP2040のカスタムボード製作の方法を見て行きましょう。
基本構成
Raspberry財団のRP2040に、TB6612FNGを2個使用し4個のエンコーダーモーターが動作するボードになります。
SoC:RP2040
Flash:SPI 2,4,8MB
MotorDriver:TB6612FNGx2
スイッチ:リセット、Flashスイッチ、ユーザースイッチ
LED:メイン、モーター電源、ユーザーLED
モーター:エンコーダーモーターx4 or DCモーターx4(端子台またはXH2ピン)
外部コネクタ:USB、I2C、UART、ADC、JTAG
モーター電圧:~12V
回路図
なぜRP2040?
RP2040とはRaspberry財団が製作したSoCです。
RP2040を搭載したマイコンボードとしてRaspberry Pi Picoが550円で販売されています。
今回RP2040を選定したのは今まで製作したSTM32の使い勝手が悪いからです。
STM32は2020年からの半導体不足に限らず1個当たり5ドル以上する上、USB対応やROM/RAMの選定が必要でした。
RP2040は1ドルでフラッシュは外付けでUSB対応です。
そして、端子はQFNで今までのQFPと違い、扱いが楽なのです。
選定については__マイコンを選定する~RP2040を選んだ理由~__を参照ください。
RP2040で注意する点
設計は___Hardware design with RP2040___を基に行いましょう
https://datasheets.raspberrypi.com/rp2040/hardware-design-with-rp2040.pdf
・GND
RP2040のGNDは中心のパッドのみとなります。
中心のパッドは放熱の場合が多く接続しないかGNDとなる場合が多いかと思いますが、RP2040はここにしかGNDがありません。
この為、実装不良が発生する可能性が高くなります。
私は今回設計不良をしたことになります。
GNDパッドに多くのハンダを流すと浮上してしまうのです。
この為、少し大きめの穴または、大き目のスルーホールを開ける事をお勧めします。
1.1Vラインとコンデンサ
1.1vラインが横断しており、1608サイズのコンデンサを使用するのが難しいです。
この為、メインのコンデンサには1005(0402)を使用し、容量の大きい物のみ1608を使用しました。
クリスタル
クリスタルは12MHzを使用します。
私はコンデンサ入りのクリスタル(CSTCE12M0G52)を使用しました。
ここは製作者の好みといえます。
https://datasheets.raspberrypi.com/pico/pico-datasheet.pdf
QSPI Flash
Raspberry Pi PicoにはWinbond W25Q16JVが採用されています。
いくつかの種類がありますが、入手性からWSON-8を選択しました。
スイッチ
フラッシュ用のスイッチ、リセットスイッチ、ユーザスイッチの3つを用意しました。
リセットスイッチがあるだけで利便性が格段に上がるので追加することをお勧めします。
ADC
RP2040は4つのADCがあります。
入力電圧の測定や、測距センサー等で使用するので外部入力として使えるようにしましょう。
PWM
RP2040は16個のPWMチャネルがあります。
チャネルがかぶらないようにしましょう。
USB
USBの5Vをダイオードを介してレギュレータにつなぎます、USBとRP2040とは抵抗を挟んでおきましょう。
本来は、突入電流対策ですがUSBのDP,DMを誤った場合の対策にもなります。
UART&I2C
1個のUARTとI2Cを用意しています。
モータードライバ
PWMとGPIOのHigh/Lowで制御します。
PGNDとGNDは分けています。
エラッタ
RP2040にはエラッタがあり15ピンはプルアップが効きません。
設計時にRaspberry Pi Picoで動作確認していますがエンコーダーモーターで使う15ピンの確認をしていませんでした。
設計の際には必ず各ピンを確認することをお勧めします。
総括
作ってわかる事ですが、Flashが別体だったり1.1vラインがある事などちょっと面倒な事はありますが
大きな問題も無く簡単に設計することが出来ました。
ESP32より遥かに簡単で、初歩の設計としてもお勧めです。