ページへ戻る

− Links

 印刷 

UD4 :: Besttechnology

knowledge:UD4

ページ内コンテンツ
    • 概要
    • 仕様
      • 同梱内容
      • 基本仕様
      • 内部簡略ブロック
      • 外観・レイアウト・回路図
        • CAP MODULE
        • UD4
        • I/O EXPANDER
        • GPIO DISTRIBUTOR
      • 各機能詳細
        • E166_CN1
        • E166_CN2, E166_CN3
        • E166_CN4
        • E166_CN5
        • E166_CN6
        • E166_M1
        • E166_M2
        • E166_PB1
        • E166_LED1
        • E166_LED2
        • E167_CN1
        • E167_PB1
        • E167_DIP1
        • E167_PB2
        • E167_PB3
        • E167_JP1
        • E167_J1~J10
        • E170_CN1
        • E170_JP1
        • E170_J1~J10
    • 各機能の詳細
      • MPU及びセンサ電源
      • モータ用電源
      • USB
      • RS-485
      • I/O EXPANDER, GPIO DISTRIBUTOR
      • ブートローダ
        • 使用方法
    • プログラムの開発環境
      • GCC Developer Lite
        • ターゲットファイル
        • SIMPLE TERMとブートローダ
    • UD4向けターゲットファイル及びライブラリ
    • サンプルプログラム
      • 相撲ロボット向けサンプルについて
      • 基本操作フロー
    • 注意事項
    • その他
      • 半導体の耐圧保護措置

ショップページへ[1]

概要 anchor.png[2]

本製品は独立した2つのブラシ付DCモータ用ブリッジ回路を搭載したモータアンプです。
モータドライバの他に20本のGPIO端子とUSB・RS-485 I/Fを装備しています。

C言語によるプログラミングが必要になりますが、フリーの開発環境であるGCC Developer Liteで開発を行う事ができます。また、リアルタイムカーネルとしてFreeROTS[3]を採用していますので、複数の処理を同時にこなすシステムが構成できます。

:idea:使用方法によっては人命や財産を失う恐れがある可能性があります。本ドキュメントを熟読し、危険性の理解と運用方法を順守してください。
Page Top

仕様 anchor.png[4]

Page Top

同梱内容 anchor.png[5]

型式数量備考
CAP MODULE1E152
UD41E166
I/O EXPANDER1E167
GPIO DISTRIBUTOR1E170
コネクタキット1EHR-4[6]x1, SEH-00x[6]x4
XT60[7]x1
ケーブル1686714200001[8](FFC 14pos 200mm)x1
686710200001[8](FFC 10pos 200mm)x1

※microUSBケーブルは付属しません

Page Top

基本仕様 anchor.png[9]

品番BTA028
PCBリビジョンCAP MODULEE152
UD4E166
I/O EXPANDERE167
SIG. DIST.E170
外形寸法CAP MODULE39x16x45mm
UD461x40x10.5mm
I/O EXPANDER50x18x5.5mm
GPIO DISTRIBUTOR34x16x5.5mm
動作温度範囲-10~+60℃ 結露無きこと
重量70g以下
MPUNXP LPC824M201JHI33E
(フラッシュROM:32k, RAM:8kbyte)
モータドライバ2ch Hブリッジ
4象限の制御領域
入力: DC3~DC24V (絶対最大定格電圧:DC85V)
出力: 定格50A (FET 最大定格電流:300A パルス電流:1200A)
許容損失電力: 375W @25℃
MPU及びセンサ電源入力: DC7~48V (絶対最大定格電圧:DC75V)
出力: DC5V 7A(最大)
HMIUD4リセット用プッシュスイッチ x1
LED x2
I/O EXPANDERリセット用プッシュスイッチ x1
ロータリディップスイッチ x1
プッシュスイッチ x2
コネクタ等CAP MODULE2-Φ3.5mmランド
UD4USBデバイス: microBx1
I2C: 10ピンFFC x1
GPIO: 14ピンFFC x1
Dynamixel I/F: JST B4B-EH x2
モータ用電源: 2-Φ4.2mmランド
モータ出力: ベタランド x4
I/O EXPANDER10ピンFFC x1
GPIO: 2.5mmピッチ3ピンランド x10
GPIO DISTRIBUTOR14ピンFFC x1
GPIO: 2.5mmピット3ピンランド x10
環境配慮鉛フリー半田・RoHS対応

