2017年5月7日日曜日

こんにちはTWELITEその1(シリアル通信とファームウエア書き換えをOSXで行いたい)

ArduinoでパワーMOSFETを使ってみるのその2の前に割り込み企画

この連休中はセンサーの値を無線で飛ばしてLCDで表示したくてTWELITEはじめてみました.

とりあえず以下の3つを入手
TWELITE DIP(DIP基板用TWELITE)
MONOSTICK(USB接続用TWELITE)
TWELITE R(TWELITE書き込み用基板)
しました.
参考書籍は
TWE‐Lite(トワイライト)ではじめるカンタン電子工作を入手.

TWELITE DIPがあれば,TWELITEの内蔵マイコンに初期インストールされている「超簡単!TWE標準アプリ」を使って単体でデータを飛ばすことができるというすぐれもの

TWELITEは無線通信機能と内蔵マイコンを持っているため,必要に応じてマイコン部分に自分でいろいろとプログラムを作って書き込むこともできます.この場合はTWELITE Rとパソコンを使ってプログラムを書き込みます.
ただ,Arduinoほどお手軽ではありません.例によってOSX環境で使うとなるとWindowsに比べていろいろめんどくさくなっており,備忘録としてメモ書きを残しておきます.(初めてのことをMac環境でやるものではないといえばそこまでですが)

1.USBドライバのインストール

まずFTDIドライバのインストールを行います.
私はFTDIドライバをこちらからダウンロード2.3を選んでインストールしました.
(OSX 10.12Sierraはドライバインストール不要とのことらしいですが,試さずにインストールしてしまいました.)

2. pyserialのインストール

次にpyserialをインストールします.

私はpython関連をAnacondaにお任せしているので
Anacondaの[Anaconda-Navigator]を起動し[Environments]から[pyserial]を選んでインストールしました.なおpyserial自体はpythonのパッケージなので直接起動するようなアプリケーションではありません.pythonを普段使われている方はpipからインストールすればよろしいかと思います.pythonをまだ使われていない方はAnacondaオススメです.

3.書き込みツールのインストール

次にこちらのページから開発元が公開しているjenprogをダウンロードします.
SDKにも含まれているのでどうせアプリ開発をやるのであればSDKをダウンロードしてしまいましょう.解凍したら適当な場所に動かします.
私は[書類]フォルダのなかにTWESDKフォルダをおきました.

次にOSXのターミナルアプリを使います.
コマンドラインを出したら
cd ~/Documents/TWESDK
として先ほど作成したTWESDKフォルダに移動します.
この場合はTools/jenprogフォルダ内にjenprogの実行ファイルがあります.
 cd Tools/jenprog
としてjenprogフォルダ内に移動したら
 ./jenprog -h
として動作を確認します.
./jenprog -h
*** jenprog ver 1.3 ***
Usage: jenprog.py [options]

Options:
  -h, --help            show this help message and exit
  -a ADDR, --address=ADDR
                        start reading at address
  -l LEN, --len=LEN     number of bytes to read
  -m MAC, --mac=MAC     reset the mac addr (e.g. -m 01234567ABCDABCD)
  -k KEY, --key=KEY     reset the license key
  -v, --verify          also verify after writing
  -z, --compare         compare between flash content and specified file
  -s, --show            show mac address and license key
  -e, --erase           erasing the flash after reading mac and license key
  -b BAUD, --baud=BAUD  baud rate for serial connection.
  -t TARGET, --target=TARGET
                        target for connection
  -F, --force           skip firmware compatibility
  -C, --list-com-ports  skip firmware compatibility
  -D CDIR, --current_dir=CDIR
                        current directory
などと表示されれば動作しています.

次にUSBに接続しているTWELITEのリストを出します.
 ./jenprog -l
と入力するとAdminパスワードをきかれるので入力するとUSBポートに刺さっているTWELITEの一覧が表示されます.
 
# TWEUSB device list (num=2)
# ID,S/N,Desc
0,MWV61OJ,MONOSTICK
1,MWS4BXE,TWE-Lite-R

うまく表示されない場合は差しっぱなしで再起動するとか,挿すポートを変えて見てください.私のMacBookProは一度認識されたあと引き抜くと認識してくれないことがあります.

さて,プログラムを書き込みます.
まず書き込みの確認として出荷時に書き込まれている「超簡単!TWELITE標準アプリ」をインストールしてみます.メーカーWEBから最新版ソフトをダウンロードし解凍します.
App_TweLite_Master_1_8_1_BIN(バージョンによります)の中にあるApp_TweLite_Master_JN5164_1_8_1.binとApp_TweLite_Master_JN5164_TOCOSTICK_1_8_1.bin
を~/Documents/TWESDK/Tools/jenprogフォルダ内にdataというディレクトリをつくりコピーしておきます.(どこで作業してもいいのですが簡単のため)
その上でファームウエアを書き換えるときはそれぞれ
./jenprog -f 0 ./data/App_TweLite_Master_JN5164_TOCOSTICK_1_8_1.bin 
./jenprog -f 1 ./data/App_TweLite_Master_JN5164_1_8_1.bin 
と入力します.すると
SET MWS4BXE INTO PROGRAM MODE
*** jenprog ver 1.3 ***
 file info: 04 03 0008
writing...
  0%..10%..20%..30%..40%..50%..60%..70%..80%..90%..done - 7.89 kb/s
done

OK: firmware is successfully programmed.
などと表示されれば無事完了です. 
プログラムを書き込んだらいちどリセットします.(忘れがちですが)
リセット方法は製品によって異なり,
TWELITE Rはボード上のリセットスイッチを押します.
MONOSTICKはリセットスイッチが押せないのでコマンドライン上から下記コマンドでリセットします.
./jenprog -r 0

最後に動作確認をします.
標準アプリケーションはシリアル通信でデータが送られてきています.
WindowsはTeratermを使うのが標準かと思いますが,私はMacの場合,Cooltermを使っています.

Cooltermを起動したら,[Options]の中の[Port:]からTWELITEのポートを選び,[Baudrate:]は115200を選びます.
シリアル通信のデータが表示されていることが確認できます.
(シリアルの確認だけであれば,Arduino IDEを使うのも簡単です)
これで一応Windowsの皆様と同じ土俵に乗ったはずです.
次はプログラムを作成して書き込んでみます.
その2はこちら

0 件のコメント: