Easy MCUser のユーザー・マニュアル

  • Easy MCUser のユーザー・マニュアル


このページでは、Easy MCUser の使い方について説明します。

インストール
ユーザー登録
マイコン・ボードとの接続
仮想MCUのピン機能設定
GUI操作による録画・再生機能
タブ・パネルの使い方
MCU パネル
Script パネル
Binary パネル
REGs パネル
CIREG adr. パネル
PIOパネル
SPI/I2C パネル
Analog パネル
PWM パネル
LCD パネル
Firm. パネル
 

Easy MCUser のインストール】
Easy MCUser
は、使用する PC の固有情報にひも付けしてライセンスされる仕組みとなっていますので、まず始めに、Easy MCUser を動かすPC を決めます。(後に、PC が故障したりして新しい PC に買い替えたりした場合は、再度ライセンスの申請と認証が可能ですのでご安心ください。)
Easy MCUser
を動かすPC を決めたら、AVRMC のホームページからソフトウェアとファームウェアをダウンロードし、その圧縮ファイルをダブル・クリックします。

Mac
版の場合は、ダウンロードした圧縮ファイルをダブル・クリックして解凍し、解凍したフォルダーを、そのまま「Application」フォルダーに、ドラッグ&ドロップします。
Windows
版の場合は、ダウンロードしたインストーラーをダブル・クリックし、インストーラーの指示に従ってインストールをします。(Windows 版については、お手数をおかけしてますが現在公開中のβ版は、ユーザーが自分で適当な場所にフォルダーごと移動して頂く必要があります。)

 
【ユーザー登録】
Easy MCUser をダブルクリックして立ち上げます。
まだユーザー登録が完了していない状態で Easy MCUser を立ち上げると、メッセージ・ボックスが表示されます。メッセージ・ボックスに表示された説明を読み終わりましたら、OKボタンを押します。

Pasted Graphic 1


メッセージ・ボックスの OK ボタンを押すと、ユーザー登録のために、認証ファイル(*****.ath)の場所を設定するためのファイル・オープン・ウィンドーが立ち上がります。

初めてユーザー登録をする場合は、ファイル・オープン・ウィンドー内にある、キャンセル・ボタンを押します。
キャンセル・ボタンを押すと、認証ウインドーがアクティブになります。
認証ウインドーの中で、ご購入頂いた
Easy MCUser のソフトウェア・グレードを選択します。
AVRMC
のインターネット・ショッピング・サイトの「BASE」へ Easy MCUser の購入時に登録されたメール・アドレスを「Mail Address」テキスト・ボックスに入力します。
使用許諾契約書の内容を確認して、OKならばチェック・ボックスにチェックを入れます。
AVRMCに認証リクエスト・ファイルを送信するために、「Make Key request file」ボタンを押します。

Pasted Graphic 2


Make Key request file」ボタンが押されると、「Easy MCUser」のフォルダーの中に、認証リクエスト・ファイル(*****.req)が生成されます。このファイルを request_trial@avrmc.net にメール添付して送ります。

Pasted Graphic 3


AVRMC
から送られた認証ファイルをお持ちの方は、「*****.ath」ファイルをファイル・オープン・ウィンドー内で指定してOKボタンを押します。

Pasted Graphic 5

Pasted Graphic 4


認証が完了して「
Easy MCUser」のメイン・ウィンドーがオープンして、「Easy MCUser」が使用出来る状態になります。

Pasted Graphic 6

 
【マイコン・ボードとの接続】
まず始めに、パソコンから制御したい仮想MCUと通信を確立した状態にするため、以下の手順で通信を確立します。

1. Easy MCUserを立ち上げて、MCUタブが選択されている事を確認する

2. 接続されるマイコン・ボードの接続形態をラジオ・ボタンによって指定する
接続される仮想MCUが1台のみの場合は「StandAloneMCU (AVR)」、複数台の場合は「MasterMCU (ARM)」のラジオ・ボタンをマウスでクリックして選択します。

スクリーンショット 2016-02-11 10.32.11

ラジオ・ボタンで仮想MCUを選択したら、次は「Connect」表示の右側にあるポップアップ・メニューをマウスでクリックし、接続先のポートまでマウスを移動します。マウスの移動によって接続ポートを選択したら、マウスをクリックして接続ポートの選択を確定します。
接続ポートが確定されると、Easy MCUserはマイコン・ボードとの通信を開始します。

スクリーンショット 2016-02-11 10.35.37

通信が確立出来た事を確認する Easy MCUserがマイコン・ボードとの接続に成功すると、Easy MCUserのメイン・ウィンドゥの下部に「Raad tranzaction was success !!」と表示されます。 もし、選択されたマイコン・ボードの接続形態が「StandAloneMCU (AVR)」なら、StandAloneMCU機能を搭載したマイコン・ボードとの通信が確立した事を示します。
もし、選択されたマイコン・ボードの接続形態が「MasterMCU (ARM)」の場合は、MasterMCU機能を搭載したマイコン・ボードとの通信が確立した事を示します。

スクリーンショット 2016-02-11 10.36.20

目次へ戻る
 
【仮想MCUのピン機能設定】
次に、仮想MCUの外部ピンに対して、どの様な機能を割り当てるのか設定をします。
1台のMCUを制御する場合と、2台以上の複数のMCUを制御する場合があります。それぞれ手順が若干異なるため、ケース分けして説明します。

1. 1台のMCUを制御する場合のピン機能の設定方法
先ほど選んだマイコン・ボードの接続形態が「StandAloneMCU(AVR)」の場合、「StandAlone/Master MCU PinMap」のグループ・ボックスの中に配置されている下段のポップアップ・メニューから仮想MCUの外部ピンに割り当てる機能をマウスで選択します。どの機能を割り当てるかは、マイコン・ボードと接続するセンサーやボードの搭載機能によって異なります。

ここでは、例としてマイコン・ボードの接続形態が「StandAloneMCU(AVR)」の場合で、AVRMCがサポートしている「LCD表示機」をEasy MCUserから制御する事にします。
下段のポップアップ・メニューをマウスでクリックすると、以下の様なメニューが表示されます。この中から「PWM + LCD」を選択します。すると、「TX HEX data」の右側のテキスト・エリアに新しい数字が表示されて、その後、「Tranzaction condition」の右側の表示が、「Raad tranzaction was success !!」になってたら、Easy MCUserから仮想MCUに対してのピン機能の設定が成功した事を示しています。

スクリーンショット 2016-02-11 10.37.23

スクリーンショット 2016-02-11 10.38.27

以上で、MCUを動かす準備が整いました。

2. 2台以上のMCUを制御する場合のピン機能の設定方法
2台以上のMCUを制御する場合、ハードウェア的にそれぞれのMCUが正しく接続されているかをEasy MCUが確認した上で、それぞれのMCUに対してピン機能の設定をする必要があります。
では、事前に接続されているMCUに対して、ハードウェア的に接続が正しい事の確認と、ピン機能の設定をEasy MCUserから実行してみましょう。そのために、「Tranzaction target MCU」ボックス中のラジオボタンの中から「Slave MCU (AVR)」をマウスで選択します。すると、ウィンドゥの右側にある「Slave MCU PinMap」ボックス中の複数のポップアップ・メニューが自動的に選択可能な状態となります。
選択可能になった全てのポップアップ・メニューに対してピン機能の設定を行います。(別段、特別な機能を外部ピンに設定する必要が無い場合は、そのままで結構です。)

ポップアップ・メニューによる設定が済んだら、次に、全ての「Slave MCU(AVR)」に対して実際に設定を行います。画面中央に「Scan Slave」ボタンも実行可能状態(マウスで押下出来る状態)となっているので、このボタンをクリックします。 すると、「Select Slave No.」ボックスの一番上のスレーブNo.から順番にEasy MCUserが自動でハードウェア的に問題が無いかを確認しつつ、同時にピン機能の設定をしてゆくのが確認出来ます。(これを「スレーブ・スキャン」と呼びます。)
全てのスレーブ・スキャンが終了すると、画面一番手前に「メッセージ・ボックス」が表示されて、通信の確率とピン機能の設定が成功したスレーブの数が示されます。又、この時、スキャンした結果、通信が確立出来たスレーブNo.のチェック・ボックスが選択可能状態になる事で、通信が確立したスレーブNo.の番号が一目で分かります。

以上で、MCUを動かす事が出る準備が整いました。

もし、「Slave MCU No.」をチェックして、ハードウェア的な接続に間違いが見つかった場合は、もう一度電源を投入する前に戻って「Slave MCU」の配線を繋ぎ直して、最初からここまでの手順を実行してみて下さい。もし、ハードウェア的に接続の間違いが見つからなかった場合は、別の動作不安定の問題があるかも知れません。半田付けやケーブルの一時的な問題かどうかを切り分けたい場合は、「Scan Slave」ボタンの左側にある、「CLR scan」ボタンをクリックした後で、再度「Scan Slave」ボタンをクリックして下さい。こうする事で、何度でもスレーブ・スキャンを試してみる事が出来ます。