Page Top

内部簡略ブロック anchor.png[10]

[添付]

全ての電源においてGNDは内部で接続されています。

Page Top

外観・レイアウト・回路図 anchor.png[11]

Page Top
CAP MODULE anchor.png[12]

UD4のモータ用電源のデカップリングコンデンサとして一次側に挿入して使用します。

SIDEBOTTOM
3D pdf[15]
[添付]
Page Top
UD4 anchor.png[17]

モータドライバ本体です。

TOPBOTTOM
SIDE
3D pdf[21]
Page Top
I/O EXPANDER anchor.png[24]

I2C経由でUD4にHMIを追加すると同時に10chのGPIOを増設します。

TOPBOTTOM
SIDE
3D pdf[28]
Page Top
GPIO DISTRIBUTOR anchor.png[31]

UD4に10ch装備されたGPIOを扱いやすいように3ピンヘッダに変換します。

TOPBOTTOM
SIDE
3D pdf[21]
Page Top

各機能詳細 anchor.png[37]

Page Top
E166_CN1 anchor.png[38]
:idea:microUSBケーブルは同梱されませんので、市販のUSB[micro-B]<->USB[A]ケーブルを別途お買い求めの上ご利用下さい。
  • USB-microB
  • PC(ホスト)と本ボード上のMPU間のUSBによる通信用
  • USBバスパワーでの動作は不可
  • アプローチ方向は基板と水平
Page Top
E166_CN2, E166_CN3 anchor.png[39]
:idea:電源の逆接続は電源回路の即時破壊・全損扱いとなる。
E166_CN2_CN3.png
  • RS-485 I/F
    RS485_IF.png
  • 電源と通信用信号ラインが接続
    Pats NameJST Parts Number
    基板用ヘッダーB4B-EH[6]
    ハウジングEHR-4[6]
    ターミナルSEH-00x[6]
    B4B-EH.png
    端子番号信号名
    1GND
    2VDD
    3RS-485 D+
    4RS-485 D-
  • Dynamixel I/Fに準拠したコネクタで、RS-485によるシリアル通信及び5Vロジック・3.3Vロジック・12Vゲートドライバ用の一次電源
  • ③④ピン間にはプログラムによってON/OFFできる120Ωのターミネータを装備
  • RS-485の物理的な最大データレートは20Mbps
  • RS-485による通信を行わない場合は③④ピンは未接続にしておく
  • 入力定格電圧:DC8~48V(リプルなき事)
  • 入力絶対最大定格:DC75V
  • ①ピン(GND)はボード内全て(ロジックおよびモータ電源)において共通
  • 本端子から供給される電源によりボード内で使用されるDC5V電源とDC3.3Vが作られ、更にCN5,CN6端子から5V出力がなされる
  • 電圧変動が大きいアプリケーションの場合は、MPOWとは別の電源から供給する事
  • CN5とCN6、及びボード内で使用されるDC5V電源の総電流が7Aを超えてはならない。
Page Top
E166_CN4 anchor.png[40]
:idea:電源の逆接続はブリッジ回路の即時破壊・全損扱いとなる。
E166_CN4.png
  • モータ用電源
  • 図左より順に ①:+(モータ電源), ②:-(GND) の端子割り当て
  • 入力定格電圧:DC3~24V
  • 入力絶対最大定格:DC85V
  • ②ピン(GND)はボード内全て(ロジックおよびモータ電源)において共通
  • 本端子から供給される電源がHブリッジ回路に供給されM1ないしM2端子を介して負荷へと供給される
  • 高負荷かつ電圧変動が大きい場合は、CN2,CN3に供給する電源と共通にすることは避ける事
Page Top
E166_CN5 anchor.png[41]
E166_CN5.png
  • I2C接続による拡張機能付加用コネクタ
  • I2Cは5Vのみ
  • FFC用コネクタ
    ManufacturerParts Number
    AmphenolHFW10S-2STE1LF[42]
  • 対応FFC
    ManufacturerParts Number
    Wurth Electronics Inc.686710xxx001[43]
  • 電源とリセット及びI2Cバスが接続
    No.端子名称I/O
    1GNDO
    2GNDO
    3RESETI/O
    4SCLI/O
    5SDAI/O
    65VO
    75VO
    85VO
    9GNDO
    10GNDO
