4: 2009-10-09 (金) 12:15:27 takaboo | 5: 2009-10-16 (金) 12:40:50 takaboo | ||
---|---|---|---|
Line 74: | Line 74: | ||
Bluetooth(ZEAL)の無線接続が完了すると緑色に点灯します。 | Bluetooth(ZEAL)の無線接続が完了すると緑色に点灯します。 | ||
- | **サンプルプログラム [#r6737ca1] | + | **各機能の詳細 [#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] |