さて、接続するMCUの台数が1台ならともかく、ここまでの操作をEasy MCUserを立ち上げてから毎回実施するのは少し面倒ですよね? Easy MCUserにはユーザーのGUI操作を覚えておいて、必要な時に何度でも実行するという機能が備わっています。この機能を使えば、複数台のMCUを操作するまでの準備も簡単に出来ます。この方法を学ぶためには、【GUI操作による録画・再生機能】のページをご覧下さい。

目次へ戻る


 
【GUI操作による録画・再生機能】
まず始めに覚えておいて頂きたいのが、EasyMCUserの特徴でもある「GUI操作による録画・再生機能」です。
この機能を使う事で、面倒な操作を何度も繰り返したりする事から解放されます。ぜひ一番最初に機能を覚えておいて下さい。
この機能を使うにあたって、面倒な準備は全く必要ありません。使い方は至ってシンプルです。
あなたが録画したいGUI操作を録画する前に、まるでビデオを録画するかの様に、録画ボタンを押すだけです。

スクリーンショット 2016-02-11 10.41.48

1. 録画/録画停止・ボタン:「○」「||」
ウィンドゥ上部には、「ScriptRec./Playcontrol」ボックスが配置されています。この中の一番左側のセグメント・コントロール・ボタンが、録画の開始と停止を制御するボタンです。
「○」をクリックすると録画を開始します。「○」がクリックされた後から「||」ボタンがクリックされるまで、GUI操作が「Script」タブ上のリスト・ボックスにどんどん追加されてゆきます。

(1)「○」(録画を開始)
(2)「||」(録画を停止)

2. 再生/再生停止ボタン:「>>」「>」「>!」「|←」「||」
各ボタンの機能について、以下に示します。主に手動で操作をする場合に使用します。スクリプトは、Easy MCUserと仮想MCUの制御をするための命令集とお考え下さい。作成した、又は、他の方が作成したスクリプトを取り込んで、ステップ・バイ・ステップで動作を確認したり、一気に実行したりするために、以下の機能をお使い頂けます。

(1)「
」 (繰り返し再生)
(2)「 >> 」 (スクリプトの最後の行まで一気に再生)
(3)「 > 」 (スクリプトを一行だけ再生して一時停止:ステップ実行)
(4)「>!」 (Break指定行までスクリプトを一気に再生して一時停止:ブレーク実行)
(5)「|←」 (再生開始・スクリプト行まで戻る)
(6)「 || 」 (強制停止)

3. 再生時間間隔・制御ボタン:「Wait mode」
「Wait on」(GUI操作と操作の時間間隔を忠実に再生する) 「Wait off」(GUI操作と操作の時間間隔を無くしてソフトが実行出来る限りの最短時間で再生する)

4. 回数設定:「Times」
再生のため「
」ボタンがクリックされると、事前に「Times」のテキスト・エリアへ設定された回数だけ録画されたスクリプトが繰り返し実行されます。 テキスト・エリアへの設定をEasy MCUserが正しく認識出来る様に、値を設定したら必ず「Tab」又は「Enter」キーを押下して下さい。

5. スタート実行番号:「Start Exe.No.」
最初に戻る・ボタン「|←」をクリックする前に「Start Exe.No.」のテキスト・エリアにスクリプトの実行開始行番号を設定しておくと、各・再生ボタン(「>>」/「>」/「>!」)「Start
Exe.No.」をクリックした時にその行番号からScriptが実行されます。 テキスト・エリアへの設定をEasy MCUserが正しく認識出来る様に、値を設定したら必ず「Tab」又は「Enter」キーを押下して下さい。

6. Failクリア・ボタン:「CLR Fail」
録画/再生とは直接関係がありませんが、スクリプトを再生する時の便利な機能であるため、ここで紹介をさせて頂きます。
再生を実行すると、スクリプトの中には仮想MCUやEasy MCUserはEasy MCUserの内部状態がとの様になっているか確認して、その結果に基づいて期待していた結果でない状態であった事をユーザーに表示により伝達する事が出来ます。この、期待していなかった状態を「Fail」と呼び、期待していない結果が何回発生したか、画面右上の「Fail count」のボックス内に表示が出来る様になっています。この値は保持されるため、Failの回数をそのままの状態にして、又最初からスクリプトを実行すると、スクリプトの内容によってはEasy MCUserが途中で間違った動作をしてしまう事にもなりかねないため、そうならない様にするために、Failの回数をクリアする(=すなわち、ゼロの戻す)事が出来る様になっています。「CLR Fail」ボタンをクリックする事で、この機能が実行されます。

7. 「Write Tab pannel script」チェック・ボックス
このチェック・ボックスも録画/再生の機能に直接は関係がありませんが、スクリプトを録画する時の便利な機能であるため、ここで紹介をさせて頂きます。
チェック・ボックスをマウスでクリックする度に、ボックスの状態がONとOFを繰り返します。ボックスにチェックが入っている状態で録画を開始すると、仮想MCUに搭載された機能をGUIで操作するために選択するための「Tab」の切り替え操作が録画されます。逆に、ボックスにチェックが入っていない状態で録画を開始すると、「Tab」の切り替え操作がは録画されません。「Tab」の切り替え自体が頻繁に行われるGUI操作の録画などで、「Script」タブで常にEasy MCUserの状態を確認しながら制御を実行したい場合などは、この機能をOFFして置く事で、「Tab」の切り替えをせずに効率的にスクリプトの動作確認が出来る様になります。使用する場面に合わせて、このチェック・ボックスを設定して下さい。

8. 「Conv.Bin.」チェック・ボックス
このチェック・ボックスも録画/再生の機能に直接は関係がありませんが、スクリプトを録画する時の便利な機能であるため、ここで紹介をさせて頂きます。
チェック・ボックスをマウスでクリックする度に、ボックスの状態がONとOFを繰り返します。チェック・ボックスにチェックが入っている状態で録画を開始すると、Easy MCUserから仮想MCUに対して通信を伴う制御を実行時「Conv.Bin.」チェック・ボックスにチェックが入っている状態で録画を開始すると、Easy MCUserは仮想MCUに対して通信を伴う制御の実行時に仮想MCUに対して組み立てたパケット・データを「Binary」タブ・パネル内にある「Binary Code」リスト・ボックスの中にも一時保存します。ユーザーはこの機能を使う事で、仮想MCUに対する制御の前に実行したIREGやPIOに設定したGUI操作を再生する(=再実行させる)事なく直接仮想MCUへ命令として実行させる事が可能になります。この機能は、仮想MCUの外部に接続される様々なデバイスの初期化をGUI操作の再生をする事なく、高速に行いたい場合などに使えます。又、後日リリースされる予定のFPGA版・仮想MCUのRTLシミュレーションをする場合のパケット・データとしてもご利用可能です。

バイナリー・データを保存したり、保存したバイナリー・データをスクリプトの中から呼び出す方法については、【Binaryパネル】のセクションを参考にして下さい。

目次へ戻る
 


【タブ・パネルの使い方】
Easy MCUser を立ち上げると、最初に「MCU」タブ・パネルが選択された状態となります。「MCU」タブ・パネル以外にも「Binary」,「Regs」,「CIREG adr.」,「PIO」,「SPI」,「Analog」,「PWM」,「LCD」,「Firm.」があります。ここからは、仮想MCUの機能として簡単にGIUから操作が出来る様に用意された、各タブ・パネルの持つ機能とその使い方を説明致します。

スクリーンショット 2016-02-11 10.42.54


目次へ戻る
 


【Scriptパネル】
スクリプト・パネルには、他人が作成したスクリプトを取り込んだり、自分で録画したスクリプトを保存したり、複雑な条件分岐判断などを組み込んだりするための編集をする機能があります。
下図は、スクリプト・パネルを広げた状態を示します。
画面上部の「Ver.が」表示されている場所のすぐ上にある「
▶︎」マークをクリックする事で、スクリプト・パネルの表示/非表示の設定が出来ます。

スクリーンショット 2016-02-11 10.24.18

下図は、スクリプト・パネル拡大図を示します。

スクリーンショット 2016-02-11 10.26.16