Page Top
E166_CN6 anchor.png[44]
E166_CN6.png
  • UD4に搭載されるMPUのGPIOに10Ωの直列抵抗を介して接続
  • 全GPIOはアナログ入力兼用
  • FFC用コネクタ
    ManufacturerParts Number
    AmphenolHFW14S-2STE1LF[42]
  • 対応FFC
    ManufacturerParts Number
    Wurth Electronics Inc.686714xxx001[43]
  • 電源と各GPIOが接続
    No.端子名称I/O
    1PIO0_7/ADC0I/O
    2PIO0_6/ADC1I/O
    3PIO0_14/ADC2I/O
    4PIO0_23/ADC3I/O
    5PIO0_22/ADC4I/O
    65VO
    7GNDO
    8PIO0_21/ADC5I/O
    9PIO0_20/ADC6I/O
    10PIO0_19/ADC7I/O
    11PIO0_18/ADC8I/O
    12PIO0_17/ADC9I/O
    135VO
    14GNDO
Page Top
E166_M1 anchor.png[45]
E166_M1.png
  • 負荷接続用端子
  • 図右から順に ①:M1_A, ②:M1_B
:idea:UD4の基板エッジの切り込みを介して表裏に装備されたFETの端子に直結しており、静電防止対策を行った上でリード線などの半田付けを行う事
M1_A及びM1_Bのランド近傍にある異なる信号のランドには絶対に接触させてはならない
Page Top
E166_M2 anchor.png[46]
E166_M2.png
  • 負荷接続用端子
  • 図右から順に ①:M2_A, ②:M2_B
:idea:UD4の基板エッジの切り込みを介して表裏に装備されたFETの端子に直結しており、静電防止対策を行った上でリード線などの半田付けを行う事
M2_A及びM2_Bのランド近傍にある異なる信号のランドには絶対に接触させてはならない
Page Top
E166_PB1 anchor.png[47]
E166_PB1.png
  • 押下でMPUをハードリセットし、ユーザープログラムを再起動させる。
Page Top
E166_LED1 anchor.png[48]
E166_LED1~2.png
  • 色:緑
  • ブートローダ内でコンソール入力があるとフラッシュ
  • アプリケーションにてプログラマブルに点灯・消灯
Page Top
E166_LED2 anchor.png[49]
  • 色:緑
  • アプリケーションにてプログラマブルに点灯・消灯
Page Top
E167_CN1 anchor.png[50]
E167_CN1.png
  • UD4のCN5に接続
  • I2Cは5Vのみ
  • FFC用コネクタ
    ManufacturerParts Number
    AmphenolHFW10R-2STE1LF[51]
  • 対応FFC
    ManufacturerParts Number
    Wurth Electronics Inc.686710xxx001[43]
  • 電源とリセット及びI2Cバスが接続
    No.端子名称I/O
    1GNDI
    2GNDI
    3RESETI/O
    4SCLI/O
    5SDAI/O
    65VI
    75VI
    85VI
    9GNDI
    10GNDI
Page Top
E167_PB1 anchor.png[52]
E167_PB1.png
  • 押下でUD4のMPUをハードリセットすると同時にPCAL6416Aをリセットする
Page Top
E167_DIP1 anchor.png[53]
E167_DIP1_PB2_PB3.png
  • PCAL6416AのP1_4~7がロータリディップスイッチの各ビットに接続
Page Top
E167_PB2 anchor.png[54]
  • 押下でPCAL6416AのP1_3がGNDに短絡
Page Top
E167_PB3 anchor.png[55]
  • 押下でPCAL6416AのP1_2がGNDに短絡
