ページへ戻る

− Links

 印刷 

BTE083 FDIII-HC のバックアップソース(No.7) :: Besttechnology

knowledge:BTE083 FDIII-HC のバックアップソース(No.7)

« Prev[4]  Next »[5]
#norelated
#contents
**概要 [#tb847e68]
本製品はSAM7S I/Oボードの後継としてデザインされ、従来オプションとなっていた無線やマンマシンI/FさらにmicroSDカードスロット、RS485とTTL I/Fによるラインナップの分離といった煩わしさを解消し、更に加速度センサを装備する事で移動検出といったアプリケーションに適用しやすくしたハイパフォーマンスコントローラです。~
FREEDOMシリーズにも使用されるDynamixel AX-12+やRX-28を制御するためのAPIが提供され、複雑な多軸ロボットを構成する事が簡便に行う事ができます。

**基本仕様 [#e5a81ed1]
|商品番号 |BTE083 |
|リビジョン |E092 (4層) |
|動作温度 |0~+50℃ |
|外部電源 |電源電圧範囲:DC7.2V~DC26V&br;絶対最大定格電圧:DC30V&br;最大スイッチング電流:30A |
|搭載主要機能 |AT91SAM7S512(48MHz), 3軸加速度センサ, Bluetooth(ZEAL-C01), ブザー, プッシュスイッチ, DIPスイッチ, microSDスロット, Dynamixel RS485 I/F x4, Dynamixel TTL I/F x5, モニタLED x3, JTAGコネクタ, 電源スイッチ, 電源コネクタ, USB miniBコネクタ |
|寸法 |W74×D40mm (±0.5mm)|
|環境配慮 |RoHS準拠, 鉛フリー半田 |
|付属品 |USBケーブル&br;電源コネクタセット&br; ・ハウジング JST VHR-2N (1:+, 2:-)&br; ・コンタクト JST SVH-21T-P1.1 x2 |

**外観 [#ubb4a347]
| TOP | BOTTOM |
| #ref(E092_TOP.png,40%) | #ref(E092_BOTTOM.png,40%) |
#ref(E092_LAYOUT.pdf)

**回路図 [#wcfc29ee]
#ref(E092.pdf)
-D1, D5はノーマウント
-CN17(microSDスロット)はボード裏面に装備
-CN15にはZEAL-C01が装着済
-CN2, CN3はCN1と排他のため未装着

**I/Oボード各機能の詳細 [#m4f08258]

***CN1 [#vfa02328]
電源供給用コネクタで、電源スイッチ回路を介してCN4~CN12と5V DCDCコンバータに供給されます。SW1にてそれらデバイスへの電源供給をON/OFFできます。~
なお、CN1に何も接続せずUSBコネクタにPCを接続した場合、CN4~CN12へは電源が供給されません。

***CN4~CN8 [#d0c3107d]
TTL I/Fを搭載したDynamixelシリーズ用のコネクタです。CN1から供給される電源がスイッチ回路を介して接続されます。

***CN9~CN12 [#ld45ce7b]
RS485 I/Fを搭載したDynamixelシリーズ用のコネクタです。CN1から供給される電源がスイッチ回路を介して接続されます。

***CN13 [#i4635430]
USB Mini-Bコネクタです。USBバスパワーによりマイコンとその周辺回路への電源が供給できますが、CN4~CN12への電源供給は行えません。

***CN14 [#u3de666f]
DBGU コネクタ。

***CN15 [#bf0897cc]
ZEAL-C01が装着されます。

***CN16 [#me2d411a]
[[BTE067B TINY JTAG-ICE2>BTE067B]]をBTE066 JTAG ICE変換ケーブルを介して接続します。~
マイコンに予め搭載されたブートローダを使用せず、ユーザ自身により全ての制御プログラムを作成したり、ICE等によりデバッグを行う場合に使用します。

***CN17 [#ge06e918]
裏面に配置されたmicroSDスロットです。

***PB1 [#w1c49da8]
押下しながら電源をONにすると、ブートローダが必ず設定モードになります。~
アプリケーションプログラムにおいてはON/OFF状態を取得できます。

***DIP1 [#w57f2b45]
4ビットのDIPスイッチです。~
ブートローダでは使用されず、アプリケーションプログラムにて入力状態を取得できます。

***DIP2 [#f954a543]
2ビットのDIPスイッチで、ZEAL-C01のモードを設定します。なお、本製品においてはZEAL-C01のモードをマイコンから直接制御するため、本ディップスイッチは両ビット共にOFFにしておく必要があります。

***LED1 [#nf2bb473]
電源がONになると赤色に点灯します。

***LED2 [#b5d2a4f4]
ブートローダでのコンソール操作、及びアプリケーションプログラムにより橙色に点灯します。

***LED3 [#xe5dc591]
Bluetooth(ZEAL)の無線接続が完了すると緑色に点灯します。

**各機能の詳細 [#j58996d5]
***電源 [#me4efb0e]
電源の入力方法は3つあり、各々目的が異なります。
-CN1(外部電源装置)~
外部の電源装置からDC7.2~26Vの電源を接続し、本ボード上の機能全てと、CN4~CN12に接続されるDynamixel等への電源供給が行えます。SW1と連動してボード上及びCN4~CN12へ接続される電源がON/OFFできます。
-CN13(PCからのUSBバスパワー)~
電源が入ったPCとUSBケーブルで接続すると同時に本ボード上のマイコン・無線機・CN4~CN12に接続されたシリアルI/Fに電源が供給されます。SW1とは連動せず、電源供給が常時行われます。
-CN1とCN13両方~
電源電圧が高い方が優先される回路となっています。両社を接続したとしても大抵の場合はCN1からの電源が優先されることになります。~
なお、CN1からの電源供給が先に行われている状態でUSBケーブルを接続すると、場合によってはブートローダが機能しない事があります。これは既にユーザプログラムが書き込まれている場合はブートローダのコマンドモードを起動するよりもユーザプログラムの起動を優先するためです。

***USB [#jb39f86d]
先の電源の供給を担う他に、PCとマイコンとの有線による唯一の通信手段を提供します。~
PCとUSBケーブルで接続し、予め書き込まれたブートローダのコマンドモードが起動すると、PCからは増設シリアルポートとして見えます。

***プッシュスイッチ(PB1) [#vbd825b5]
ブートローダのコマンドモードを使用する場合は、PB1を押しながら電源をONないしUSBケーブルを接続します。ブートローダのコマンドモードが起動するとピロッ♪とブザーが短く鳴り、LED2が一瞬点灯し正常にコマンドモードになった事を知らせます。

**開発環境 [#ae46f693]
***GCC Developer Lite [#m2c7408b]
GCC Developer Liteの詳細については[[こちら>GCC Developer Lite]]。~
フルインストールないしAT91SAM7Sで使用を選択する事で必要なコンポーネントが自動的にインストールされます。~
主要なコンポーネントを簡単に紹介します。
-''[[GCC Developer Lite>GCC Developer Lite#GCCDevL]]''
~ソースプログラムを編集するためのテキストエディタとその他のツールを起動するためのランチャ機能を有する。
-''[[FLASH WRITER>GCC Developer Lite#FW]]''
~ターゲットのフラッシュROM等へコンパイルされたプログラムをSAM-BAないしCOMポート経由で書き込む。~
USB等で提供されるCOMポートの動的な検出と、COMポートを使用する弊社ツールとの排他制御機能を持つ。
-''[[SIMPLE TERM>GCC Developer Lite#STERM]]''
~汎用シリアルターミナル。簡易的なTLENETクライアントとしても機能する。~
USB等で提供されるCOMポートの動的な検出と、COMポートを使用する弊社ツールとの排他制御機能を持つ。
-''ARMGCC''
~ARMコア向けC/C++言語向けのコンパイラ。出来る限り最新のパッチを適用しているため、時に互換性を失う。
-''デバイスドライバ''
~Atmel社提供のSAM-BA用USBドライバと、弊社提供のUSB CDCエミュレーションドライバ。
-''[[OpenOCD]]''
~TINY JTAG-ICE2の制御を行うデーモン。JTAGを使用する場合は全て本デーモンを仲介する。
-''ターゲットファイル''
~マイコンの内蔵ペリフェラルを定義したヘッダファイルやUARTを簡便に使うためのAPI、USBをシリアルポートとして使用するためのAPI、GDBにてデバッグする際に使用する初期化ファイル、シリーズ毎に異なるメモリマップを定義したリンカスクリプトファイル、スタートアップルーチンを含む。基本的にコンパイル済みライブラリとしてソースとリンクして使用する。

****ターゲットファイル [#l9fe78a0]
[[GCC Developer Lite>GCC Developer Lite]]では本マイコン用の設定を複数備えています。~
例えば、ARMコアの学習・組み込み向けCコンパイラの習熟・マイコン内蔵ペリフェラルの機能を熟知するといった段階ではJTAGを使ってSRAM上でデバッグし、慣れてきたらブートローダを経由してprintfデバッグ、最終的に製品等としてリリースして完成させる時はフラッシュROMに、といった段階を踏む場合でも[[GCC Developer Lite>GCC Developer Lite]]のコンパイルオプションの設定リストから選択し直すだけで設定が完了します。~
#ref(GDL_CompileOption_TargetList.png)
以下にFDIII-HCに対応した設定リストの一覧とその設定における機能を紹介します。
-''DYNAMIXEL library for FDIII-HC''
~Dynamixelとの通信を行う一番低位なAPI・サウンドAPI・microSD用fatファイルシステム(efsl)といった機能がライブラリとして提供される。~
~ビルドするとブートローダにてマイコンのフラッシュROMへ転送するための.bin(バイナリ)ファイルが作られる。~
プログラムのスタートアドレスが0x103000に設定される以外は、フラッシュROM上で動作するプログラムと基本的に相違は無い。~
ビルドが成功すると、STERM.exe(SIMPLE TERM)の起動を促される。~
-''FREEDOM III library for FDIII-HC''
~FREEDOMとして複数のアクチュエータを取りまとめるモーションAPI・非同期にDynamixelとの通信を行うインストラクションAPI・簡易タスク管理API・モーションデータ管理API等がライブラリとして提供される。~
~ビルドするとブートローダにてマイコンのフラッシュROMへ転送するための.bin(バイナリ)ファイルが作られる。~
プログラムのスタートアドレスが0x103000に設定される以外は、フラッシュROM上で動作するプログラムと基本的に相違は無い。~
ビルドが成功すると、STERM.exe(SIMPLE TERM)の起動を促される。

****SIMPLE TERMとブートローダ [#FDIII_BL]
ブートローダはJTAGやその他の特殊なI/Fを使用せずとも、USBないしCOMポートを使用してマイコンのプログラム書き換えや操作を行う事が出来ます。~
ブートローダを使用して動作するプログラムが構成できる設定リストは以下の通りで、これ以外の設定リストで構成されたプログラムをブートローダで転送しても動作しません。
-DYNAMIXEL library for FDIII-HC
-FREEDOM III library for FDIII-HC

マイコンボードは出荷時にUSBをコンソールとして構成されたブートローダが書き込まれており、PCとマイコンボードをUSBケーブルで接続する事で使用可能となります。~
USBを仮想シリアルポートとして認識させるためのPC用デバイスドライバは、[[GCC Developer Lite>GCC Developer Lite]]をインストールした際にWindowsのシステムフォルダにコピーされます。USBケーブルでFDIII-HCと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
#ref(AT91SAM7_BL_COM.png,100%)
ブートローダの詳細及びコマンドモードの使い方等は[[こちら>AT91SAM_BL]]。~

先の設定リストでソースプログラムをコンパイルし成功するとSTERM.exe(SIMPLE TERM)の起動を促されます。「OK」を押してSIMPLE TERMを起動すると、特殊な設定が追加されてSIMPLE TERMが起動します。
-既にSIMPLE TERMが実行中であれば2重に起動しない。
-コンパイル済み.binファイルの情報が渡る(ステータスバーにて確認可)。
-ユーザプログラムを転送する際の手順を記述したスクリプトファイルが使用できる様になる。

#ref(AT91SAM7_STERM_SCRIPT1.png,100%)

FDIII-HCがブートローダのコマンドモードであれば、「スクリプト実行[STERM FDIII]」をクリックするだけで転送するファイルを手動で選択する事無く転送にかかる処理が全て自動的に行われます。
#ref(AT91SAM7_STERM_SCRIPT2.png,100%)
本機能により、手動で間違ったファイルを選択して転送してしまったり、転送不可能な状態で転送をしてしまうといったミスを軽減する事ができます。

|CENTER:BGCOLOR(red):||c
|  :idea:|既にユーザープログラムが書き込まれているFDIII-HCを、デバイスドライバがインストールされていないPCのUSBポートに接続してもCOMポートが活性化しない事があります。&br;ブートローダを確実にコマンドモードにさせCOMポートとして認識させるには、SW1をOFFにした状態でPB1を押しながらUSBケーブルを接続します。|

**FDIII-HC用ライブラリ [#ude1312e]
[[GCC Developer Lite>GCC Developer Lite]]では1つのソースプログラムのみを対象とするため、機能別にソースを分割して編集やコンパイルするといった使い方は出来ません(完全にできないという訳でもありません)。だからと言って全ての機能を一つのソースに記述する事は、プログラムの見通しが悪くなりバグの温床になりかねません。~
そこで、複数のソースに分割する事無くある程度のソースプログラムサイズでコーディングするために、頻繁に使用されるであろう一部の機能が専用のライブラリとして提供されます。~
GCC Developer Liteを標準的な環境のPCへインストールすると、「C:\Program Files\BestTech\GCC Developer Lite\TARGET」フォルダに必要なファイルがコピーされます。必要に応じて本フォルダを参照できますし、ユーザがソースを修正しライブラリを再構築する事も可能です。~
~
FDII-HCは複数のライブラリを組み合わせて使用するため、実体はかなり複雑になっています。
-''SAM7S用ライブラリ''~
AT91SAM7Sシリーズ共通の内蔵ペリフェラルを簡便に扱う為のライブラリ。シリアル通信に関する物が主体。
-''DYNAMIXEL用ライブラリ''~
SAM7S I/O時代から引き継がれているDynamixelとの通信を行うライブラリ。簡単な引数だけでDynamixelの通信プロトコルを自動生成したり、ブザーによるメロディ演奏機能を提供。
-''FREEDOM IIIライブラリ''~
Dynamixelを複数使用したアプリケーションを扱うライブラリ。Dynamixelのプロトコルだけでは解決しないモーションの管理・自動実行、各Dynamixelのステータスの読み込み、RC-100のボタンの取り込み等といった機能を提供。

**サンプルプログラム [#m24a02e6]
**その他 [#md0d0106]

« Prev[4]  Next »[5]