投稿

6)binの書き込み

イメージ
いよいよESP(Eterna Serial Programmer software)を使用して、フラッシュメモリーに書き込んでみよう。 ESPを解凍したら、ESP.exeのあるホルダーを作業フォルダーに設定したコマンドプロンプトのショートカットを作っておくと便利である。 コマンドプロンプトからespと打つとヘルプが表示されるはずだ。 評価キットかDC9010Bとモジュールの接続に問題があるかも知れないので、まずはフラッシュの内容を読んでみよう。 esp -r bup5902_1.bin 読んだ内容を格納するファイル名を指定する必要があるので、ここでは bup5902_1.bin としている。 上図のように err = 0 で終わっていれば接続OKだ。 書き込みは、変更が必要な部分だけ書き換える場合と、全体を書き換える場合がある。 「コンパイルの準備」で書いたように、LTP590xモジュールには新旧がある。 旧モジュールにはそれぞれの品種(IPMA、PRA、IPRB、IPRC)にそれぞれのデフォルトイメージが書かれていたようだ。 新モジュールになってからしばらくは、それまで通りに品種別であったが、現在のハードウェアは LTP590xIPC-IPMA に統一され、ユーザー側でお好みのイメージを書くようになった。 品種別のジュールを購入して初めて書き込みを行う場合は、上記のように書かれているであろうデフォルトイメージを読んでバックアップを取っておくことをおすすめしたい。 購入時の状態に戻したいと思うことがあるためだ。 フラッシュ全体を書き換えるには、全消去 -> FUSE書き込み -> パーティション書き込み -> メイン書き込み -> ローダー書き込み の順に行う。 ESPコマンドを手で打つ場合は以下のようになる esp -E esp -P FT-LTP5902-IPMA-M4-115K-680-0241-0003REV1.bin 0 esp -P mote_part_r52074.bin 800 esp -P ocfdk_00_hello.bin 1000 esp -P loader_1_0_5_4.bin 77800 上記の例のモジ...

5)フラッシュイメージ

イメージ
バイナリーファイル ocfdk_00_hello.bin ができたので、これをモジュールに書き込んで動作を確認しよう。 評価キット か DC9010B Eterna Serial Programmerをお持ちの方はESP(Eterna Serial Programmer software)を使用して書き込むことが可能だ。 ESPは DC9010B の紹介ページの下のリンクからダウンロードできる。 バイナリーファイルはモジュール内のフラッシュメモリーに書き込むのだが、書き込む場所が決まっている。 モジュール内のフラッシュメモリーイメージは下図のようになっている。  Board Specific Parameters はFuse Tables と呼ばれるパラメータを格納する場所だ。モジュールの品種によって設定値が異なり、ライブラリーと同様にMyLinearからダウンロードできる。先頭は0番地である。  Partition table はフラッシュイメージ中の各要素の位置を定義するものらしい。モート用とマネージャー用の2種類ある。Partition tableの先頭は800番地である。  Main exec ここにできあがったbinファイルを書き込む。先頭は1000番地である。  Loader はOTAP(Over the Air Programming)イメージの処理とメイン実行可能イメージの管理を行うと、 Eterna Serial Programmer Guide に書いてあるが、しばらくは変更されていないようだ。先頭は77800番地である。 以上のように4パートに分かれており、ESPを使用して書き込みを行う時に先頭アドレスの指定が必要なため、しつこく書いておいた。

4)コンパイルする

イメージ
いよいよビルドである。 こちら に書かれているようにOCSDKのonchipsdk-master/projects/iar/の下にあるall_projects.ewwをWクリックする。 EWARMが起動しサンプルアプリケーションが左側にずらりと表示される。 まずはhelloをビルドしてみよう。 サンプルの一番上にある00-hello - Debug が太字になっていなかったら、右クリックから「アクティブに設定」を行う。 さらに右クリックから「全てを再ビルド」を実行するとビルドを開始する。 エラーが無ければDOS窓が2回現れて終了する。 いくつかワーニングが出るかもしれない。 とりあえず30日期間限定の評価版ではコンパイルができるようだ。 onchipsdk-master\projects\iar\00-hello\Debug\Exe の下にocfdk_00_hello.bin ができるので、これをモジュールに書き込んで動作を確認しよう。

3)コンパイルの準備

イメージ
1)評価版のダウンロード ここ からコア→ARMを選択して、評価版をダウンロードした。バージョンは8.11だった。 2)OCSDKのダウンロード こちら からOCSDKをダウンロードする。 3)ライブラリーの入手 よく考えてみると、ライブラリーをお持ちでない方にとっては、ライブラリーの入手が一番大変そうだ。 こちらにある説明 によると、MyLinearのアカウントを作成し、 ソフトウェアリクエストフォーム にプロダクトキーと部品番号の記入してダウンロードの請求をしなければならないようだ。 プロダクトキーと部品番号はハードウェア購入時に添付される購入証明書(Proof-of-Purchase certificate)に記載されていると書かれている。最低でも何か1個は先に購入する必要があるということである。 モジュールの価格を見てみると、 チップワンストップ ではLTP5902IPC-IPMA1D0#PBFが\6,750@1pcsとなっていた。 また、デジキーでは LTP5901IPC-IPMA1D0#PBF 、 LTP5902IPC-IPMA1D0#PBF ともに\7,696@1pcsであった。 デジキーでは古い品番のものの方が安くなっている。古いか新しいかは、モジュールの写真を見て、2個載っている水晶発信器の内1個が黒い四角のものは古いものである。 詳しくは Eterna Serial Programmer Guide の40ページ以降を参照していただきたい。 評価するだけなら新旧どちらでも良く、また、モート(IPMA)でもマネージャー(IPRA、IPRB、IPRC)でもファームを書き換えれば同じなので、チップアンテナタイプが欲しい方は、デジキーの方が、今はお安く入手できる。 また、チップワンストップ、デジキーともに送料が無料になる価格に達している。 (価格は2017年5月11日現在のものです) ※追記  通販で購入した場合は購入証明書が添付されないことが多いようだ。最初の1個はLTC(AD)より直接購入することをおすすめする。 無事にMyLinearのアカウントを取得し、リクエストが通るとライブラリーをダウンロードすることができる。 ダウンロードしたライブラリー(incとlib)をOCSDKのsrcの下にコピーする。...

2)OnChipSDKとは

OnChipSDK とは、モート(子機)のFWにオリジナルのアプリケーションを追加したセミカスタムFWを作るためのSDKである。 コンパイラーはIAR社の EWARM のみで、 dustcloudのドキュメント では、評価用EWARMの32KB限定版は使えない(コードが32KBを超える)ので、正式版を買い、さらにデバッガー(i-Jet)もeShopで買えと書いてある。 お試ししたいだけなのに、高いコンパイラを買うなんて無理ですよ。30日期間限定版で試せないんですかね?と前から思っていたので試してみようと思う。 Getting Started の手順に従って準備をしていく。

1)はじめに

2.4GHz(ISM)帯を使用した省電力センサーネットワークに SmartMesh IP という製品がある。これはリニアテクノロジー社(アナデバ)の製品だが、他の方式に比べて通信接続が切れにくく、消費電力を低くすることがやりやすい仕様になっている。 詳しくはこちら 以前から、このデバイスを使って何か作ってみたいと思っていたのだが、日本ではまだマイナーで、モジュールのお値段も少々お高いので、実行に移せないでいた。 利用者が増えれば、自ずと価格も下がるであろうと思い、また、日本語で細かいところを書いている方も少ないようなので、今まで疑問に思っていたことなどを実験して、ここに書いてみようと思う。