Page Top
E167_JP1 anchor.png[56]
E167_JP1.png
  • J1~J10のVCC端子へ供給する電源を3.3Vと5Vから選択
    同時にPCAL6416AのVDD(P)への供給電圧も変更される
    PB2,PB3,DIP1を使用する際は必ずいずれかの電源を選択する必要がある
    No.端子名称I/O
    15VCN1の5Vへ接続
    2VCCJ1~J10のVCCへ接続
    33.3V3.3V/2A LDOレギュレータへ接続
  • VCCへ接続する電源の選択
    5V:JP1-2とJP1-1を短絡
    3.3V:JP1-2とJP1-3を短絡
Page Top
E167_J1~J10 anchor.png[57]
E167_J1~J10.png
  • 電源とPCAL6416AのP0_0~7, P1_0~1の各ポートがJ1~10のSIG端子に接続
    JPin No.
    123
    J1P0_0VCCGND
    J2P0_1
    J3P0_2
    J4P0_3
    J5P0_4
    J6P0_5
    J7P0_6
    J8P0_7
    J9P1_0
    J10P1_1
  • 注意
    基板のシルク上では5Vとあるが「VCC」が正しい
Page Top
E170_CN1 anchor.png[58]
E170_CN1.png
  • UD4のCN6に接続
  • FFC用コネクタ
    ManufacturerParts Number
    AmphenolHFW14R-2STE1LF[51]
  • 対応FFC
    ManufacturerParts Number
    Wurth Electronics Inc.686714xxx001[43]
  • 電源とLPC824の各GPIOが接続
    No.端子名称I/O
    1PIO0_7/ADC0I/O
    2PIO0_6/ADC1I/O
    3PIO0_14/ADC2I/O
    4PIO0_23/ADC3I/O
    5PIO0_22/ADC4I/O
    65VI
    7GNDI
    8PIO0_21/ADC5I/O
    9PIO0_20/ADC6I/O
    10PIO0_19/ADC7I/O
    11PIO0_18/ADC8I/O
    12PIO0_17/ADC9I/O
    135VI
    14GNDI
Page Top
E170_JP1 anchor.png[59]
E170_JP1.png
  • J1~J10のVCC端子へ供給する電源を3.3Vと5Vから選択
    No.端子名称I/O
    15VCN1の5Vへ接続
    2VCCJ1~J10のVCCへ接続
    33.3V3.3V/2A LDOレギュレータへ接続
  • VCCへ接続する電源の選択
    5V:JP1-2とJP1-1を短絡
    3.3V:JP1-2とJP1-3を短絡
Page Top
E170_J1~J10 anchor.png[60]
E170_J1~J10.png
  • 電源とLPC824の各GPIOが接続
    JPin No.
    123
    J1PIO0_7/ADC0VCCGND
    J2PIO0_6/ADC1
    J3PIO0_14/ADC2
    J4PIO0_23/ADC3
    J5PIO0_22/ADC4
    J6PIO0_21/ADC5
    J7PIO0_20/ADC6
    J8PIO0_19/ADC7
    J9PIO0_18/ADC8
    J10PIO0_17/ADC9
Page Top

各機能の詳細 anchor.png[61]

Page Top

MPU及びセンサ電源 anchor.png[62]

CN2もしくはCN3に電源を印加すると、UD4内の3.3V・5V・12Vの各電源が生成されます。
ユーザプログラムが既に書き込まれていれば、自動的に実行が開始されます。

Page Top

モータ用電源 anchor.png[63]

モータの逆起電力などにより電圧の変動が起こりますが、その際に半導体の絶対最大定格を超えると容易に破壊します。付属のデカップリングコンデンサは必ず電源に対して並列に挿入してください。
MPU及びセンサ電源を供給せずにモータ用電源のみを供給してもモータが勝手に動く事はありませんが、その状態が長時間維持される事は想定していません。両電源ともほぼ同時に印加するようにして下さい。

なお、MPU及びセンサ電源のみが供給されモータを駆動するプログラムが既に実行されている場合、その状態で後からモータ用電源を供給してもゲートドライバは活性化しません。
両電源が供給された状態になってからゲートドライバへイネーブルを発行する必要があります。

Page Top

USB anchor.png[64]

PCのUSBバスパワーはUD4の電源として供給されません。MPU電源を供給した状態でPCと接続する事で初めてUSBシリアル変換チップが活性化します。