1. 「リスト・ボックス」(GUI操作を録画したスクリプトの一時保存場所

まずは、自分が実行したGUI操作を録画したスクリプトの保存方法から説明致します。録画/録画停止・ボタンの「○」がクリックされた後から「||」ボタンがクリックされるまでの間のGUI操作が「Script」パネル上に配置されたリスト・ボックスへどんどん保存されます。GUI操作の録画をスクリプトとして保存するための開始位置(リスト・ボックス上に保存されているスクリプトのどの行の後に録画された操作を示すスクリプトを挿入し始めるのか)は、ユーザーの操作によって自由に決める事が出来ます。

もし、特に何もユーザーがリスト・ボックス上に示されるスクリプトに対して操作をしなければ、ユーザーが操作した内容は、一番最後のスクリプトの後へ次々と付加されてゆきます。

もし、既にあるスクリプトの任意の行の直後にこれからユーザーが操作した内容を追加してゆきたい場合は、録画する前にリスト・ボックス中で挿入したい直前のスクリプトの行をマウスでクリック(=選択)しておきます。そうする事で、Easy MCUserはGUI操作を実行した結果として生成されるスクリプトをこの行の直後へスクリプトを順次追加します。

リスト・ボックス中に 「Select : Add / Remove command」ポップアップ・メニューから追加されたスクリプトは、1行単位のスクリプトと2行単位のスクリプトがあります。
スクリプトをどんどん追加してゆくに従い、2行単位のスクリプトは、ペアになるお互いの行が遠くなってくる傾向にあります。
ペアになるスクリプトの間に定義されたスクリプトの内容を確認する場合、画面上でスクロールをして確認する方法がありますが、それ以外の便利な操作方法として、ペアになるスクリプトの片側のスクリプトをリスト・ボックス中でユーザーがマウスでダブルクリックする方法があります。そうする事で、ペアの片側のスクリプトのある行までリスト・ボックスの表示を一気にスクロールしてくれます。ペアのスクリプトの最初と最後を効率良く確認出来ますので、覚えておくと便利な機能です。

2. 「Up/Down」アロー・ボタン
スクリプトの挿入位置を選択するための方法として、マウスで直接リスト・ボックス上のスクリプトをクリックする方法がありましたが、それ以外の方法として「Up/Down」アロー・ボタンを操作する方法があります。「Up」をマウスでクリックする事で、現在選択されているスクリプトの行数から"-1"した行数が選択されます。逆に、「Down」ボタンをマウスでクリックする事により、現在選択されているスクリプトの行数から"+1"した行数が選択されます。それぞれのボタンは先頭行と最終行に達する事で、その行に選択状態が保持されます。

3. 「Break」ポップアップ・メニュー
このポップアップ・メニューで「Break」のONとOFFを設定出来ます。「ON」を設定し、再生ボタン中の「>!」ボタンをクリックすると、スクリプトの中で「ON」が設定されたところまで一気にスクリプトが再生された後で一時停止します。通常、GUI操作による録画されたスクリプトの状態としては、「Break」の状態は全て「OFF」となっています。すなわち、再生ボタン中の「>!」ボタンで実行されても、「ON」が存在しない状態のため、最後の行までスクリプトが実行される仕組みになっています。

4. 「Select : Add / Remove command」ポップアップ・メニュー
このポップアップメニューには、GUI操作の録画機能で生成したスクリプトに対して、不要となったスクリプトの削除や、GUI操作では生成出来ないスクリプトを追加する機能があります。本ポップアップメニューで追加・実行可能なスクリプトは、大別すると以下に示される(2)〜(7)までとなります。これらのスクリプトをユーザーがGUI操作でリスト・ボックスで指定した行の次行に追加する事により、録画による再生に加えてさらに複雑な制御が仮想MCUに対して出来る様になります。

(1) 選択された1行のスクリプトを削除(Remove selected command)
ユーザーが事前にリスト・ボックス中にあるスクリプトの行を選択し、ポップアップ・メニューの中からこのコマンドを選択すると、選択されたリスト・ボックス中にあるスクリプトの行が削除されます。「If XXXXXXX then Fail」などの「If」文と「End If」文がペアになっているスクリプトについては、ペアのどちらの片側のスクリプトを削除してもペアとなるスクリプトが同時に削除される様になっています。

(2) バイナリー・スクリプトの追加(Add Binary script)
ユーザーが事前に「Binary」タブ中にある上段のリスト・ボックスの中からスクリプトに追加したい「Binary List」を選択し、ポップアップ・メニューの中からこのコマンドを選択すると、選択された「Binary List」に対応するバイナリー・データの送信命令が選択されたスクリプトの次の行に追加されます。

(3) Fail回数のクリア(Fail_count = 0) Failした回数をゼロに戻します。

(4) 状態比較判定+Fail回数の更新(If XXXXXXX then Fail)
If 文の後に続く「XXXXXXX」で示される式が条件として成立すると、Failした回数を+1します。

(5) 状態比較判定+繰り返し処理の実行(While (XXXXXXXXXX))
While文の後に続く「(XXXXXXXXXX)」で示される式が条件として成立すると、While 文の次の行からこのWhile文の終わりを示す「End While」までを条件が成立する間は繰り返し実行します。 While文の後に続く「(XXXXXXXXXX)」で示される式が条件として成立しなくなると、このWhile 文の終わりを示す「End While」の次の行へジャンプして、While 文の繰り返し処理から抜けます。

(6) 状態比較判定+実行行番号の変更(If_True_then_Execute_Below , If_False_then_Execute_Below)
「If_True_then_Execute_Below」は、このスクリプトが実行される直前のFailの回数がゼロであった場合に条件が成立したと判定し、このスクリプトの次の行からこのスクリプトの実行範囲の終わりを意味する「End If」スクリプトまで順次スクリプトを実行します。
「If_False_then_Execute_Below」は、このスクリプトが実行される直前のFailの回数がゼロ以外であった場合に条件が成立したと判定し、このスクリプトの次の行からこのスクリプトの実行範囲の終わりを意味する「End If」スクリプトまで順次スクリプトを実行します。

(7) 実行行番号の変更(Go_to_Label_line)
リスト・ボックスへこのスクリプトを追加すると、再生実行時に「Go_to_Label_line」文が追加されたスクリプトの次の行は実行されずに、「Go_to_Label_line」文とペアになる「Go_to_Label」文のあるスクリプトの行番号へ無条件でジャンプします。

5. 「Val.1」
Easy MCUserでは、スクリプトを再生する中でGUI操作で得られた各種設定値を「Val.1」と命名された属性に保存しておく仕組みになっています。
ユーザーは、録画して得たスクリプトの中で「Val.1」の属性が編集可能なものに限り「Val.1」に関係するテキスト・ボックスと「Width」ポップアップ・メニュー,アロー・ボタンを使って後から編集出来ます。

「Val.1」の属性を変更するためのアロー・ボタンは2種類あります。
左側のアロー・ボタンは、16進数でビット・シフトをするためにあります。上側のアロー・ボタンをクリックすると、リスト・
ボックス中で選択された行の「Val.1」で示される値が左シフト(数値が2倍)になり、下側のボタンをクリックすると右シフト(数値が1/2)になります。
左側のアロー・ボタンは、16進数でビット・シフトをするためにあります。上側のアロー・ボタンをクリックすると、リスト・
ボックス中で選択された行の「Val.1」で示される値が+1になり、下側のボタンをクリックすると-1になります。

6. 「Label name」
「Select : Add / Remove command」ポップアップ・メニューの操作によってユーザーが追加したスクリプトの属性としして、ユーザーが自由に設定出来る属性があります。この属性を設定する事で、たくさんのスクリプトを追加した場合でも、それらのスクリプトが何の目的で使われているかをイメージ出来る様に、「Label name」の属性に何か命名をして属性を付加する事が出来ます。

7. 「Rdat(Result data)」
「Rdat」は、EasyMCUserが仮想MCUの中にある汎用レジスタからデータを読み出した結果を表示するための属性でます。汎用レジスタは、色々な目的で使用される保管庫の様なものです。仮想MCUの中で演算や処理を実施した後の結果を一時的に保存したり、仮想MCUと外部に接続される様々にデバイスとのデータのやり取りに使用される、データの一時保管場所の様なところです。

8. 「Save Script mode」ポップアップ・メニュー
「Save Script mode」は、Easy MCUserからスクリプトをファイルに保存する際のセキュリティー属性を設定するためのポップアップ・メニューです。 メニューには「Only for me」と「For allowed users」があります。「Only for me」は、保存したスクリプト・ファイルを自分用にのみ使用出来る属性で保存する時に選択します。「For allowed users」は、保存したスクリプト・ファイルを他人も使用出来る属性で保存する時に選択します。「For allowed users」を選択してスクリプトを保存すると、スクリプト・ファイルと同時に「そのファイル名.cod」というたファイルも生成されます。
このファイルは、他の方にスクリプトを読み込んでもらう際に必要となるファイルです。もし、あなたが他の方にスクリプト・ファイルを提供する場合や、逆に他の方からスクリプト・ファイルを提供してもらう場合は、必ずセットでこれら2つのファイルをやり取りして下さい。これら2つのファイルを受け取った方は、必ずEasy MCUserのソフトがあるフォルダーに配置して下さい。

9.「Select : ReLabel / Save / Remove script」ポップアップ・メニュー
「Select :ReLabel / Save / Remove script」の中には、スクリプトを実行する前に必要なリ・ラベリング(スクリプトの並べ替えのチェック)と、リ・ラベリングを実行後にファイルへスクリプトを保存する「ReLabel and Save script」機能、そしてリスト・ボックス中の全てのスクリプトを完全にリスト・ボックスから削除する「Remove all script」を選択して実行する機能があります。
「」

(1) リ・ラベリング(ReLabel script)
ラベルは、ペアになるスクリプトのリスト・ボックス中で何行目に配置されているかを検出するための目印です。ユーザーがスクリプトの位置を編集する事により、「Select : Add / Remove command」ポップアップ・メニューから追加されたペアになった2行単位のスクリプトは、お互いの位置関係が編集を重ねるたびにどんどん変わってきます。リ・ラベリングは、この目印がどこに移動したかをEasy MCUserに教えてあげる操作となります。あなたの編集が一段落してスクリプトを実行する段階になったら、Easy MCUserが実行すべきスクリプトの順番を正確に把握出来る様にリ・ラベリングを実行して下さい。
「Load」ボタンによってScriptをロードしたら、必ず「Select : ReLabel / Save / Remove script」で「ReLabel 」又は、「ReLabel and Save script」を実行して下さい。


(2) リ・ラベリングと保存(ReLabel and Save script)
リ・ラベリングを実行すると同時にファイルに保存する場合、このメニューを選択して実行します。

(3) スクリプトの消去(Remove all script)
リスト・ボックス中に一時的に保存されている全てのスクリプトのリスト・ボックスから削除する場合に、このメニューを選択します。

11.「Fail stop」チェック・ボックス 「Fail stop」チェック・ボックスにチェックを入れると、Easy
MCUserがスクリプトを再生している中で、「IREG」パネル上のIREGの値を設定するためのテキスト・フィールドと仮想MCUの中にあるIREG(汎用レジスタ)からデータをリードしてそれぞれの値を比較した結果Failを検出した時にスクリプトの実行を停止します。このチェック・ボックスにチェックを入れないと、Failの検出の有無に関わらず、Easy MCUserはスクリプトの実行を最後まで行います。このチェック・ボックスにチェックを入れると、IREGの読み出しのみで実施可能な簡単な正常/異常(= Fail)の判定が実現出来ます。ご使用方法に合わせて、適宜チェック・ボックスにチェックを入れてご使用下さい。

12.「Load」ボタン
「Load」ボタンをクリックすると、ファイルを選択するためのウィンドゥが開きます。ここで選択したファイルがリスト・ボックスへ読み込まれます。もし、リスト・ボックスの中身が空の場合は、リスト・ボックスの先頭へスクリプト・ファイルの中身が読み込まれます。リスト・ボックスの中身が空で無い場合は、リスト・ボックスの中で選択された行の次の行へスクリプト・ファイルの中身が読み込まれます。

目次へ戻る
 


【Binaryパネル】
「Binaryパネル」は、各種メニューやボタンをGUIで操作した後でユーザーが保存した、仮想MCUへ送信するパケット・レベルの命令を実行するためにあります。


スクリーンショット 2016-02-11 10.30.29

1. 「Binary List」リスト・ボックス
このリスト・ボックスには、予め登録されたバイナリー・コードのリストが表示されます。ユーザーが「Binary List」リスト・ボックス内に表示されるバイナリー・コードのリストの中からバイナリー・コードを選択すると、このリスト・ボックスにバイナリー・コードの実態が表示されます。この状態でユーザーが、【Scriptパネル】内にある「Select : Add / Remove command」ポップアップ・メニューから「Add Binary script」を選択した時、「Binary List」リスト・ボックスで選択されたバイナリー・コードが【Scriptパネル】内にあるリスト・ボックスに実行されるバイナリー・コードとして埋め込まれます。

スクリーンショット 2016-02-11 11.09.40

スクリーンショット 2016-02-11 11.12.01

2. 「Selected Binary Code from Binary List」
リスト・ボックス ユーザーが「Binary List」リスト・ボックス内に表示されるバイナリー・コードのリストの中からバイナリー・コードを選択すると、このリスト・ボックスにバイナリー・コードの実態が表示されます。この状態でユーザーが、【Scriptパネル】内にある「Select : Add / Remove command」ポップアップ・メニューから「Add Binary script」を選択した時、「Binary List」リスト・ボックスで選択されたバイナリー・コードが【Scriptパネル】内にあるリスト・ボックスに実行されるバイナリー・コードとして埋め込まれます。

3. 「Converted Binary Code」リスト・ボックス
「Conv.Bin.」チェック・ボックスにチェックが入っている状態で録画を開始すると、Easy MCUserは仮想MCUに対して通信を伴う制御の実行時にパケット・データを「Binary」タブ・パネル内にある「Binary Code」リスト・ボックスの中へ一時保存します。ユーザーはこの機能を使う事で、仮想MCUに対する制御の前に実行したIREGやPIOに設定したGUI操作を再生する(=再実行させる)事なく直接仮想MCUへ命令として実行させる事が可能になります。この機能は、仮想MCUの外部に接続される様々なデバイスの初期化をGUI操作の再生をする事なく、高速に行いたい場合などに使えます。又、後日リリースされる予定のFPGA版・仮想MCUのRTLシミュレーションをする場合のパケット・データとしてもご利用可能です。

4.「CLR Bin.Code」ボタン
このボタンをクリックする事で、 「Converted Binary Code」リスト・ボックスに一時的に保存されたバイナリー・コードが全て削除されます。

5.「Save Bin.Code」ボタン
このボタンをクリックする事で、 「Converted Binary Code」リスト・ボックスに一時的に保存されたバイナリー・コードをファイルに保存します。このボタンをクリックするとウィンドゥが開くので、保存するファイルの名称を入力して保存をクリックして下さい。キャンセル・ボタンをクリックすると、ファイルの保存はキャンセルされます。

6.「Add Bin.Code」ボタン
このボタンをクリックするとウィンドゥが開くので、「Binary List」リスト・ボックス内に追加したいバイナリー・コード・ファイルを選択して下さい。バイナリー・コード・ファイルが選択されて「開く」ボタンをクリックする事で、「Binary List」リスト・ボックス内に表示されたバイナリー・コードのリストの最後尾にバイナリー・コード・ファイルが追加されます。但し、この状態では、一時的にバイナリー・コード・ファイルが追加されただけなのでご注意ください。

7.「Save Bin.List」ボタン
このボタンをクリックするとウィンドゥが開きます。こごで開いたウィンドゥの保存ボタンをクリックする事で、一時的に「Binary
List」リスト・ボックス内に追加されたバイナリー・コードのリストを「Easy_MCUser.scp」というファイル名で保存します。
ウィンドゥが開いた時にキャンセル・ボタンをクリックすると保存操作がキャンセルされます。

8.「Load Bin.List」ボタン
このボタンをクリックすると、自動的に「Easy_MCUser.scp」というファイルの内容を読み込んで、「Binary List」リスト・ボックスへ表示します。

目次へ戻る
 


【REGsパネル】
「REGsパネル」に配置された各ボタンやポップアップ・メニューの説明をする前に、「REGsパネル」の役割とEasyMCUserと仮想MCUがどの様にデータのをやり取りをしているかについて簡単に説明を致します。

スクリーンショット 2016-02-11 10.49.47

Easy MCUserが仮想MCUとデータのやり取りするための窓口となるのが「REGsパネル」です。
Easy MCUserと仮想MCUの間でやり取りされるデータの流れを図式化すると、以下の様になります。

「    Easy MCUser       」    「      仮想MCU          」
(MREG)<->(TREG)<->(CIREG) <-----> (IREG)<->(MCUの持っている様々な機能)
                  USB通信

USB-Serial通信 仮想MCUには、EasyMCUserとデータのやり取りをするために必要な、データの保管場所を持ってます。この保管場所は、一般的にレジスタと呼ばれています。仮想MCUの内部に存在するので、「内部レジスタ(略してIREG)」と今後は呼ぶ事にします。これに対して、パソコン上で動作するEasy MCUserも同様にレジスタを持っています。Easy MCUserには、3種類のレジスタがあります。

1つ目のレジスタは、仮想MCUのIREGとのデータのやり取りをする窓口となるレジスタで、「キャッシュド・IREG(略してCIREG)」と呼びます。今は、CIREGは仮想MCUのIREGをパソコン側に同じデータとしてもっておくためのレジスタであると理解しておいて下さい。
2つ目のレジスタは、一時的にデータを保存・利用するために使われるレジスタで、これを「テンポラリー・レジスタ(略してTREG)」と呼ぶ事にします。
ユーザーは、Easy MCUser上の「CIREG」に設定した値を仮想MCUの「IREG」へ送信する事で、仮想MCUを自由に制御出来る様になります。又、仮想MCUの「IREG」からEasy MCUser上の「CIREG」にデータを受信する事で、仮想MCUの状態を知る事が出来ます。さらにEasy MCUser内で「CIREG」から「TREG」へデータ転送した後に、データ間の比較や演算をする事で複雑な処理が出来る様になります。
3つ目のレジスタは、「TREG」の値に対して演算処理を行う目的で使用される専用のレジスタで、「マスク・レジス(MREG)」と呼びます。「MREG」は「TREG」との間で3種類の論理演算(and , or , xor)が出来ます。論理演算については、「Select Operation」ポップアップ・メニューのことろで説明をします。

では、「REGsパネル」の役割とデータの保管場所であるレジスタという考え方をご理解頂けたところで、各ボタンやポップアップ・メニューの説明に入ります。

1. CIREG関連の操作

(1) 「CIREG・選択」チェック・ボックス
このチェック・ボックスは全部で32個あり、CIREGのアドレスを選択するために使用します。このチェック・ボックスにチェックを入れる事で、仮想MCUとのデータのやり取りをするCIREGが指定出来ます。 全部で32個のチェック・ボックスがありますが、Easy MCUserが仮想MCUに対して1回の通信パケットで送信出来るレジスタのデータ数は16までという制約があります。従って、
16個以上のレジスタのデータを仮想MCUとの間で送受信する場合は、何回かに分けてレジスタのデータを送受信して下さい。

このチェック・ボックスにチェックを入れる事で、TREGとのデータのやり取りをするCIREGの指定が出来ます。
TREGとのデータ転送が出来るCIREGの数は1つだけとなります。又、CIREGとTREGの間でデータ転送をする場合は必ずビット幅を合わせてから転送する必要があります。例えばCIREGのデータを32ビット幅のTREGへ転送する場合、1つのTREGに対して4つのCIREGをチェックする必要があります。この時、チェックされたCIREGはレジスタ・アドレスの小さい方のCIREGの値がTREGのビット幅のbit[31:24]に転送されます。それ以外もレジスタ・アドレスの小さい方から順番にTREGのビットの小さい方へデータが8ビット単位で転送されます。

(2) 「CIREG・データ・比較値・設定/表示」テキスト・フィールド
このテキスト・フィールドは、「CIREG・選択」チェック・ボックスにチェックが入っている場合にのみ有効となります。このテキスト・フィールドは、CIREGからTREG又は仮想MCUのIREGへのデータ転送時、送信データの一時保管場所として機能します。
このテキスト・フィールドは、TREG又は仮想MCUのIREGからCIREGへのデータ転送時、受信データの一時保管場所として機能します。又、仮想MCUのIREGからCIREGへのデータ転送時(=「Select W/R」ポップアップ・メニューで「Read IREG」が選択された時)で、「Compare mode」ポップアップ・メニューの比較モードが選択されている場合は、このテキスト・フィールドに設定されている値が、IREGからデータを読んで来た時の値との比較値として機能します。

(3) 「Check all」ボタン
このボタンをクリックすると、全ての「CIREG・選択」チェック・ボックスにチェックが入ります。

(4) 「CLR check」ボタン
このボタンをクリックすると、全ての「CIREG・選択」チェック・ボックスからチェックが外れされます。

(5) 「CLR value」ボタン
このボタンをクリックすると、全ての「CIREG・データ・比較値・設定/表示」テキスト・フィールドに設定/表示された値が"00"
にクリアされます。

(6) 「Select operation」ポップアップ・メニュー
このポップアップ・メニューは、任意のレジスタに対する演算式を実行する目的で使用します。 例えば、メニューで「TREG0 = TREG0+TREG1」を選択すると、「TREG0」レジスタには、現在の「TREG0」レジスタの値と「TREG1」レジスタの値を加算した値が代入されます。

(7) 「Distination Reg.」ポップアップ・メニュー
このポップアップ・メニューは、レジスタ間のデータ転送における転送先・レジスタの設定に使用します。
例えば、「TREG0」レジスタに「TREG3」レジスタの値を代入したい場合、このポップアップ・メニューで「TREG0」を選択し、「Source Reg.」ポップアップ・メニューで「TREG3」を選択します。

(8) 「Source Reg.」ポップアップ・メニュー
このポップアップ・メニューは、レジスタ間のデータ転送における転送元・レジスタの設定に使用します。
例えば、「TREG0」レジスタに「IREG」レジスタの値を代入したい場合、このポップアップ・メニューで「IREG」を選択し、「Distination Reg.」ポップアップ・メニューで「TREG0」を選択します。

(9) 「Select W/R」ポップアップ・メニュー
このポップアップ・メニューは、「IREG」レジスタとの間でデータの送受信の方向の設定に使用します。「IREG」
に対してWriteとReadのどちらの操作を実行するかを設定する…とも言えます。 データの方向性については、別の表現があり、仮想MCUの「IREG」に対してデータを送信する事を「ライト(Write)」と表現し、仮想MCUの「IREG」からデータをもらって受信する事を「リード(Read)」と表現します。

(10)「Compare mode」ポップアップ・メニュー
このポップアップ・メニューは、「Select W/R」ポップアップ・メニューの選択状態が「リード(Read)」の場合に設定可能です。このポップアップ・メニューで、比較モードが選択されている場合は、このテキスト・フィールドに設定されている値が、IREGからデータを読んで来た時の値との比較値として機能します。個各モードは全部で6種類あります。基本的には、比較の条件が成立しなかった時にFailの回数を+1します。それ以外では何も起きません。

a. XX : 比較の結果、Failの回数を変更しません。 b. Rdat = Val1 : 「IREG」
= 「CIREG」(先の条件が不成立の場合、Failの回数を+1します。) c. Rdat > Val1 : 「IREG」
> 「CIREG」(先の条件が不成立の場合、Failの回数を+1します。) d. Rdat < Val1 : 「IREG」
< 「CIREG」(先の条件が不成立の場合、Failの回数を+1します。) e. Rdat >= Val1 : 「IREG」
>= 「CIREG」(先の条件が不成立の場合、Failの回数を+1します。) f. Rdat <= Val1 : 「IREG」
<= 「CIREG」(先の条件が不成立の場合、Failの回数を+1します。)

この成立/不成立の状態をうまく利用して、仮想MCUに対して色々な制御が出来ます。例えば、ADCには距離センサーが繋がっていたとしましょう。ADCの値を一定間隔で「IREG」を通してリードした時、ある値以下になったら、人が近づいてきたという事の判断に使えます。

(11) 「Execute」ボタン
「IREG」に対するライト/リードの設定が完了した状態で、ユーザーがこのボタンをクリックすると、Easy MCUserは仮想MCUに対してデータの送受信の要求をするためのパケットを送出します。このパケットがIREGに対するライトの場合、仮想MCUは、IREGにデータを書き込みます。このパケットがIREGに対するリードの場合、仮想MCUは、自身のところにあるIREGから取りだしたデータをEasy MCUserに送信します。

2. TREG関連の操作

(1)「TREG・16進データ」テキスト・フィールド(bit[31:24],bit[23:16],bit[15:8],bit[7:0]の設定/表示)
「TREG0〜3」に共通するこのテキスト・フィールドは、1つの「TREG」あたり4つのテキスト・フィールドで構成されています。
これら4つのテキスト・フィールドは、それぞれ8ビット分のデータを設定する目的で使用します。一番左側には最上位の8ビット分のデータ(bit[31:24])を設定,又は代入先として使用します。一番左から順番に、テキスト・フィールドにはそれぞれbit[23:16],bit[15:8],bit[7:0]の設定,又は代入先として使用します。
このテキスト・フィールドは、「TREG・整数データ」テキスト・フィールドの値がユーザー,又はスクリプトの実行によって変更された場合、自動的に整数データを16進数のデータへ変換された後で更新されます。

(2) 「TREG・整数データ」テキスト・フィールド(整数値の設定/表示)
「TREG0〜3」に共通するこのテキスト・フィールドは、整数値の設定を設定,又は代入先として1つのテキスト・フィールドで構成されています。このテキスト・フィールドは、「TREG・16進データ」テキスト・フィールドの値がユーザー,又はスクリプトの実行によって変更された場合、自動的に整数データを10進数のデータへ変換された後で更新されます。

(3) 「TREG・データ・ビットシフト」アロー・ボタン
「TREG・Width」ポップアップ・メニューの右隣に配置されたボタンです。
「TREG0〜3」に共通するこのアロー・ボタンは、上側のボタンをクリックする事で16進数で左シフトを実行し、下側のボタンで右シフトを実行します。シフトを実行する時のシフト方向の端には「ゼロ」が入力されます。例えば、"80 80 80 80"を、上側のボタンをクリックする事で左シフトすると「TREG・16進データ」テキスト・フィールドの値は、"01 01 01 00"に変化します。

(4) 「TREG・データ・±1」アロー・ボタン
「TREG・データ・ビットシフト」アロー・ボタンの右隣に配置されたボタンです。「TREG0〜3」に共通するこのアロー・ボタンは、上側のボタンをクリックする事で16進数で"+1"を実行し、下側のボタンで"-1"を実行します。最大値と最小値に対する操作は、「TREG0〜3」の属性に注意して実行して下さい。例えば、「TREG・Width」ポップアップ・メニューの状態が32ビット幅で「TREG」の値が"FF FF FF FF"の時に上側のボタンをクリックする事で16進数で"+1"を実行すると、桁上がり状態が発生して、演算結果は"00 00 00 00"となります。 又、「TREG・Width」ポップアップ・メニューの状態が32ビット幅で「TREG」の値が"00 00 00 00"の時に下側のボタンをクリックする事で16進数で"-1"を実行すると、借入れが状態が発生して、演算結果は"FF FF FF
FF"となります。

(5) 「TREG・Width」ポップアップ・メニュー
「TREG0〜3」に共通するこのポップアップ・メニューは、「TREG0〜3」それぞれのレジスタとしての属性である、ビット幅を設定するために使用します。

(6) 「CLR TREG」ボタン
このボタンをクリックする事で、「TREG0〜3」に設定されている全ての値が一括で「ゼロ」にクリアされます。

目次へ戻る
 


【CIREG adr.パネル】
「CIREG adr.パネル」は、デフォルトで設定されている「CIREG」のアドレスをユーザーが任意のアドレスに変更するためにあります。

スクリーンショット 2016-02-11 10.54.24

1. 「CIREG・アドレス選択」チェック・ボックス
このチェック・ボックスは全部で32個あり、【REGsパネル】に表示されているCIREGのアドレスをユーザーが任意のアドレスに変更する場合に使用します。このチェック・ボックスにチェックを入れる事で、チェック・ボックスの右側に配置さてれいる「CIREG・アドレス・設定」テキスト・フィールドが編集可能になります。
チェック・ボックスにチェックが入った状態で「CIREG・アドレス・設定」テキスト・フィールドを変更すると、【REGsパネル】
に表示されているCIREGのアドレスが同期して変更されます。この機能を使う事により、通常【REGsパネル】に表示されている「CIREG」のアドレスを自由に変更して、そのアドレスに対してライト/リードの制御が出来る様になります。 ユーザーはこの機能を使う事で、予めEasy MCUserのタブ・パネルに登録されていない機能が後から追加された場合でも、そのリビジョンのEasy
MCUserを使い続ける事が可能になります。

2. 「CIREG・アドレス設定」テキスト・フィールド
このテキスト・フィールドは全部で32個あり、【REGsパネル】に表示されているCIREGのアドレスをユーザーが任意のアドレスに変更する場合に使用します。このテキスト・フィールドを使う場合は、32個あるそれぞれのテキスト・フィールドの左側に配置されている,「CIREG・アドレス選択」チェック・ボックスにチェックを入れる必要があります。「CIREG・アドレス選択」チェック・ボックスにチェックが入った状態で「CIREG・アドレス設定」テキスト・フィールドを変更すると、【REGsパネル】に表示されているCIREGのアドレスが同期して変更されます。この機能を使う事により、通常【REGsパネル】に表示されている「CIREG」のアドレスを自由に変更して、そのアドレスに対してライト/リードの制御が出来る様になります。ユーザーはこの機能を使う事で、予めEasy MCUserのタブ・パネルに登録されていない機能が後から追加された場合でも、そのリビジョンのEasy MCUserを使い続ける事が可能になります。

スクリーンショット 2016-02-11 11.18.32

   ⬇︎

スクリーンショット 2016-02-11 11.16.24

   ⬇︎

スクリーンショット 2016-02-11 11.17.29

3. 「Check all」ボタン
このボタンをクリックすると、全ての「CIREG・アドレス選択」チェック・ボックスにチェックが入ります。

4. 「CLR check」ボタン
このボタンをクリックすると、全ての「CIREG・アドレス選択」チェック・ボックスからチェックが外れされます。

5. 「CLR value」ボタン
このボタンをクリックすると、全ての「CIREG・アドレス設定」テキスト・フィールドに設定/表示された値が"00"にクリアされます。

目次へ戻る
 


【PIOパネル】
「PIOパネル」は、仮想MCUの外部ピンの入出力をダイナミックに制御するためにあります。

スクリーンショット 2016-02-11 10.16.32

1. PIO制御1:制御可能なポート
AVRのPIOをホストから制御するためには、タブ・パネルの「PIO」を選択した状態にします。
「PIO」パネルの中にはマイコン・ボード(Arduino互換ボード)のコネクターと接続されているピンの属性が表示されます。
ハイライト表示されているbitが現在選択されたMCUモード時で制御可能なbitとなります。

2. PIO制御2:ポートの設定
各ポートの設定方法について説明します。 Arduino互換ボードの殆どはPORTB , PORTC , PORTDがユーザーに解放されています。これらのポートに対して制御するために、設定したいポートの各bitに対応するチェック・ボックスにチェックを入れます。チェック・ボックスにチェックが入れられると、チェック・ボックスの右側にあるプルダウン・メニューが設定可能な状態となります。

ポートの設定値の選択
「In(Pup)」  :プルアップ有り・入力,
「In」    :プルアップ無し・入力,
「Out(H)」  :ハイレベル・出力,
「Out(L)」  :ロウレベル・出力が設定可能です。

3. PIO制御3:便利なボタン制御機能
「PIO」パネルの中には、前ページで説明しました「Execute」ボタンの他に、「CLR port」ポップアップ・メニュー,「CLR check」ボタン,「CLR value」ボタンがあります。

「CLR port」ポップアップ・メニューは、クリアするポートの選択に使用します。 「CLR check」ボタンを押下すると、「CLR port」ポップアップ・メニューで選択されたポートに対してのみ現在チェックが入っているチェック・ボックスのチェックを解除する事が出来ます。
「CLR value」ボタンを押下すると、「CLR port」ポップアップ・メニューで選択されたポートに対してのみ現在設定されているポートの値を初期値である「In(P up)」:プルアップ有り・入力に設定する事が出来ます。

4. PIO制御の実行
ボードに対するポート制御コマンドの実行方法について説明します。
ポートの設定が全て完了したら、次に下図の赤枠に示される「Execute」ボタンを押下します。「Execute」ボタンが押下されると、
ホストからターゲットとなるMCUに対してポート制御コマンドが送信されます。
MCU側でコマンドが正しく実行されると、ウィンドゥの中央・下部に「Write transaction was success !!」が表示されます。

目次へ戻る
 


【SPIパネル】
「SPIパネル」は、仮想MCUがUART以外に持っているシリアル通信ポートとなるSPI端子の制御に使用します。

スクリーンショット 2016-02-11 11.03.09

1. SPI機能の属性設定:「Data order」
AVRのSPIをホストから制御するためには、まず始めに、タブ・パネルの「SPI」を選択した状態にします。

SPIの属性の中で、シリアル・データの出力順を設定するのが「Data order」です。 「Data order」には2種類あり、MSBからLSBに向かってシリアル・データを順番に出力してゆく「MSB first」と、LSBからMSBに向かってシリアル・データを順番に出力してゆく「LSB first」があります。
MCUと接続するデバイスの仕様に合わせて設定して下さい。

2. SPI機能の属性設定:クロック極性の属性設定
SPIの属性の中で、クロックの極性を設定するのが「Clock Polarity」です。 「Clock Polarity」には2種類あり、最初に出力されるクロックのエッジが立ち上りである「Leading Edge : rize / Trailing Edge : fall」と、最初に出力されるクロックのエッジが立ち下がりである「Leading Edge : fall / Trailing Edge : rize」があります。 MCUと接続するデバイスの仕様に合わせて設定して下さい。

3. SPI機能の属性設定:クロック対データ・位相の属性設定
SPIの属性の中で、クロック対データ・位相を設定するのが「Clock Phase」です。 「Clock Polarity」には2種類あり、最初に出力されるクロックのエッジでデータが取り込まれ、次のエッジでデータをセットする「Leading Edge : Latch / Trailing Edge : Setup」と、最初に出力されるクロックのエッジでデータをセットし、次のエッジでデータが取り込まれる「Leading Edge : Setup / Trailing Edge : Latch」があります。 MCUと接続するデバイスの仕様に合わせて設定して下さい。

4. SPI機能の属性設定:クロック周波数の属性設定
SPIの属性の中で、クロック周波数(転送レート)を設定するのが「Clock rate」です。 「Clock rate」は7種類あり、125[Kbps]〜8[Mbps]の範囲で設定が可能です。 MCUと接続するデバイスの仕様に合わせて設定して下さい。

5. SPI機能の属性設定6:転送先レジスタの設定
SPIの属性の中で、MCUと接続したデバイスとデータのやり取りをどの内部レジスタ・アドレスから順番に実行するのかを設定するのが「Select
Reg.」です。「Select Reg.」はIREG0〜31までが先頭レジスタ番号として選択出来ます。 「Select Reg.」で設定したレジスタ番号から順番に「Transfer count」で設定された転送回数分だけMCUはSPI通信を実行します。
「Select Reg.」で設定されたレジスタ番号に「Transfer count」で設定された転送回数を加算した結果,アクセス先のレジスタ番号が31以上となる場合は、IREG0に戻って順番に内部レジスタをアクセスします。

5. SPI機能の属性設定7:転送回数の設定
SPIの属性の中で、MCUと接続したデバイスとデータのやり取りを一度の実行命令で連続何回実行するのかを設定するのが「Transfer
count」です。「Transfer count」は1〜16までの範囲で設定出来ます。
MCUと接続されたデバイスのSPI通信パケット長が可変である場合,若しくは8[bit]でない場合、8[bit]の整数倍となる数値を「Transfer count」に設定する事で様々なパケット長のデバイスと通信する事が可能になります。

6. SPI転送の実行

「SPI機能の属性設定1〜8」の設定とMCUの内部レジスタへの転送データのセットが完了したら、「SPI」パネルの右側・下部にある「Execute」ボタンをマウスでクリックします。
MCUへの制御が成功すると、他のコマンドを実行した時と同様にウィンドゥ中央・下部に「Write transaction was success !!」が表示されます。

目次へ戻る
 


【Analogパネル】
「Analogパネル」は、仮想MCUに内蔵されているAD変換器及びDA変換器の制御をするためにあります。現在、DACの制御機能はまだ実装されておりませんが、バージョンアップで対応してゆく予定です。ここでは、現在実装されているADCの制御方法について説明致します。

スクリーンショット 2016-02-11 11.21.00

AVRのADCをホストから制御するためには、「Analog」タブ・パネルを選択した状態にします。

ADCの属性の中で、ADCがどのチャネルからアナログ信号を受け付けるかを選択するのが「ADC input channel」です。「ADC input channel」にch.0〜7,MCU内部温度,MCU内部バンドギャップ電圧,グランド電位があります。ハードウェアの構成と用途に合わせて選択して下さい。

1. ADC機能の属性設定:転送先レジスタの設定
ADCの属性の中で、MCUが内蔵するADCで取得したデータをどの内部レジスタ・アドレスから順番に保存するのかの設定をするのが「Start IREG No.」です。「Start IREG No.」はIREG0〜14までが先頭レジスタ番号として選択出来ます。ADCでアナログ値をデジタル値に変換する命令を送り終わったら、AD変換により取得したデータを「IREGs」パネルに戻って指定したIREGからリードしましょう。

2. 「Vref mode / Reference voltage」
ADCの属性の中で、ADCが使用する基準電位の設定をするのが「Vref mode / Reference voltage」です。「Vref mode / Reference voltage」により、基準電位を内部と外部から選択する事が出来ます。

基準電位を内部のバンドギャップ・リファレンスから生成した1.1[V]に設定する場合を以下に示します。
基準電位を外部のVrefに設定する場合、AVRボードの「AREFピン」に入力する電圧をテキスト・ボックスに設定して下さい。(初期値では上図の通り,5.0[V]が設定されます。)

3. ADC機能の属性設定:クロック・前置分周器の設定
ADCの属性の中で、ADCが使用する前置分周器による分周比を設定するのが「DIV_NUM」です。
AVRの外部X’talで発振したクロック周波数の分周を前置分周器で分周します。 「DIV_NUM」は1/1〜1/1024の範囲で設定が可能です。
AVRマイコンの特性上、10[bit]精度でADCを動作させるためには、「DIV_NUM」と「OCR0A」で設定された分周比によってADC fs(サンプリング周波数)が“9.6[kHz]”以下になる様に設定して下さい。

4. ADC機能の属性設定:変換インターバルの設定
ADCの属性の中で、ADCの変換インターバルを設定するのが「OCR0A」です。
「OCR0A」は赤枠で囲われたテキスト・フィールドです。直接数値を入力する事でも、スライダーをマウスで操作する事でも値を変更出来ます。

5. ADC機能の属性設定:サンプリング・モードの設定
ADCの属性の中で、サンプリング・モードを設定するのが「Sampling mode」です。 「Sampling mode」には、「Burst」,「One time」,「Continue」の3種類のモードがあります。

「Burst」サンプリング・モードは、ホストからのADCに対して変換命令が送信されると、fsで示されたサンプリング周波数で「Burst」ラジオ・
ボタンの右側にあるテキスト・フィールドに入力された値の数だけADC変換を実行して、指定された「Select Reg.」のレジスタ番号を先頭に変換データを格納します。
「Onetime」サンプリング・モードは、ホストからのADCに対して変換命令が送信されると、1回だけADC変換命令を実行し、指定された「Select
Reg.」のレジスタ番号に変換データを格納します。

「Continue」サンプリング・モードは、ホストからのADCに対して変換命令が送信されると、継続的にADC fsで示されたサンプリング周波数で変換実行前に設定された「Select Reg.」のレジスタ番号を先頭に変換データを格納します。変換データが8回を超えると、「Select Reg.」で設定したレジスタ番号に戻って変換データを格納します。

6. ADC・変換命令の実行
「ADC機能の属性設定1〜6」の設定が完了したら、「ADC」パネルの右側・下部にある「Execute」ボタンをマウスでクリックします。
MCUへの制御が成功すると、他のコマンドを実行した時と同様にウィンドゥ中央・下部に「Write transaction was success !!」が表示されます。
ADCでアナログ値をデジタル値に変換する命令を送り終わったら、AD変換により取得したデータを「Start IREG No.」ポップアップ・メニューで指定したIREGのアドレスからデータをリードしましょう。IREGのリードは「IREGs」パネルに戻って実行します。

7. ADC・停止命令の実行
ADCのサンプリング・モードが「Continue」で継続的にADCを実行させている時、ユーザーがマニュアル操作によりADCの変換を停止する場合には「Stop」ボタンを押下します。
MCUへの制御が成功すると、他のコマンドを実行した時と同様にウィンドゥ中央・下部に「Write transaction was success !!」が表示されます。


目次へ戻る
 


【PWMパネル】
「PWMパネル」を使用するためには、「MCUパネル」で【仮想MCUのピン機能設定】を実行する時に、「Motor only」,又は「PWM only」若しくは「PWM + LCD」を選択します。

「Motor only」を選択すると、1つの仮想MCUで3軸のステッピング・モーター制御が出来ます。(但し、各モーターは排他制御となります。完全に非同期で制御したい場合は、複数台の仮想MCUで制御して下さい。)
「PWM only」若しくは「PWM + LCD」を選択すると、「PWM」の制御が可能になります。

スクリーンショット 2016-02-11 13.15.12

1. Motor制御:モーターの選択
ステッピング・モーターを制御するためには、下図の様に、タブ・パネルの「PWM」を選択した状態にします。
「PWM」パネルに切り替えたら、まず始めに「Slect Motor」プルダウン・メニューにより、モーターの選択をします。モーターには「Motor (X)」,「Motor (Y)」、「Motor (Z)」の3種類があります。3種類の中から、制御したいモーターを選択して下さい。

AVRMCでは、1つのMCUで排他的に3軸のモーターを制御可能です。想定するモーター・ドライバーはA3967となります。
詳細はファームウェア設計仕様書を参照して下さい。

スクリーンショット 2016-02-11 13.27.50

(1) Motor制御:動作状態の設定
モーターの動作状態を決定するためには「Oparation state」グループを設定します。 「Oparation state」グループには「Sleep」チェック・ボックス,「Enable」チェック・ボックスがあります。それぞれのチェック・ボックスにチェックを入れる事で、AVRMCがサポートするモーター・ドライバー(A3967)のSleep端子とEnable端子が有効状態となります。

「Enable」にチェックを入れると、モーターは回転状態に遷移させる設定をした事になります。「Sleep」を有効にすると、A3967は低消費電力モードに遷移させる設定をした事になります。
「Oparation state」グループの設定を終えても直ぐにモーターが反応する事はありません。「Execute」ボタンを押下する事で、ホストから命令が送信されて、初めてモーター制御が実行されます。
「Oparation state」の「Sleep」にチェックが入っていると、「Enable」にチェックが入っていてもA3967の仕様により「Sleep」が優先されてモーターはスリープ状態を保持します。

(2) Motor制御:回転方向の設定
モーターの回転方向を決定するためには「Direction of rotation」グループを設定します。 「Direction of rotation」グループには「Left」チェック・ボックス,「Right」チェック・ボックスがあります。それぞれのチェック・ボックスにチェックを入れる事で、AVRMCがサポートするモーター・ドライバー(A3967)はモーターの回転方向を左回転と右回転に制御します。
「Direction of rotation」グループの設定を終えても直ぐにモーターが反応する事はありません。「Execute」ボタンを押下する事で、ホストから命令が送信されて、初めてモーター制御が実行されます。

(3) Motor制御:ステップ・インターバルの設定
モーターのステップ・インターバルを決定するためには「OCR1A」(カウンター・タイマー・チャネル“1”)及び、「DIV_NUM」を設定します。
「OCR1A」を設定する方法は2通りあります。テキスト・ボックスに直接設定値を入力する方法と、スライド・バーで設定する方法です。
いずれの設定方法でも、ステッピング・モーター・ドライバーへコマンドを送るインターバルを設定出来ます。
「DIV_NUM」はMCUの源発振クロックを何分周の値で前置分周するかを決定します。設定範囲は、1/1〜1/1024までの範囲が選択可能です。
「OCR1A」及び「DIV_NUM」を乗算した値がMCU からA3967へコマンドを送信する時間間隔,すなわちステップ・インターバルとなります。

(4) Motor制御:マイクロ・ステップの設定
A3967はマイクロ・ステップ動作制御が可能なモーター・ドライバーです。A3967に対してマイクロ・ステップの分解能を設定するためには「Micro Step」を設定します。設定分解能の範囲は、4〜32[step]となります。

(5) Motor制御:回転モードの設定
モーターの回転動作モードを決定するためには「Rotation mode」を設定します。 「Rotation mode」には2種類のモードがあります。1つは「Continue」モードで、このチェック・ボックスにチェックを入れると、後ほど説明する「Execute」ボタンでコマンドを実行すると、A3967に対して前ページまでで設定した各設定を継続的に送信し続けるモードです。
もう一つは「Step」モードで、A3967に対してユーザーが指定した回数だけコマンドを送信するモードです。「Step」チェック・ボックスの下に位置するテキスト・フィールド に設定されたステップ数だけモーターが動きます。

(6) Motor制御コマンドの実行
モーターに関する各設定が完了したら、設定内容をA3967に反映させるため制御コマンドをMCUに対して送信します。
モーターの制御コマンドの送信は、「Execute」ボタンを押下する事で実行されます。

(7) Motor停止コマンドの実行
モーターが回転中、全てのモーターを緊急停止したい場合は「Reset all」ボタンを押下する事で全てのモーターの停止が可能です。
この時、全てのモーターに対して「Operating state」が自動的に「Sleep」に設定された状態で制御コマンドがMCUに送信されます。

2. PWM機能の設定
PWMの機能を使う場合は、「MCUパネル」で【仮想MCUのピン機能設定】を実行する時に、「PWM only」若しくは「PWM + LCD」を選択します。
「PWM + LCD」を選択すると、AVRMCの仮想MCUが対応しているハードウェアであれば「LCD」のバックライト(明るさを制御するLEDライト)の明るさを変える事が出来る様になります。

スクリーンショット 2016-02-11 13.16.10

PWM機能の使い方は、モーター制御機能の使い方と一点だけ、異なる点がありますが、その他は基本的に変わりはありません。
その一点だけ異なる点についてここでは説明を致します。
下図は、PWM機能を使うために「PWMパネル」を開いたところです。このパネルの中で、「OCR1A」と「OCR1B」の時間をスライダー・バーで設定出来る様になっています。モーター制御機能では、「OCR1B」の設定は自動的に「OCR1A」で設定された時間の1/2になりましたが、ここをユーザーが任意の値に設定する事で、パルス波形のオンしている時間とオフしている時間の比(= デューティー比)を変える事が出来る様になり、デューティー比を大きくすれば、PWMによってオンしている時間が長くなりLEDランプが明る見えます。逆に、オンしている時間を短くすれば、LEDランプが暗くなって見えます。
(明るくなって見える…とか、暗くなって見える…とかの抽象的な表現は、どこから来るのでしょうか? 「PWM 残像」で調べてみてください !)

ちなみに、下図は、LEDランプを暗くした時の状態です。

スクリーンショット 2016-02-11 13.39.49

    ⬇︎

IMG_0260


下図は、LEDランプを明るくした時の状態です。

スクリーンショット 2016-02-11 13.48.16

    ⬇︎

IMG_0261


目次へ戻る
 


【LCDパネル】
「LCDパネル」は、LCDへの表示制御に使用します。Easy MCUserがサポートしているLCDはキャラクター・LCDです。表示文字数は、16*2,20*4 のタイプを制御出来ます。

スクリーンショット 2016-02-11 13.52.55

1. 「LCD type」ポップアップ・メニュー
このポップアップ・メニューは、LCDの表示文字数の設定をするためにあります。このポップアップ・メニューが設定されると、LCDの初期化が行われてLCDの画面がクリアされます。

2. 「Cursor setting」ポップアップ・メニュー
このポップアップ・メニューは、LCDにどの様なカーソルを表示するかを設定するためにあります。メニューには「Cursor off」,「Cursor on」,「Cursor blink」の3種類があります。

(1) 「Cursor off」 : カーソルを非表示にします。
(2) 「Cursor on」 : カーソルを表示します。
(3) 「Cursor blink」: カーソルを点滅・表示にします。

3. 「Edit mode」ポップアップ・メニュー
このポップアップ・メニューは、GUIでLED制御をしている間にLCDの表示制御を行うかどうかの設定をするためにあります。メニューには「Set Immedietry」,「Move then set」の2種類があります。

(1) 「Set Immedietryf」: GUIによるカーソルの移動操作を行った瞬間にLCDへのカーソル位置の変更を反映させます。
(2) 「Move then set」 : GUIによるカーソルの移動操作を行った後で、「Set cursor」ボタンをクリック事でLCDへのカーソル位置の変更を反映させます。

4. 「十字ボタン」
このボタンは、カーソルを1文字分ずつ上下左右に移動するためにあります。クリックするたびに1文字分・カーソルが移動します。

5. 「Go home」ボタン
このボタンをクリックすると、カーソルは瞬時にホーム(X=0 , Y=0 の位置)へ移動します。

6. 「Set cursor」ボタン
このボタンは、Edit mode」ポップアップ・メニューで「Move then set」が選択状態にある時にGUIによるカーソルの移動操作がLCDへ反映させる機能を持っています。

7. 「Character List」リスト・ボックス
このリスト・ボックスは、Easy MCUserを立ち上げた時に、Easy MCUserの存在するフォルダーと同じ所にある「LCD_character.txt」に書かれた文字列を読み込んでユーザーが文字列の選択を出来る様にします。「LCD_character.txt」は、ユーザーが使用するLCDの仕様に合わせて独自の文字列を定義する事が出来ます。
ユーザーは、読み込まれた文字列の中から任意の文字列をマウスでクリックする事で選択状態とした後で、「Set Char.」ボタンをクリックする事で、仮想MCUへ任意の文字列をLCDヘ表示制御するための命令が送信されます。

8. Set Char.」ボタン
「Character List」リスト・ボックスに読み込まれた文字列を選択状態にした後「Set Char.」ボタンをクリックする事で、仮想MCUへ任意の文字列をLCDヘ表示制御するための命令が送信されます。


目次へ戻る
 


【Firm.パネル】
「Firm.パネル」は、仮想MCUを搭載したマイコン・ボードへのファームウェア書き込みを実行する時に使用します。
現在、Easy MCUserを使って書き込みが出来るMCUはAtmel社のATmega168p/ATmega328p/ATmega2560です。
この機能をご利用になるためには、事前に書き込み用のソフトウェアとドライバーをパソコンにインストールして下さい。
MacとWindowsでは事前にインストールしておくべきソフトウェアが異なりますので、詳細につきましては、
こちらのベージを参考にして下さい。

スクリーンショット 2016-02-11 12.02.11

1. 「Select Firmware Writer」ポップアップ・メニュー
このポップアップ・メニューは、ユーザーがマイコン・ボードに搭載されているMCUのファームウェアを書込み器で書込む時に使用します。
メニューには、書込み器の種類があり、「Atmel AVR ISP mkII」と「USBasp」が選択出来る様になっています。お手元に用意された書込み器に合った物を選択して下さい。

2. 「Select MCU」ポップアップ・メニュー
このポップアップ・メニューは、ユーザーがマイコン・ボードに搭載されているMCUのファームウェアを書込み器で書込む時に使用します。
メニューには、書込みをするMCUの種類があり、「AVR ATMega168p」,「AVR ATMega328p」,「AVR ATMega2560」が選択出来る様になっています。 現在、Easy MCUserから書き込みが出来る仮想MCUの種類としては、AVRマイコンのみとなっています。 AVRマイコンは、「StadAlone MCU」,「Slave MCU」として使用されます。「Master MCU」の書き込みは、ARMマイコンの書き込み環境で書き込みをします。ARMマイコンの書き込み環境としては、無償でmbedから提供されている書き込み環境で書き込みをして下さい。mbedの書き込み環境は大変素晴らしく、書き込みデータをパソコン上でドラッグ&ドロップで簡単に実行出来る様になっています。(ARMマイコンの書き込み方法は、別途・こちらに掲載しましたので参考にして下さい。)

3. 「Enable「Update Firm.」button !」チェック・ボックス
このチェック・ボックスは、書き込み環境を有効にするためにあります。Easy MCUserの画面上のボタンなどのご操作を回避するために、AVRでは二段階の操作によって、初めてマイコンへの書き込みを実行する様にしています。
書き込みを実行するためには、 「Update Firm.」ボタンをクリックする前に、このチェック・ボックスにチェックを入れて下さい。

4. 「Update Firm.」ボタン
このボタンは、マイコン・ボードに搭載されているMCUのファームウェア書き込みを実行するためにあります。このボタンは「Enable「Update Firm.」button !」チェック・ボックスにチェックを入れる事でユーザーがクリック出来る状態になります。このボタンをクリックすると、Easy MCUserのフォルダー直下にある「AVR_firmwware」のフォルダーの中にある「main.hex」を書き込みソフトとドライバー・ソフトが認識して書き込みを開始します。

「Atmel AVR ISP mkII」をお使いの場合、パソコンのUSBケーブルに「Atmel AVR ISP mkII」を接続し、マイコン・ボードの書き込み専用コネクターに正しく接続がされていると、緑のLEDが点灯します。もし、LEDが点灯しない場合は、書き込みソフトとそのドライバー・ソフトが正しくインストール出来ていない可能性があります。その様な場合は、パソコンの環境を再度ご確認下さい。このボタンをクリックして、書き込みが始まると、書き込み機の内部・中央付近のLEDの色がオレンジ色に点滅した後で、緑色に戻ります。

「USBasp」をお使いの場合、パソコンのUSBケーブルに「USBasp」を接続し、マイコン・ボードの書き込み専用コネクターに正しく接続がされていてもLEDの表示状態は変わりません。このボタンをクリックして、書き込みが始まると、書き込み機の内部にある緑色に点灯したLEDのすぐ横にあるLEDが赤色に点灯した後で消灯します。

スクリーンショット 2016-02-11 12.06.12

いずれの書き込み機を使っても書き込みが完了すると、画面・下部のテキスト・フィールドに書き込みが完了した事を示すメッセージか、Windows番の場合は"Shell timed out"と表示される事がありますが、書き込みは書き込み機のLEDの点灯状態で正常に書き込みが出来た事が確認出来ます。

スクリーンショット 2016-02-11 11.57.19

書き込みが完了しましたら、一度、Easy MCUserを終了して、書き込み機も取り外します。取り外しが完了しましたら、再度Easy MCUserを立ち上げて下さい。

目次へ戻る