本製品は独立した2つのブラシ付DCモータ用ブリッジ回路を搭載したモータアンプです。
モータドライバの他に20本のGPIO端子とUSB・RS-485 I/Fを装備しています。
C言語によるプログラミングが必要になりますが、フリーの開発環境であるGCC Developer Liteで開発を行う事ができます。また、リアルタイムカーネルとしてFreeROTSを採用していますので、複数の処理を同時にこなすシステムが構成できます。
使用方法によっては人命や財産を失う恐れがある可能性があります。本ドキュメントを熟読し、危険性の理解と運用方法を順守してください。 |
型式 | 数量 | 備考 |
CAP MODULE | 1 | E152 |
UD4 | 1 | E166 |
I/O EXPANDER | 1 | E167 |
GPIO DISTRIBUTOR | 1 | E170 |
コネクタキット | 1 | EHR-4x1, SEH-00xx4 XT60x1 |
ケーブル | 1 | 686714200001(FFC 14pos 200mm)x1 686710200001(FFC 10pos 200mm)x1 |
※microUSBケーブルは付属しません
品番 | BTA028 | |
PCBリビジョン | CAP MODULE | E152 |
UD4 | E166 | |
I/O EXPANDER | E167 | |
SIG. DIST. | E170 | |
外形寸法 | CAP MODULE | 39x16x45mm |
UD4 | 61x40x10.5mm | |
I/O EXPANDER | 50x18x5.5mm | |
GPIO DISTRIBUTOR | 34x16x5.5mm | |
動作温度範囲 | -10~+60℃ 結露無きこと | |
重量 | 70g以下 | |
MPU | NXP LPC824M201JHI33E (フラッシュROM:32k, RAM:8kbyte) | |
モータドライバ | 2ch Hブリッジ 4象限の制御領域 入力: DC3~DC24V (絶対最大定格電圧:DC85V) 出力: 定格50A (FET 最大定格電流:300A パルス電流:1200A) 許容損失電力: 375W @25℃ | |
MPU及びセンサ電源 | 入力: DC7~48V (絶対最大定格電圧:DC75V) 出力: DC5V 7A(最大) | |
HMI | UD4 | リセット用プッシュスイッチ x1 LED x2 |
I/O EXPANDER | リセット用プッシュスイッチ x1 ロータリディップスイッチ x1 プッシュスイッチ x2 | |
コネクタ等 | CAP MODULE | 2-Φ3.5mmランド |
UD4 | USBデバイス: microBx1 I2C: 10ピンFFC x1 GPIO: 14ピンFFC x1 Dynamixel I/F: JST B4B-EH x2 モータ用電源: 2-Φ4.2mmランド モータ出力: ベタランド x4 | |
I/O EXPANDER | 10ピンFFC x1 GPIO: 2.5mmピッチ3ピンランド x10 | |
GPIO DISTRIBUTOR | 14ピンFFC x1 GPIO: 2.5mmピット3ピンランド x10 | |
環境配慮 | 鉛フリー半田・RoHS対応 |
microUSBケーブルは同梱されませんので、市販のUSB[micro-B]<->USB[A]ケーブルを別途お買い求めの上ご利用下さい。 |
電源の逆接続は電源回路の即時破壊・全損扱いとなる。 |
端子番号 | 信号名 |
1 | GND |
2 | VDD |
3 | RS-485 D+ |
4 | RS-485 D- |
電源の逆接続はブリッジ回路の即時破壊・全損扱いとなる。 |
Manufacturer | Parts Number |
Amphenol | HFW10S-2STE1LF |
Manufacturer | Parts Number |
Wurth Electronics Inc. | 686710xxx001 |
No. | 端子名称 | I/O |
1 | GND | O |
2 | GND | O |
3 | RESET | I/O |
4 | SCL | I/O |
5 | SDA | I/O |
6 | 5V | O |
7 | 5V | O |
8 | 5V | O |
9 | GND | O |
10 | GND | O |
Manufacturer | Parts Number |
Amphenol | HFW14S-2STE1LF |
Manufacturer | Parts Number |
Wurth Electronics Inc. | 686714xxx001 |
No. | 端子名称 | I/O |
1 | PIO0_7/ADC0 | I/O |
2 | PIO0_6/ADC1 | I/O |
3 | PIO0_14/ADC2 | I/O |
4 | PIO0_23/ADC3 | I/O |
5 | PIO0_22/ADC4 | I/O |
6 | 5V | O |
7 | GND | O |
8 | PIO0_21/ADC5 | I/O |
9 | PIO0_20/ADC6 | I/O |
10 | PIO0_19/ADC7 | I/O |
11 | PIO0_18/ADC8 | I/O |
12 | PIO0_17/ADC9 | I/O |
13 | 5V | O |
14 | GND | O |
UD4の基板エッジの切り込みを介して表裏に装備されたFETの端子に直結しており、静電防止対策を行った上でリード線などの半田付けを行う事 | |
M1_A及びM1_Bのランド近傍にある異なる信号のランドには絶対に接触させてはならない |
UD4の基板エッジの切り込みを介して表裏に装備されたFETの端子に直結しており、静電防止対策を行った上でリード線などの半田付けを行う事 | |
M2_A及びM2_Bのランド近傍にある異なる信号のランドには絶対に接触させてはならない |
Manufacturer | Parts Number |
Amphenol | HFW10R-2STE1LF |
Manufacturer | Parts Number |
Wurth Electronics Inc. | 686710xxx001 |
No. | 端子名称 | I/O |
1 | GND | I |
2 | GND | I |
3 | RESET | I/O |
4 | SCL | I/O |
5 | SDA | I/O |
6 | 5V | I |
7 | 5V | I |
8 | 5V | I |
9 | GND | I |
10 | GND | I |
No. | 端子名称 | I/O |
1 | 5V | CN1の5Vへ接続 |
2 | VCC | J1~J10のVCCへ接続 |
3 | 3.3V | 3.3V/2A LDOレギュレータへ接続 |
J | Pin No. | ||
1 | 2 | 3 | |
J1 | P0_0 | VCC | GND |
J2 | P0_1 | ||
J3 | P0_2 | ||
J4 | P0_3 | ||
J5 | P0_4 | ||
J6 | P0_5 | ||
J7 | P0_6 | ||
J8 | P0_7 | ||
J9 | P1_0 | ||
J10 | P1_1 |
Manufacturer | Parts Number |
Amphenol | HFW14R-2STE1LF |
Manufacturer | Parts Number |
Wurth Electronics Inc. | 686714xxx001 |
No. | 端子名称 | I/O |
1 | PIO0_7/ADC0 | I/O |
2 | PIO0_6/ADC1 | I/O |
3 | PIO0_14/ADC2 | I/O |
4 | PIO0_23/ADC3 | I/O |
5 | PIO0_22/ADC4 | I/O |
6 | 5V | I |
7 | GND | I |
8 | PIO0_21/ADC5 | I/O |
9 | PIO0_20/ADC6 | I/O |
10 | PIO0_19/ADC7 | I/O |
11 | PIO0_18/ADC8 | I/O |
12 | PIO0_17/ADC9 | I/O |
13 | 5V | I |
14 | GND | I |
No. | 端子名称 | I/O |
1 | 5V | CN1の5Vへ接続 |
2 | VCC | J1~J10のVCCへ接続 |
3 | 3.3V | 3.3V/2A LDOレギュレータへ接続 |
J | Pin No. | ||
1 | 2 | 3 | |
J1 | PIO0_7/ADC0 | VCC | GND |
J2 | PIO0_6/ADC1 | ||
J3 | PIO0_14/ADC2 | ||
J4 | PIO0_23/ADC3 | ||
J5 | PIO0_22/ADC4 | ||
J6 | PIO0_21/ADC5 | ||
J7 | PIO0_20/ADC6 | ||
J8 | PIO0_19/ADC7 | ||
J9 | PIO0_18/ADC8 | ||
J10 | PIO0_17/ADC9 |
モータの逆起電力などにより電圧の変動が起こりますが、その際に半導体の絶対最大定格を超えると容易に破壊します。付属のデカップリングコンデンサは必ず電源に対して並列に挿入してください。
MPU及びセンサ電源を供給せずにモータ用電源のみを供給してもモータが勝手に動く事はありませんが、その状態が長時間維持される事は想定していません。両電源ともほぼ同時に印加するようにして下さい。
なお、MPU及びセンサ電源のみが供給されモータを駆動するプログラムが既に実行されている場合、その状態で後からモータ用電源を供給してもゲートドライバは活性化しません。
両電源が供給された状態になってからゲートドライバへイネーブルを発行する必要があります。
PCのUSBバスパワーはUD4の電源として供給されません。MPU電源を供給した状態でPCと接続する事で初めてUSBシリアル変換チップが活性化します。
USB(CN1)はUSBシリアル変換ICにつながっており、PCと接続するとFTDI社のデバイスドライバが要求されます。デバイスドライバはこちらのページを参考にインストールしてください。
PCには仮想シリアルポートとしてCOMポートが追加されます。
RS-485 I/F(CN2,CN3)はDynamixel Xシリーズと電気的に互換性を持っています。ユーザプログラムによってDynamixelプロトコルのホストにもクライアントにも使用でき、単純なコンソールとしても機能させることができます。
なお、RS-485 I/Fによるブートローダのコマンドモードは標準ではサポートされません。
いずれもUD4本体とFFCで接続する事で配線の自由度を向上させています。また、各信号は電源を含む2.54mmピッチの3ピンランドで構成されていますので、センサなどへの給電(基板単位で5Vと3.3Vを選択可)と信号の取り込みがしやすくなっています。
なお、FFCには向きがありますので、次の図に示すとおりの向きに各コネクタへ挿入します。
また、FFCは180度まで折り曲げると破断するのと、コネクタへの挿抜回数には制限があります。
UD4に予め書き込まれているブートローダによってUSB(非標準でRS-485 I/Fの場合もあり)を経由してPCからユーザプログラムの転送や諸設定を行う事ができます。
PCにインストールしたSIMPLE TERMで3つのいずれかのポートを開き、ブートローダのコマンドモードに入ると、次のメッセージが表示されます。
LPC82x BL1.3 >
この状態で'?'を入力すると、使用できるコマンドの一覧が表示されます。
>? LPC82x BL1.3 w:write e:erase d:dump g:go >
なお、ユーザプログラムが書き込まれている場合は、電源投入直後にユーザプログラムが実行されるため、ブートローダのコマンドモードにはなりません。
再度ユーザプログラムの転送や消去といった操作を行う場合は、SIMPLE TERM上で「!」を押したままPB1を押してリセットして下さい。ブートローダはコマンドモードへ遷移します。
GCC Developer Liteの詳細についてはこちらで紹介しています。
基本パックとARMパックをダウンロードし、基本パックをフルインストールしたらARMパックのコンポーネントから「LPC82xでのみ使用」を選択してインストールします。
UD4で使用される主要なコンポーネントを簡単に紹介します。
ソースプログラムを編集するためのテキストエディタとその他のツールを起動するためのランチャ機能を有する。
汎用シリアルターミナル。簡易的なTELNETクライアントとしても機能する。
USB等で提供されるCOMポートの動的な検出と、COMポートを使用する弊社ツールとの排他制御機能を持つ。
ARMコア向けC/C++言語向けのコンパイラ。できる限り最新のパッチを適用しているため、時に互換性を失う。
MPUの内蔵ペリフェラルを定義したヘッダファイルやUARTを簡便に使うためのAPI、GDBにてデバッグする際に使用する初期化ファイル、シリーズ毎に異なるメモリマップを定義したリンカスクリプトファイル、スタートアップルーチンを含む。基本的にコンパイル済みライブラリとしてソースとリンクして使用する。
GCC Developer LiteではUD4用の設定を1種類備えています。
以下にUD4に対応した設定リストの一覧とその設定における機能を紹介します。
NXP LPC824用のペリフェラルライブラリとFreeRTOSを提供。
ビルドするとブートローダにてMPUのフラッシュROMへ転送するための.bin(バイナリ)ファイルが作られる。
ビルドが成功すると、STERM.exe(SIMPLE TERM)が起動する。
ブートローダはUD4のUSBを使用して外部からユーザーログラムの書き換えや操作を行う事ができます(非標準としてRS-485 I/Fを介したブートローダを搭載したものもあります)。
ブートローダを使用して動作するプログラムが構成できる設定リストは以下の通りで、これ以外の設定リストで構成されたプログラムをブートローダで転送しても正常に動作しないまでか、ボードが破損する可能性があります。
PCとUD4をUSBケーブルで接続して使用するケースを紹介します。
USBを仮想シリアルポートとして認識させるためのPC用デバイスドライバは、GCC Developer Liteをインストールした際に一緒にインストールされます。USBケーブルでUD4とPCを接続した際にデバイスドライバを要求された場合は、自動検索を選択して下さい。
UD4に対してWindowsが正しくデバイスドライバを適用できると、新しいCOMポートがWindowsのデバイス一覧に追加されます。SIMPLE TERMからそのCOMポートを選択(COMポート番号はPCの環境によって変わるが、デバイス名に「USB Serial Port」が表示されたポートを選択)しオープンする事で、SIMPLE TERMからUD4のブートローダの各種コマンドが使用できる様になります。その他の設定は以下の通りです。
Baudrate:115200bps Databits:8 Stopbits:1 Parity:Non Flow Control:Non Protocol:Xmodem
なお、UD4にユーザプログラムが既に書き込まれている場合は、電源投入直後にそのユーザプログラムが自動的に実行されてしまいますので、その際はPB1を押してUD4のブートローダをコマンドモードにします。
先の設定リストでソースプログラムをコンパイルし成功するとSTERM.exe(SIMPLE TERM)が自動起動されます。COMポート以外に関しては、以下の条件で起動します。
UD4のブートローダがコマンドモードであれば、SIMPLE TERMのメニューから「スクリプト実行[STERM_LPC82x]」をクリックするだけで、転送するファイルを手動で選択する事無く転送にかかる処理と実行までが全て自動的に行われます。
本機能により、手動で間違ったファイルを選択して転送してしまったり、転送不可能な状態で転送をしてしまうといったミスを軽減する事ができます。
GCC Developer Liteでは1つのソースプログラムのみを対象とするため、機能別にソースを分割して編集やコンパイルするといった使い方はできません(完全にできないという訳でもありません)。だからと言って全ての機能を一つのソースに記述する事は、プログラムの見通しが悪くなりバグの温床になりかねません。
そこで、複数のソースに分割する事無くある程度のソースプログラムサイズでコーディングするために、頻繁に使用されるであろう一部の機能が専用のライブラリとして提供されます。
GCC Developer Liteを標準的な環境のPCへインストールすると、「C:\Program Files\BestTech\GCC Developer Lite\TARGET」フォルダに必要なファイルがコピーされます。必要に応じて本フォルダを参照できますし、ユーザがソースを修正しライブラリを再構築する事も可能です。
UD4は複数のライブラリを組み合わせて使用するため、実体はかなり複雑になっています。
なお、本UD4向けの専用ライブラリはライブラリファイルとして提供するのでは無く、全て「ud4.h」というヘッダファイルとしてサンプルプログラムに同梱しました。
よって、コンパイル時のオプションに影響されてその都度挙動が変わる可能性があります。
未完成ですがこちらにAPIの詳細を記載しています。
以下よりダウンロードし展開して利用してください。詳細はコメントを参考に読み解いてください。
なお、ARMGCCそのものがSJISに対応していないため、コメント等に日本語を使用するとコンパイルエラーが発生する場合があります。サンプルプログラムは日本語のコメントを使用していますが、全てUTF8のエンコードにしているためそれに起因するエラーが発生しません。 GCC Developer Liteにて自身で新規で作成したプログラムは必ずSJISで生成されるため、編集中にGCC Developer Liteのステータスバーに表示される「SJIS(CR+LR)」をマウスで右クリックし、ポップアップメニューのリストから「UFT8」を選んでからソースプログラムを保存して下さい。「UFT8」になってさえいれば全角日本語のコメントによるコンパイルエラーは発生しません。
いきなりフルパワーで暴走すると危険ですので、いくつかのサンプルでは以下のマクロで最終段の出力を抑えています。
#define POWERGAIN (30) // 出力を調整するためのゲイン 0~100%で指定 #define MOTOR_INC (10) // モータへのデューティ指令の増分 1~1000‰で指定
パワーが上がらなのはバッテリやモータの問題ではありませんので、必要に応じてこの値を0~100の範囲で変更し、再度コンパイルし直してください。
また、モータの応答が遅いのは1msあたりの増分をMOTOR_INCの値で制限しているためですので、1~1000の範囲で調整してください。
相撲ロボット向けサンプルプログラムが想定している周辺機器の接続イメージは以下の通りです。
各コネクタの詳細を以下に示します。
個々の詳細に関してはサンプルプログラム内のコメントを参照していただくとして、プログラムをコンパイルしてUD4に転送して実行させるまでの基本的なフローは以下となります。
下記に記載された事項以外にも、経験を踏まえた危険回避方策を講じる事。 安全に配慮しない場合は人命や財産を失う恐れがある。 また従わない場合は保証対象外となる。 |
絶対最大定格を超えないという運用は実質的に難しく、ほんの少しのパルス的なノイズでも永久破壊する事も起こりえます。
そこで、TVSダイオードを設置する事をお勧めします。定電圧ダイオードをノイズ源となる端子に挿入して電圧を抑えるといった手法で、電源と負荷接続端子の5カ所に設置しておけば良いでしょう。
TVSダイオードのクランプ電圧は印加される電源電圧以上かつ半導体の絶対最大定格電圧以下、容量はモータの回生電力を吸収しきれるものを選びます。
なお容量がかなり大きめかつ高価ではありますが、実例として15KPA51Aを適用したことがあるため、この仕様で宜しければ5個セットで販売しています。