USB(CN1)はUSBシリアル変換ICにつながっており、PCと接続するとFTDI社のデバイスドライバが要求されます。デバイスドライバはこちら[65]のページを参考にインストールしてください。
PCには仮想シリアルポートとしてCOMポートが追加されます。

Page Top

RS-485 anchor.png[66]

RS-485 I/F(CN2,CN3)はDynamixel Xシリーズと電気的に互換性を持っています。ユーザプログラムによってDynamixelプロトコルのホストにもクライアントにも使用でき、単純なコンソールとしても機能させることができます。
なお、RS-485 I/Fによるブートローダのコマンドモードは標準ではサポートされません。

Page Top

I/O EXPANDER, GPIO DISTRIBUTOR anchor.png[67]

いずれもUD4本体とFFCで接続する事で配線の自由度を向上させています。また、各信号は電源を含む2.54mmピッチの3ピンランドで構成されていますので、センサなどへの給電(基板単位で5Vと3.3Vを選択可)と信号の取り込みがしやすくなっています。
なお、FFCには向きがありますので、次の図に示すとおりの向きに各コネクタへ挿入します。

  • E166_CN5, E166_CN6 (UD4)
    E166_CN5_CN6_FFC.png
  • E167_CN1 (I/O EXPANDER)
    E167_CN1_FFC.png
  • E170_CN1 (GPIO DISTRIBUTOR)
    E170_CN1_FFC.png

また、FFCは180度まで折り曲げると破断するのと、コネクタへの挿抜回数には制限があります。

Page Top

ブートローダ anchor.png[68]

Page Top
使用方法 anchor.png[69]

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
>
  • w (UPLOAD)
    UD4用にコンパイルされたユーザプログラムをフラッシュROMに転送する。ダウンロードして実行できるファイルは、GCC Developer LiteにてUD4向けにコンパイルされたバイナリファイルのみ。
  • e (ERASE)
    ブートローダ本体を除くユーザプログラムエリアに書き込まれたデータを完全消去する。一度消去したデータは復活させる事はできない。
  • g (BOOT)
    フラッシュROMに転送されたユーザプログラムへ実行を遷移する。ユーザプログラム領域が消去されていると実行されない。
  • d (DUMP)
    MPUのメモリを16進数でダンプする。

なお、ユーザプログラムが書き込まれている場合は、電源投入直後にユーザプログラムが実行されるため、ブートローダのコマンドモードにはなりません。
再度ユーザプログラムの転送や消去といった操作を行う場合は、SIMPLE TERM上で「!」を押したままPB1を押してリセットして下さい。ブートローダはコマンドモードへ遷移します。

Page Top

プログラムの開発環境 anchor.png[70]

Page Top

GCC Developer Lite anchor.png[71]

GCC Developer Liteの詳細についてはこちら[72]で紹介しています。
基本パックとARMパックをダウンロードし、基本パックをフルインストールしたらARMパックのコンポーネントから「LPC82xでのみ使用」を選択してインストールします。

  • GDL2.6.0.55_LPC824_2.exe
    141,702,743 byte
    MD5sum:c99f5a38632cf028ddc9870af5691cd7
    改訂履歴:
    LPC82x_EXTRAのwl_spi.hにタスクスイッチ用のフックルーチンを追加
  • GDL2.6.0.55_LPC824.exe
    141,702,727 byte
    MD5sum:afb5a7db7c7a32c2d516f4f1556f661d
    改訂履歴:
    GCCDevLでマウスホイール操作を行った時にエラーが表示されるのを抑止
    LPC82xのブートコードにディスパッチルーチンを追加できるよう修正
  • GDL2.6.0.54_LPC824.exe
    141,702,529 byte
    MD5sum:45840863a134cf6926eb5d934e5a38c6
    改訂履歴:
    FreeRTOSの一部コンフィギュレーションを追加
    GCCDevl及びSTERMのコンポーネント更新に伴う再構築

