| ブートローダのバージョンがVer.0.9以下のUD3はリコール対象となっています。 |
概要
本製品は2個のDCモータ用ブリッジ回路を搭載したインテリジェンスモータコントローラです。
モータドライバの他に11本のデジタル入出端子を備え、そのうち8本はアナログ入力を兼用します。
なお本製品はプレ販売製品のため、リリース版UD3に対して一部機能の制限があります。詳細は注意事項を参照ください。
仕様
同梱内容
型式 | 数量 | 備考 |
UD3PRE | 1 | E093 |
USBケーブル | 1 | 150cm |
コネクタキット | 1 | CPU・センサ用 モータ用 |
BTE003 | 2 | おまけ |
基本仕様
品番 | BTA021 |
リビジョン | E093 |
動作温度範囲 | 0~+50℃ |
寸法 | 外形:53x78mm (±1mm) 取り付け穴:45.7x66.7mm 4-φ2.2 |
厚み | 突起物を含み25mm以下 |
重量 | 約70g |
CPU | AT91SAM7S512 (48MHz ARM7TDMI) |
CPU内蔵メモリ | フラッシュROM:512kbyte(ブートローダ領域を含む) RAM:64kbyte |
モータ電源 | 入力: DC0~DC24V (絶対最大定格電圧:75V) 出力: UD3定格20A (FET 定格電流:240A パルス電流:960A) |
PWM周波数 | 1~200kHz(1kHz単位で任意) |
CPU及びセンサ電源 | 入力: DC8~24V (絶対最大定格電圧:DC35V) 出力: DC5V 7A(最大) |
I/F | 入力用プッシュスイッチx2 入力用4bitロータリーDIPスイッチx1 リセット用プッシュスイッチx1 |
コネクタ | ホストPC間: USB (miniB)x1&brGPIO: 2.5mmピッチ3ピンオスヘッダ(信号・5V・GND)x11 モータ用電源:近藤科学 ストロングゴールドコネクターx1 モータ用: 近藤科学 レーシングコネクターx2 マイコン・センサ用電源:JST B2B-XH-Ax1 |
GPIO機能 | GPIOは全部で11ch装備し以下の機能を割当可能(排他含) 汎用入力:11ch(プルアップON/OFF機能あり) 汎用出力:11ch(オープンドレイン出力機能あり) アナログ入力:8ch(分解能10bit) パルス幅計測:3ch(分解能16bit 基準クロックは47k~24MHzの中で5段階) PWM出力:3ch(分解能16bit 基準クロックは47k~24MHzの中で5段階) |
環境配慮 | Rohs未対応 |
内部簡略ブロック
外形・端子配置
(単位:mm)
以下特に断りのない限り本図のレイアウトを正として端子番号やそれらの方向、位置等を示す。
CN1
| 電源の逆接続は電源回路の即時破壊となる。 |
- 5Vロジック・3.3Vロジック・12Vゲートドライバ電源供給用
- 図左より順に ①:-(GND), ②:+(センサCPU電源) の端子割り当て
- 入力絶対最大定格:DC35V
- 入力定格電圧:DC8~24V(リプルなき事)
- ②ピン(GND)はボード内全て(ロジックおよびモータ電源)において共通
- 本端子から供給される電源によりボード内で使用されるDC5V電源とDC3.3Vが作られ、更にJ1~J12端子からの5V出力がなされる
- CN3とは別の電源から供給する事
- J1~J12及びボード内で使用されるDC5V電源の総電流が7Aを超えてはならない。
CN2
- USB Mini-B
- PC(ホスト)と本ボード上のCPU(デバイス)間のUSBによる通信用
- USBバスパワーによるロジック電源供給用(CN1からの電源が優先)
- USBバスパワーからはJ1~J12及びゲートドライバへの電源供給は行われない
CN3
| 電源の逆接続はブリッジ回路の即時破壊となる。
バッテリを取り外した直後は搭載されたコンデンサに電荷が残っており、ショートすると放電する等の危険性がある。 |
- Hブリッジ(モータ)電源供給用
- 図上より順に ①:+(モータ電源), ②:-(GND) の端子割り当て
- 入力定格電圧:DC0~24V (DC16V以下を推奨)
- 入力絶対最大定格:DCV75V
- ②ピン(GND)はボード内全て(ロジックおよびモータ電源)において共通
- 本端子から供給される電源がHブリッジ回路に供給されM1ないしM2端子を介して負荷へと供給される
- CN1とは別の電源から供給する事
M1
- 負荷接続用端子
- 図左より順に ①:M1+, ②:M1+, ③:M1-, ④:M1-
- ①と②端子(M1+)および③と④端子(M1-)は各々ボード内で接続されている
- DCモータ等を接続した場合の回転方向はモータに依存するが、ソフト的にプラスのデューティを指定するとM1+側からプラスの出力が得られる
M2
- 負荷接続用端子
- 図左より順に ①:M2+, ②:M2+, ③:M2-, ④:M2-
- ①と②端子(M2+)および③と④端子(M2-)は各々ボード内で接続されている
- DCモータ等を接続した場合の回転方向はモータに依存するが、ソフト的にプラスのデューティを指定するとM2+側からプラスの出力が得られる
PB1(プッシュボタン)
PB2(プッシュボタン)
PB3(プッシュボタン)
DIP1(ロータリーディップスイッチ)
LED1
- 橙色
- ブートローダ内でコンソール入力があるとフラッシュ
- アプリケーションにてプログラマブルに点灯・消灯
LED2
- 赤色
- CN1から電源を供給した後、ボード内で5V電源が供給開始されると点灯
J1~J8
- 図左より順に ①:SIG, ②:5V出力, ③:GND の端子割り当て
- J1~J8の各①ピン(SIG端子)にGPIO0~GPIO7が相当
- ①ピン(SIG端子)は5V入力トレラント対応
IEC61000-4-2 level4のESD保護
- ②ピン(5V出力)はJ0~J4とJ5~J8の2グループで共通で、各々4Aトリップのリセッタブルヒューズを装備
- ③ピン(GND)はボード内全て(ロジックおよびモータ電源)において共通
J9~J11
- 図左より順に ①:SIG, ②:5V出力, ③:GND の端子割り当て
- J9~J11の各①ピン(SIG端子)にGPIO8~GPIO10が相当
- ①ピン(SIG端子)は5V入力トレラント対応
IEC61000-4-2 level4のESD保護
- ②ピン(5V出力)はJ9~J12共通で4Aトリップのリセッタブルヒューズを装備
- ③ピン(GND)はボード内全て(ロジックおよびモータ電源)において共通
J12
| 本機能によるシャットダウンの使用を禁止し、必ずオープン状態で使用の事。出荷分はピンヘッダをカット済み。 |
- 図左より順に ①:SIG, ②:5V出力, ③:GND の端子割り当て
- ①ピン(SIG端子)と③ピン(GND)を短絡すると5V用DCDCコンバータがシャットダウン(ボード内の5V・3.3V・12Vの電源がOFFになる)し消費電流が0.3mA以下に減少する
なおUSB(CN2)からのバスパワーは本端子の影響を受けないため、シャットダウン中でもCPUのみ活性化する
- シャットダウンさせない場合は①ピン(SIG端子)をオープンにしておく事
各機能の詳細
電源の印加順序
CN1とCN2の電源には印加順序があります。誤動作や破損を防ぐため、以下の以下の順序に従ってください。なお、CN2から供給されるPCからのUSBバスパワーは本手順に影響しません。
電源ON
- CN1にCPU及びセンサ用電源を接続しLED2の点灯を確認
- CN3にモータ用電源を接続
電源OFF
- 負荷を駆動していない状態でCN3からモータ用電源を切断
- CN1からマイコン用電源を切断
| 本手順に従わない場合は回路の誤動作による焼損の可能性がある。 |
CPU電源
CPU電源の入力方法は3つあり、各々目的が異なります。
- CN1
外部の電源装置からCN1に電源を接続すると、モータを除く本ボード上の機能全てが活性化し、LED2が点灯します。J12に入力される信号によりON/OFFが可能です。
ユーザプログラムが書き込まれていれば自動的に実行が開始されます。
- CN2(PCからのUSBバスパワー)
電源が入ったPCとUSBケーブルで接続すると同時に本ボード上のマイコン・RS485・無線機に電源供給され、J1~J12への電源供給されず、LED2は点灯しません。J12とは連動せず電源供給が常時行われます。
ユーザプログラムが書き込まれていれば自動的に実行が開始されます。
- CN1とCN2両方
電源電圧が高い方が優先される回路となっています。両社を接続したとしても大抵の場合はCN1からの電源が優先されることになります。
ユーザプログラムが書き込まれていれば自動的に実行が開始されます。
USB
PCのUSBバスパワーでボード内の電源供給を行う他に、PCとマイコンとの有線による通信手段を提供します。
PCとUSBケーブルで接続し、予め書き込まれたブートローダのコマンドモードが起動すると、PCからは増設シリアルポートとして見えます。
ブートローダ
USBないしBluetooth経由で本装置を操作するための専用プログラムが予め搭載されており、ユーザプログラムの転送やBluetoothの設定等をシリアルターミナル経由で行う事が出来ます。
SIMPLE TERMで該当のポートを開き、ブートローダのコマンドモードに入ると以下のメッセージ及びプロンプトが表示されます。
--< UDIII Ver.1.0 by BestTechnology >--
>
この状態で使用できるコマンドは'?'を入力すると表示されます。
>?
--< UDIII Ver.1.0 by BestTechnology >--
[w]:UPLOAD [g]:BOOT [i]:FLASH INFO [e]:ERASE [b]:BLUETOOTH
>
- w (UPLOAD)
UD3用にコンパイルされたユーザプログラムをフラッシュROMに転送するモードです。ダウンロードして実行出来るファイルは、GCC Developer LiteにてUD3向けにコンパイルされたバイナリファイルのみです。
- g (BOOT)
フラッシュROMに転送されたユーザプログラムへ実行を遷移します。ユーザプログラムエリアが消去されていれば実行されません。
- i (FLASH INFO)
ユーザプログラム用フラッシュROMの状態を表示します。
- e (ERASE)
ブートローダ本体を除くユーザプログラムエリアに書き込まれたデータを完全消去します。消去したデータは復活させる事が出来ません。
- b (BLUETOOTH)
Bluetoothの設定モードに遷移します。Bluetooth経由でブートローダのコンソールにアクセスしている場合は設定出来ません。USBケーブルでPCと接続された状態でのみBluetoothの設定変更が出来ます。
なお、ユーザプログラムが書き込まれている場合は、電源投入直後にユーザプログラムが実行されるため、ブートローダのコマンドモードにはなりません。ユーザプログラムの転送や消去といった操作を行う場合は、以下の手順に従ってください。
- UD3にUSBないし外部電源を接続し電源を入れる
- PB1とPB2を押しっぱなしにする
- その状態のままPB3を1秒程度押してCPUをリセットする
- ブートローダのコマンドモードに入ると「ピロッ」という起動音とLED1が一度フラッシュするので、押していたPB1とPB2を離す。
- SIMPLE TERMで該当のCOMポートを開けば、コマンドモードの操作が可能になる。
開発環境
GCC Developer Lite
GCC Developer Liteの詳細についてはこちら。
コンポーネントの選択中にフルインストールないし「ユニバーサルドライバⅢ(AT91SAM7S)でのみ使用)」を選択する事で必要なコンポーネントが自動的にインストールされます。
UD3で使用される主要なコンポーネントを簡単に紹介します。
- GCC Developer Lite
ソースプログラムを編集するためのテキストエディタとその他のツールを起動するためのランチャ機能を有する。
- SIMPLE TERM
汎用シリアルターミナル。簡易的なTELNETクライアントとしても機能する。
USB等で提供されるCOMポートの動的な検出と、COMポートを使用する弊社ツールとの排他制御機能を持つ。
- ARMGCC
ARMコア向けC/C++言語向けのコンパイラ。出来る限り最新のパッチを適用しているため、時に互換性を失う。
- デバイスドライバ
弊社提供のAT91SAM7シリーズ向けUSB CDCエミュレーションドライバ。
- ターゲットファイル
マイコンの内蔵ペリフェラルを定義したヘッダファイルやUARTを簡便に使うためのAPI、USBをシリアルポートとして使用するためのAPI、GDBにてデバッグする際に使用する初期化ファイル、シリーズ毎に異なるメモリマップを定義したリンカスクリプトファイル、スタートアップルーチンを含む。基本的にコンパイル済みライブラリとしてソースとリンクして使用する。
ターゲットファイル
GCC Developer LiteではUD3用の設定を1種類備えています。
以下にUD3に対応した設定リストの一覧とその設定における機能を紹介します。
- UD3
USB・Bluetoooth・RS485 I/Fを介してDynamixelプロトコルをサポートするタスクとUD3搭載機能を簡便に使用するためのライブラリとして提供される。
同時にOSとしてAT91SAM7Sシリーズ用Toppersカーネルもリンク対象となる。
ビルドするとブートローダにてマイコンのフラッシュROMへ転送するための.bin(バイナリ)ファイルが作られる。
ビルドが成功すると、STERM.exe(SIMPLE TERM)が起動する。
SIMPLE TERMとブートローダ
ブートローダはUD3のUSB・Bluetooth・RS485を使用して外部からユーザーログラムの書き換えや操作を行う事が出来ます。
ブートローダを使用して動作するプログラムが構成できる設定リストは以下の通りで、これ以外の設定リストで構成されたプログラムをブートローダで転送しても正常に動作しないまでか、ボードが破損する可能性があります。
PCとマイコンボードをUSBケーブルで接続して使用するケースを紹介します。
USBを仮想シリアルポートとして認識させるためのPC用デバイスドライバは、GCC Developer Liteをインストールした際にWindowsのシステムフォルダにコピーされます。USBケーブルでUD3とPCを接続するとデバイスドライバを要求されますが、自動検索させる事でインストールが行われます。
インストール後、新しいCOMポートがWindowsのデバイスとして追加され、SIMPLE TERMから該当するCOMポートを選択(COMポート番号はPCの環境によって変わるが、デバイス名に「AT91 USB to Serial Converter」が表示されたポートを選択)しオープンするとブートローダの各種コマンドが使用可能となります。その他の設定は以下の通りです。
Baudrate:ここでは意味を持たないので何でも構わない
Databits:8
Stopbits:1
Parity:Non
Flow Control:Non
Protocol:Xmodem
なお、ユーザプログラムが既に書き込まれている場合は、電源投入およびリセット直後にユーザプログラムが実行される仕様です。こちらの手順にてブートローダのコマンドモードにしておく必要があります。
先の設定リストでソースプログラムをコンパイルし成功するとSTERM.exe(SIMPLE TERM)が自動起動されます。COMポート以外に関しては、以下の条件で起動します。
- 既にSIMPLE TERMが実行中であれば2重に起動しない。
- ボーレートや転送プロトコルは要求される設定が自動的になされる。
- コンパイル済み.binファイルの情報が渡る(ステータスバーにて確認可)。
- ユーザプログラムを転送する際の手順を記述したスクリプトファイルが使用できる様になる。
UD3がブートローダのコマンドモードであれば、「スクリプト実行[STERM UD3]」をクリックするだけで転送するファイルを手動で選択する事無く転送にかかる処理と実行までが全て自動的に行われます。
本機能により、手動で間違ったファイルを選択して転送してしまったり、転送不可能な状態で転送をしてしまうといったミスを軽減する事ができます。
UD3向けターゲットファイル及びライブラリ
GCC Developer Liteでは1つのソースプログラムのみを対象とするため、機能別にソースを分割して編集やコンパイルするといった使い方は出来ません(完全にできないという訳でもありません)。だからと言って全ての機能を一つのソースに記述する事は、プログラムの見通しが悪くなりバグの温床になりかねません。
そこで、複数のソースに分割する事無くある程度のソースプログラムサイズでコーディングするために、頻繁に使用されるであろう一部の機能が専用のライブラリとして提供されます。
GCC Developer Liteを標準的な環境のPCへインストールすると、「C:\Program Files\BestTech\GCC Developer Lite\TARGET」フォルダに必要なファイルがコピーされます。必要に応じて本フォルダを参照できますし、ユーザがソースを修正しライブラリを再構築する事も可能です。
UD3は複数のライブラリを組み合わせて使用するため、実体はかなり複雑になっています。
- SAM7S用ライブラリ
AT91SAM7Sシリーズ共通の内蔵ペリフェラルを簡便に扱う為のライブラリ。
- AT91SAM7Sシリーズ用 TOPPERS/ASP
μITRON4.0仕様準拠であるリアルタイムカーネルToppers ASPのAT91SAM7Sシリーズ向けベステクカスタム版。OSを搭載してもある程度のリアルタイム性を確保できる事から採用。
- UD3ライブラリ
UD3ライブラリはToppersを採用することで、2チャンネルあるモータドライバを全く違う目的で各々個別のタスクで動かしたり、ホストPCとDynamixelプロトコルで通信を行うタスクを走らせながら(PRE版では未サポート)システムを運用といった機能を提供。
実際にはToppersのそれを意識する必要はほとんどない。
UD3 API
APIに関してはこちらのリリース版ユニバーサルドライバ3のドキュメントを参照ください。また、GCC Developer Lite Version 2.3.2.6r4以降を適用ください。
サンプルプログラム
※以後のサンプルプログラムのメンテナンスはUD3のページにて行います。
APIを使用したいくつかのサンプルプログラムを用意しました。以下よりダウンロードして解凍した上でご利用ください。
詳細はコメントおよびAPIのドキュメントを参考に読み解いてください。
- 更新履歴
2010/7/29 Ver.1.1
UD3_SET_MOTORRAMPの指定を追加
2010/7/15 Ver.1.0
初期リリース
基本操作フロー
個々の詳細に関しては上記を参照していただくとして、サンプルプログラムをコンパイルしてUD3に転送して実行させるまでの流れを書いておきます。
- GCC Developer Liteで任意のソースをコンパイラオプションで「UD3」を選択してコンパイル。
- コンパイル成功と同時にSIMPLE TERMが勝手に起動する。二重に起動する事はない。
- PCとUD3をUSBケーブルで接続し、PB1とPB2を押しながらPB3のリセットを押す。PB3だけを放しUD3から「ピロッ」という起動音が聞こえたら全てのボタンを放して構わない。
- SIMPLE TERMのポートを適宜設定しポートを開くと、SIMPLE TERMのターミナルウィンドウに起動メッセージが表示されたら転送可能状態。
- SIMPLE TERMの転送メニューからスクリプト実行をクリックし、プログラムの転送を開始する。スクリプトはプログレスバーが100%になれば転送を完了し、転送したプログラムを実行する。
- 転送したプログラムに実行が遷移する際にSIMPLE TERMで開いているポートが切断されるが、プログラムが正常に実行されてしまえば再度活性化してポートが自動的に開く。
注意事項
UD3との相違
- Bluetoothによるワイヤレス通信機能を有しない。またブートローダにおけるBluetoothの設定も無効
- RS485・USB・Bluetooth経由のDynamixelプロトコルを使用した通信に対応しない。よってUD3コンフィギュレータでの設定や操作も未サポート。
利用上の注意
| 下記に記載された事項以外にも、経験を踏まえた危険回避方策を講じる事。 安全に配慮しない場合は人命や財産を失う恐れがある。 |
- CPU及びセンサ用電源とモータ用電源は同じソースから供給しない事。
- 一般的な直流電源装置をモータ用電源として使用しない事。
- 高いモータ用電源の使用はひかえる事。当然アクチュエータにもよるが、公称7.4Vバッテリパックを2本直列程度にとどめる事を強く推奨する。
- ノイズが大きいモータを使用する場合はノイズ対策を十分に施す事。アークが飛ぶ程の高インダクタンスなモータの使用は推奨しない。また、そういったモータへ定格を超える電源を印加する事は絶対にしてはならない。アバランシェ破壊を誘発する可能性が高くなる。
- 基本的にフルパワーでモータの瞬時逆回転は許容しない。その場合低電ないし仕様以下の電源電圧であっても、逆転した瞬間に逆起電力やノイズにより見かけ上の電源電圧が上昇し、もしFETの絶対最大定格を超えた場合は即時短絡破壊する。
- 最悪ショート状態に陥りバッテリにとって超過放電に陥る可能性がある以上、最終的に電流を遮断するためのヒューズ等を電源ラインに挿入しておく。
- モータ駆動用のHブリッジが破損するときわめて大きな短絡電流が流入する。その際モータ用電源として接続したバッテリが電流制限ないし保護機能を持っていない場合は、極めて重篤な事態を生じる可能性がある。
- 運転中以外はバッテリは必ず取り外す。
- ブスバーに直接半田したり導電性の物と接触させてはならない。
- 移動台車等を構成した際にUSBケーブルを接続したまま使用しない。
- タスクを複数起動すると1つのタスクの実行時間が延びる。よほどの事が無い限りシングルタスクにとどめておくことを推奨する。
- 本製品にかかるいかなる損害が生じても、本製品の単価を超える保障は行わない。