ドライバボード8 / Driver Board 8
概要 Abstract
モータ8個を制御するモータドライバボード。PCと2MbpsのUART(8bit no parity 1 stopbit)で接続する。
一つのUARTに、IDが異なる7個までのボードを並列に接続可能。
Motor driver board to control 8 motors。Connect to PC or Main board via UART of 2MBPS (8bit no parity 1 stopbit).
Up to seven boards with different IDs can be connected to one UART pararelly.
接続 Connection
モータの電源はPWR端子から供給してください。マイコン用のVDD(3.3V)とモータ駆動用のVM+(4.5V~48V)の2つが必要です。GNDは共通です。モータのピーク電流は各1.8A、定常各2A、電源コネクタは定格4Aです。
VDD, VSSはUART端子により接続されます。一つのボードに電源を供給すると接続されている他のボードに供給されます。
VM+の供給方法について
VM+はPWRコネクタだけと接続しています。UARTのVM端子とVM+を接続する場合は、ジャンパ(UART2の右にある2つの四角いランド)をハンダブリッジなどでショートさせてください。
UARTのVMは1Aまでです。4Aまでの場合はPWRのVM+とGNDを使ってください。それ以上の場合は基板のVM+とGNDに直結してください。
https://gyazo.com/f2807644cdf6a3bed0c6caba941c3bef
PWR:ヒロセ電機 DF65
他のコネクタ:ヒロセ電機 FH34SRJ-8S-0.5SH
初期化の手順
UARTに接続しているボードを列挙する。MainForm.ListBoard()
ボードID1~7を指定して、CI_BOARD_INFOコマンドで接続されているボードの種類を確認。
各ボードのコマンド長を、CI_CMD_LENコマンドを使って伝える。
コマンドの送受信
コマンドによって、戻り値があるものと無いものがある。戻り値がある場合は、UART上で戻り値が重ならないように、ウェイト文字(0(null 文字)を送信)を入れる必要がある。 ウエイト文字の長さは$ \max(0, 戻り値長+20-コマンド長)以上が必要。
code: CommandID.cs
CI_NONE, //0 As reset makes 0 and 0xFF, must avoid use of them in header.
CI_BOARD_INFO, //1 Board information.
CI_SET_CMDLEN, //2 Set command length for each board id.
CI_ALL, //3 Send all data and return all status
CI_SENSOR, //4 Return sensor data
CI_DIRECT, //5 Directly set servo targets (positions and velicities).
CI_CURRENT, //6 Set currents as servo targets.
CI_INTERPOLATE, //7 Send new frame for interpolation.
CI_FORCE_CONTROL, //8 Position and force control with interpolation.
CI_SET_PARAM, //9 Set parameter.
CI_RESET_SENSOR, //10 Reset sensor.
CI_NCOMMAND,