UD4で使用される主要なコンポーネントを簡単に紹介します。

  • GCC Developer Lite[73]

    ソースプログラムを編集するためのテキストエディタとその他のツールを起動するためのランチャ機能を有する。

  • SIMPLE TERM[74]

    汎用シリアルターミナル。簡易的なTELNETクライアントとしても機能する。
    USB等で提供されるCOMポートの動的な検出と、COMポートを使用する弊社ツールとの排他制御機能を持つ。

  • ARMGCC

    ARMコア向けC/C++言語向けのコンパイラ。できる限り最新のパッチを適用しているため、時に互換性を失う。

  • ターゲットファイル

    MPUの内蔵ペリフェラルを定義したヘッダファイルやUARTを簡便に使うためのAPI、GDBにてデバッグする際に使用する初期化ファイル、シリーズ毎に異なるメモリマップを定義したリンカスクリプトファイル、スタートアップルーチンを含む。基本的にコンパイル済みライブラリとしてソースとリンクして使用する。

Page Top
ターゲットファイル anchor.png[75]

GCC Developer Lite[72]ではUD4用の設定を1種類備えています。

[添付]

以下にUD4に対応した設定リストの一覧とその設定における機能を紹介します。

  • LPC824 EXTRA (TERM, FREERTOS, EXTRA)

    NXP LPC824用のペリフェラルライブラリとFreeRTOSを提供。

    ビルドするとブートローダにてMPUのフラッシュROMへ転送するための.bin(バイナリ)ファイルが作られる。
    ビルドが成功すると、STERM.exe(SIMPLE TERM)が起動する。

Page Top
SIMPLE TERMとブートローダ anchor.png[76]

ブートローダはUD4のUSBを使用して外部からユーザーログラムの書き換えや操作を行う事ができます(非標準としてRS-485 I/Fを介したブートローダを搭載したものもあります)。
ブートローダを使用して動作するプログラムが構成できる設定リストは以下の通りで、これ以外の設定リストで構成されたプログラムをブートローダで転送しても正常に動作しないまでか、ボードが破損する可能性があります。

  • LPC824 EXTRA (TERM, FREERTOS, EXTRA)

PCとUD4をUSBケーブルで接続して使用するケースを紹介します。
USBを仮想シリアルポートとして認識させるためのPC用デバイスドライバは、GCC Developer Lite[72]をインストールした際に一緒にインストールされます。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ポート以外に関しては、以下の条件で起動します。

  • 既にSIMPLE TERMが実行中であれば2重に起動しない。
  • ボーレートや転送プロトコルは要求される設定が自動的になされる。
  • コンパイル済み.binファイルの情報が渡る(ステータスバーにて確認可)。
  • ユーザプログラムを転送する際の手順を記述したスクリプトファイルが使用できる様になる。
[添付]

UD4のブートローダがコマンドモードであれば、SIMPLE TERMのメニューから「スクリプト実行[STERM_LPC82x]」をクリックするだけで、転送するファイルを手動で選択する事無く転送にかかる処理と実行までが全て自動的に行われます。

[添付]

本機能により、手動で間違ったファイルを選択して転送してしまったり、転送不可能な状態で転送をしてしまうといったミスを軽減する事ができます。

Page Top

UD4向けターゲットファイル及びライブラリ anchor.png[77]

GCC Developer Lite[72]では1つのソースプログラムのみを対象とするため、機能別にソースを分割して編集やコンパイルするといった使い方はできません(完全にできないという訳でもありません)。だからと言って全ての機能を一つのソースに記述する事は、プログラムの見通しが悪くなりバグの温床になりかねません。
そこで、複数のソースに分割する事無くある程度のソースプログラムサイズでコーディングするために、頻繁に使用されるであろう一部の機能が専用のライブラリとして提供されます。
GCC Developer Liteを標準的な環境のPCへインストールすると、「C:\Program Files\BestTech\GCC Developer Lite\TARGET」フォルダに必要なファイルがコピーされます。必要に応じて本フォルダを参照できますし、ユーザがソースを修正しライブラリを再構築する事も可能です。

UD4は複数のライブラリを組み合わせて使用するため、実体はかなり複雑になっています。

  • LPC82xライブラリ
    LPC82xシリーズ共通の内蔵ペリフェラルを簡便に扱う為のライブラリ。主にLPCOpen[78]とシリアル通信、ブートコードを含む。
  • LPC82x追加ライブラリ
    LPC82xシリーズ用のよく使われるペリフェラルのラッパーライブラリ。主にI2C,FLASH,DELAY,SPI,ADC,DXLIB,DX2LIBを含む。
  • cortex-M0用FREERTOS
    Cortex-M0+用に予めビルドされたリアルタイムオペレーティングシステムFreeRTOS[3]

