UMEHOSHI ITA TOP PAGE COMPUTER SHIEN LAB
umehoshiEditの使い方の情報は、このページにもあります。 ソースのダウンロードはここにあります。
[UMEHOSHI ITA]の制御で使っているIC「PIC32MX270F256B-I/SO」のフラッシュメモリには、テスト用プログラムが書き込まれいています。
以降では、このプログラムを「テスト・ウメ・フラッシュ」と呼ぶことにして解説します。
また、「テスト・ウメ・フラッシュ」を利用したユーザー用のプログラムを「ウメ・エディットプログラム」
と呼ぶことにします。
UMEHOSHI ITA を利用したプログラミング例(「ウメ・エディットプログラム」) を行うためには、次の準備が必要です。
以下では、[UMEHOSHI ITA]に記憶されるテスト用のプログラムを利用してLEDとモータ部ON・OFFするまでの例まで示しています。
[UMEHOSHI ITA]に記憶されるテスト用のプログラム詳細は、ここを参照してください。
umehoshiEditは Windows PCにおいて、次のようなイメージでC言語もどきによるプログラミングを行うツールです。
これを使って UMEHOSHI ITA のUSB通信用プログラムなど連携する作品を作ることができます。
この「umehoshiEdit」ツールは、
このリンクからumehoshiEditW22.zipをダウンロードしてご利用できます。
これを任意の箇所に解凍するだけですが、コンパイラは含まれておりません。
(なお、umehoshiEditW22.zipに含まれる「umehoshiEdit.exe」が起動ファイルで、実行イメージは下のようになります)
なお、コンパイラ「MPLAB XC32 (Free C compilers)」を、後述の手順で別途にインストールしてください。
これは、「.NET Framework 4.5」をターゲットフレームワークとしてビルドされており、
それ以上の「.NET Framework」フレームムワークの環境が必要です。
動作しない場合は、
「.NET Framework 4.8 Framework Runtime」のインストーラ
をこのリンクから入手して使ってください。)
また、「umehoshiEdit.exe」のソース群からご自分でビルドされたい方は、
この解説 補足ページからダウンロードできます。
次に、下記手順でコンパイラ「MPLAB XC32 (Free C compilers)」をダウンロードします。
上記スクロールして進むと、「MPLAB XC32」列内の 「v2.20 (WIN) (5/17/19)」 のリンククリックのダウンロードで、 「xc32-v2.20-full-install-windows-installer.exe」が得られるでしょう。
インストールする位置はデフォルト と違いますが、上記に合わせて「C:\Microchip\xc32\v2.20」となるようにインストールします。
ボタン操作で、インストールの進行手順を示します。
展開する位置はどこでも構いませんが、Microchip社関連のツールをまとめて置きたいので、私の場合は「C:\Microchip\xc32\」のフォルダを作り、
ここの中に展開しています。(空白のパスを含まない所に展開してください)
そして、前述で得た「umehoshiEdit」フォルダを、「C:\Microchip\」フォルダ内に移動してまとめるとよいでしょう。(以降はこの環境で解説しています)
起動は、解凍した[umehoshiEdit]のフォルダ内の実行コマンド「umehoshiEdit.exe」ファイルをダブルクリックなどで開きます。
(自己認証なので、初期起動でセキュリティ警告が出ます。
信用して「詳細情報] をクリックして [実行] をクリックするとブロックが解除されます。
信用できない方は、別途ソースファイル群をダウンロードしてソースを確認し、ビルドしてお使いください。)
umehoshiEditは、上記で取得したコンパイラを利用します。
(内部でビルド用バッチファイルを生成し、これを実行することで「UMEHOSHI ITA」に転送する[.hex]ファイルを作ります。)
よって初めて使う場合は、次のように「build]メニューの[setteing sdk tool path」項目を選択して、
上記でインストールしたコンパイラ環境のパスを指定します。
上記では、「C:\Microchip\xc32\」内に展開した[v2.20]コンパイラ環境を選択しているイメージです。
上記で、「umehoshiEdit」の中にある「samples」の中の「1_sample」を選択し、左に出現した
リストの[1.c]をダブルクリックした画面が次のイメージです。
(このプログラムは、LED1の点灯のON⇔OFFと、CN6,CN7の電圧の正⇔負の電圧印加を、実行ごとに切り替えるプログラムです。)
左側リストビュー内のファイルをダブルクリックすることで、そのファイルを中央の編集画面に表示します。
拡張子が[.c]または[.S]のソースファイルを編集画面に表示している状態で、
[Build]メニューの[Build]項目を選択で、ビルドします。
これで、ビルドした時の情報がウインドウ下部の[mesage]タブに表示されます。以下はビルドが成功した画面です。
(エラーは、この[mesage]タブの表示内容から判断してください。)
この実行で、「1.c.bat」が作らて、それを内部で実行し、
「1.s」→「a.lst」,「a.o」→「a.map」,「a.elf」→「a.lst.txt」と生成します。
そして「a.lst.txt」から「1.c.hex」が作られます。
この「1.c.hex」が[UMEHOSHI ITA]に転送する専用のHEXファイルです。
(この過程で作られるa.lst,a.o,a.map,a.elf,a.lst.txtは、一時的なファイルで、他のソースのビルドで上書きされます。
各ファイルに興味がある方は、「1.c.bat」内容と[コンパイラ環境]フォルダ内のドキュメントをご参照してください)
「umehoshiEdit」ツールの左側リストビューのルートをダブルクリックすると、リストビューで見えるようになります。
(上記例で、1_sampleのフォルダをダブルクリックで、1.c.hexなどが見えるようになっています)
(下記イメージの16進数群の値は、バージョンによって変わる可能性があります)
まず、「umehoshiEdit」ツールを動かいているPCと「UMEHOSHI ITA」をUSBで接続します。
そして、デバイス マネージャー(エクスプローラのPC右クリックより)を次のCOMポートの確認します。
(これは、115200bps Parity無し 8bit 1StopBits 固定のシリアルポートです。)
上記例では、USB Serial Port(COM3)が確認できます。
それに合わせて、「umehoshiEdit」ツールのUSBポートの選択設定を次のように行います。
[communication]メニューの[Check COM]項目を選択で、使えるCOMポートをサーチする。
上記に続いて、デバイス マネージャーで確認したCOMポートを選択します。この例では、COM3を選択しています。
上記で正しく選択できれば、このCOMポートを介して、
「UMEHOSHI ITA」にプログラムやデータやコマンドなどの転送、
「UMEHOSHI ITA」内のメモリ内の所得、
メモリ内の絶対アドレスを指定して、その関数を起動呼び出すことができます。
「UMEHOSHI ITA」へのプログラム転送は、そのファイルを中央の編集画面に出す必要があります。
そして、[communication]メニューの[Hex Send]項目を選択します。
「UMEHOSHI ITA」のデフォルトでは、受信した文字を送り返すエコーモードになっています。
そして、「umehoshiEdit」ツールは受信した情報を下部の[Communication]タグに表示します。
この受信情報の例が上記イメージで表示されています。
Sから始まる文字列が、「UMEHOSHI ITA]へ送る指示のコマンド文字列です。
それがエコーモードで表示しています。このコマンドの応答としてSETから始まる文字列を受信しています。
なお、簡単に意味を説明します。
S10800050B000446B827C206162A421E8C0030400BE8F64
これは、S10で16個のデータが続くことを意味する命令で、種別を表す2文字、
続く800050B0が設定開始の絶対アドレス、
その次に16個のデータが並んでいます。
詳細は、UMEHOSHI IT] 基板のテスト用プログラム仕様を参照してください。
なおこのメモリ設定命令の実行に対して、[UMEHOSHI ITA]基板の応答情報がSET:800050B0です。
上記のC言語ソースで次の記述がありますが、これはtest関数の配置を絶対アドレス0x80005000に設定する指示です。
__attribute__((address( 0x80005000 ))) void test (void);
void test()
{
この関数testを呼び出し実行する場合は、[communication]メニューの[Command exec]項目を選択します。
これでメニューバーのすぐ下の箇所に、「Execute Address」の入力欄と、「Execute」ボタンが現れます。
この入力欄に関数絶対アドレスの0x80005000を入力して「Execute」ボタンを押したイメージを下記に示します。
D1のLEDを半田付けしている場合、それに繋がっているのが「_RB15 」のポートです。
_RB15 = ! _RB15; // 反転
のコードは、
「Execute」ボタンを押すと、LEDが消灯していれば点灯し、点灯していれば消灯と、
押すごとに切り替えする命令です。
(「Execute」ボタンを何度かクリックして、その都度LEDの状態が変わります。同様にモータの切り替えも行っています。)
なお、上記の「Communication」のメッセージでR00800050000061を送っているのが分かります。
またSTART:80005000のメッセージが実行時の応答メッセージです。
なお、ビルドによってどんなマシン語が生成されているかを 確認することができます。
ビルドが成功している場合、「a.lst.txt」のファイルにアセンブラとマシンコードが記録されます。
上記のC言語ソースの場合のtest関数の先頭アドレス部分を確認しているイメージを下記に示します。
[umehoshiEdit]には、新規プロジェクトを作る機能は用意しておりません。
最終的には、[UMEHOSHI ITA]に埋め込む転送用ファイル「拡張子.hex」を作ることが目標です。
そして、一つのソースファイル(.cまたは.S)に対して、一つのUME用HEXファイルがビルドで作られることになります。
なお、UME用HEXファイルは、ソースファイルの名前に「.hex」が付いた名前で、ソースと同じフォルダ内に生成されます。
その意味で、一つの作品用に一つのフォルダを用意して、その中にソースファイルを置いて、ビルドでそのフォルダ内にUME用HEXファイル
を生成させるのがよいでしょう。
[umehoshiEdit]には、フォルダを作る機能はないので、環境内に存在している[samples]内の適当な既存のプロジェクト用フォルダを複製して
、自身のプロジェクト用に名前を変更して使うのが良いでしょう。
なお、複製したプロジェクト用フォルダ内に
「common.h」と「mylinkerscript.ld」のファイルがありますがこの2つのファイルは、
ビルドで必要なファイルなので削除や変更しないように注意してください。
以下に各サンプルの説明に対するリンクを示します。
各種確認プログラム | 左記に必要な部品の追加例 |
---|---|
(D1のLEDを使う) | |
とくに必要ありません。 (D1のLEDは、あるとよい) | |
PWM対応の部品追加例 | |
ADC 対応の部品追加例 | |
BEEP SWITCH 対応の部品追加例 | |
Reset SW, Type-A, CN2 部品追加例 | |
U20,D4,D5,NPN, D3 部品追加例 | |
CN11,CN-12 部品追加例 | |
U19(ESP32) 部品追加例 | |
U17にRN4020の部品を追加する例 |