なお、本UD4向けの専用ライブラリはライブラリファイルとして提供するのでは無く、全て「ud4.h」というヘッダファイルとしてサンプルプログラムに同梱しました。
よって、コンパイル時のオプションに影響されてその都度挙動が変わる可能性があります。
未完成ですがこちら[79]にAPIの詳細を記載しています。

Page Top

サンプルプログラム anchor.png[80]

以下よりダウンロードし展開して利用してください。詳細はコメントを参考に読み解いてください。

なお、ARMGCCそのものがSJISに対応していないため、コメント等に日本語を使用するとコンパイルエラーが発生する場合があります。サンプルプログラムは日本語のコメントを使用していますが、全てUTF8のエンコードにしているためそれに起因するエラーが発生しません。 GCC Developer Liteにて自身で新規で作成したプログラムは必ずSJISで生成されるため、編集中にGCC Developer Liteのステータスバーに表示される「SJIS(CR+LR)」をマウスで右クリックし、ポップアップメニューのリストから「UFT8」を選んでからソースプログラムを保存して下さい。「UFT8」になってさえいれば全角日本語のコメントによるコンパイルエラーは発生しません。

GDL_ENCODE.png
Page Top

相撲ロボット向けサンプルについて anchor.png[82]

いきなりフルパワーで暴走すると危険ですので、いくつかのサンプルでは以下のマクロで最終段の出力を抑えています。

#define POWERGAIN (30)  // 出力を調整するためのゲイン 0~100%で指定
#define MOTOR_INC (10)  // モータへのデューティ指令の増分 1~1000‰で指定

パワーが上がらなのはバッテリやモータの問題ではありませんので、必要に応じてこの値を0~100の範囲で変更し、再度コンパイルし直してください。
また、モータの応答が遅いのは1msあたりの増分をMOTOR_INCの値で制限しているためですので、1~1000の範囲で調整してください。

相撲ロボット向けサンプルプログラムが想定している周辺機器の接続イメージは以下の通りです。

各コネクタの詳細を以下に示します。

E166_CN2, E166_CN3
MPU及びセンサ用の一次電源。供給電圧は8V以上を必要とする。
E166_CN1
PCとUD4をUSBケーブルで接続して通信を行う。プログラムのダウンロードを行ったら外しておく。
E166_CN4
モータ用の一次電源。電源ラインにデカップリングコンデンサとヒューズを挿入する事を推奨。
E170_J10
左前土俵検出を目的としたセンサを接続。ここではBTE007 IRPXセンサ[84]を想定し、5Vの電源供給も含め3線を接続する。
E170_J9
右前土俵検出を目的としたセンサを接続。ここではBTE007 IRPXセンサ[84]を想定し、5Vの電源供給も含め3線を接続する。
E170_J8
左前ないし左にいる相手検出を目的としたセンサを接続。ここではBTE023B 800mmIRリフレクタ [85]を想定し、5Vの電源供給も含め3線を接続する。
E170_J7
前方にいる相手検出を目的としたセンサを接続。ここではBTE023B 800mmIRリフレクタ [85]を想定し、5Vの電源供給も含め3線を接続する。
E170_J6
右前ないし右にいる相手検出を目的としたセンサを接続。ここではBTE023B 800mmIRリフレクタ [85]を想定し、5Vの電源供給も含め3線を接続する。
E170_J5
非常停止時に0.2秒以上LOWの信号を出力する何らかの非常停止装置を想定。
E170_J3
ラジコン用受信器のCH1。右側のモータ(M1)のパワー及び回転方向を指令する信号が供給される前提。
E170_J2
ラジコン用受信器のCH2。左側のモータ(M2)のパワー及び回転方向を指令する信号が供給される前提。
E170_J1
ラジコン用受信器のCH3。
E166_M1
左側に配した車輪を駆動するモータを接続。プラスのデューティーを指令すると後退する方向に回転する前提。
E166_M2
右側に配した車輪を駆動するモータを接続。プラスのデューティーを指令すると前進する方向に回転する前提。
Page Top

基本操作フロー anchor.png[86]

個々の詳細に関してはサンプルプログラム内のコメントを参照していただくとして、プログラムをコンパイルしてUD4に転送して実行させるまでの基本的なフローは以下となります。

  1. GCC Developer Liteで任意のソースをコンパイラオプションで「 LPC824 EXTRA (TERM, FREERTOS, EXTRA)」を選択してコンパイル。
  2. コンパイル成功と同時にSIMPLE TERMの起動を促すダイアログボックスが表示されるので「OK」をクリックする。SIMPLE TERMは二重に起動する事はない。
  3. 電源を供給したUD4とPCをUSBケーブルで接続する。
  4. SIMPLE TERMのポートを適宜設定しポートを開き、スクリプト実行をクリックし転送待機状態になったらPB1を押して放す。
  5. 転送中のプログレスバーが100%になれば転送は完了し、転送スクリプトの処理が終了する。
  6. SIMPLE TERM上で「g」を送信すると転送したプログラムに実行が遷移する。
Page Top

注意事項 anchor.png[87]

:idea:下記に記載された事項以外にも、経験を踏まえた危険回避方策を講じる事。
安全に配慮しない場合は人命や財産を失う恐れがある。
また従わない場合は保証対象外となる。
  • 知識と認識がある場合を除き、MPU及びセンサ用電源とモータ用電源は同じソースから供給しない事。
  • 付属の電源コネクタは必要に応じて利用の事。またパワーラインの線材は使用環境に応じた物を任意に選定の事。
  • 最低限付属のデカップリングコンデンサをUD4のモータ電源ラインに装備する事。また計算上の容量が不足する場合は別途任意の容量のコンデンサを装備する事。
  • 電流をシンクできない直流電源装置等をモータ用電源として使用しない事。状況によっては逆起電力によって見かけ上の電源電圧が上昇し、耐圧を超える場合がある。
  • ノイズが大きいモータを使用する場合は、ノイズ対策を十分に施す事。アークが飛ぶ程の高インダクタンスなモータの使用は推奨しない。また、そういったモータへ定格を超える電源を印加する事は絶対にしてはならない。
  • モータへの急激な指令値更新は行わない事。特に急反転等を行うとモータ電源として仕様以下の電圧を印加していても逆起電力やノイズが過大になり、それによって半導体の耐圧を超える場合がある。
  • 最悪なケースではFETがショート状態の故障モードに陥るため、その際にバッテリ等が超過放電にならないよう最終的に電流を遮断するためのヒューズ等を電源ラインに挿入しておく事。
  • 運転中以外はバッテリは全て取り外す事。
  • FETの許容損失電力を考慮し、場合によっては強制冷措置を講じる事。
  • コネクタに対して不用意に導電性の物と接触させてはならない。
  • 移動台車等を構成した際にUSBケーブルを接続したまま使用しない事。
  • ラジコン用のプロポをUD4に近づけると正常な動作を得られなくなる。少なくとも数メートル以上離す事。
  • 基板の露出している部品やパッドはいかなる場合も短絡してはならない。
  • タスクを複数起動すると1つのタスクの実行時間が延びる。動作時間を優先する場合は、実行タスク数を制限すること。
  • 本製品にかかるいかなる損害が生じても、本製品の単価を超える保障は行わない。
Page Top

その他 anchor.png[88]

Page Top

半導体の耐圧保護措置 anchor.png[89]

絶対最大定格を超えないという運用は実質的に難しく、ほんの少しのパルス的なノイズでも永久破壊する事も起こりえます。
そこで、TVSダイオードを設置する事をお勧めします。定電圧ダイオードをノイズ源となる端子に挿入して電圧を抑えるといった手法で、電源と負荷接続端子の5カ所に設置しておけば良いでしょう。
TVSダイオードのクランプ電圧は印加される電源電圧以上かつ半導体の絶対最大定格電圧以下、容量はモータの回生電力を吸収しきれるものを選びます。

なお容量がかなり大きめかつ高価ではありますが、実例として15KPA51A[91]を適用したことがあるため、この仕様で宜しければ5個セットで販売[92]しています。


Last-modified: 2022-02-07 (月) 22:01:22 (JST) (799d) by takaboo