Translate

ページ

2015年2月22日日曜日

もう1つのNRF51822 オフラインコンパイラ(uCXpresso.NRFを試してみる:インストール編)

昨日調べていたuCXpresso LilyPad for nano51822ですが、とりあえず手持ちのマシンにインストールしてみました。
他のNRF51822環境でも使えるのでは?という期待もあります。→ライセンスを購入しないと、他のモジュールでの利用や商用利用は難しそうです。(Link)
LPCXpresso IDEはEclipse+GCCの開発環境の様です。

インストールは、”Getting Started with uCXpresso.NRF”(英語)に沿って進めていきます。
(正直、面倒くさかったです!!!)

install LPCXpresso IDE


  • Increase VM memory for Windows System (Windows環境)
    もしLPCXpressoが起動している場合は、一旦停止。c:/nxp/LPCXpresso_x.x/lpcxpresso/lpcxpresso.ini を開いて、MaxPermSizeの値を256MBから512MBに変更して下さい。(X.Xはインストールバージョンによって異なる数字となりますので、自分が使う環境に合わせて指定して下さい。)

  • Install new software (Eclipse Plug-­‐in)
    LPCXpressoを起動。
    Help -> Install New Software から Addを選択

    Name: Eclipse Juno
    Location: http://download.eclipse.org/releases/juno
    「General Purpose Tools」 セクションから、 “Marketplace Client”を選択
    「Mobile and Device Developments」 セクションから、 “Target Management Terminal”を選択

    その後インストール(Next→ライセンス確認(Accept)→各種警告にYesで回答)
    完了すると、再起動を促されるのでLPCXpressoを再起動
  • Install RXTX Plug-­‐in
    同様に
    Name: RXTX
    Location: http://archive.eclipse.org/tm/updates/rxtx/
    最新バージョンのセクションから、"“RXTX End-­‐User Runtime”"を選択

    その後インストール(Next→ライセンス確認(Accept)→各種警告にYesで回答)
    完了すると、再起動を促されるのでLPCXpressoを再起動

  • enable the USB CDC virtual COM.Port (Mac OS X) (多分不要?)Terminal Appから以下を実行
    sudo mkdir /var/lock
    sudo chmod a+rw /var/lock


  • SVNをインストールHelp > Marketplaceを起動
    Find欄に”SVN”と入力後をGoを実行。
    検索結果から"Subversive"をインストール。
    完了すると、再起動を促されるのでLPCXpressoを再起動

  • Show the SVN and Terminal Views
    Window -> Show View -> Other を起動
    SVNの下のSVNレポジトリーを選択して[OK]を実行。

    SubversizeのSVN Connection選択画面が開くので、SVN Kitの最新版(執筆時点で1.8.7)をインストールする。
    完了すると、再起動を促されるのでLPCXpressoを再起動

  • Show the SVN and Terminal Views
    Window -> Show View -> Other を起動

    「SVN」の下の「SVNレポジトリー」と、「Terminal」の下の「Terminal」を選択して[OK]を実行

  • SVNレポジトリータブを右下から左上に移動

Install uCXpresso.NRF Framework


  • Check Out uCXpresso.NRF framework
    追加したレポジトリ表示を展開してuCXpresso.NRFの上で右クリック

    ドロップダウンメニューから”チェックアウト”を選択

    チェックアウトが完了すると、Project WorkspaceタブにチェックアウトしたuCXpresso.NRFが展開されます。

Exampleプログラムのコンパイル

  • Exampleプログラム"blink"のチェックアウト
    SVNレポジトリータブから、examples/rtos/blinkをチェックアウト
    (右クリックでプルダウンメニューを出し、チェックアウトを実行)
  • コンパイル実行
    Project Workspaceで"blink"を選択し
    Quickstart Panelから"Build 'blink'[Debug]"を実行
    コンパイルが進行し、実行ログが右下の”CDT Build Console ...”に表示されます。

  • 作成されたhexファイルは起動時に指定したworkplaceパスに格納されています。

uCXpresso LilyPad for nano51822

スイッチサイエンスにuCXpresso LilyPad for nano51822
という製品が入荷しました。(2015/02/21)

製品の特徴は上記ページとそのリンク先の製品の紹介をご覧ください。
また、どんな風に使えるのかは、”Getting Started with uCXpresso.NRF”(英語)を見ると良いと思います。
以下、個人的に、注目している点をずらずらっと書いていきます。

なお、実物で確認出来ていないことも含まれますので、間違いがあるかもしれません。個人作成ブログなので、その辺はご容赦下さい。(ここに書かれていることを信じて何か損害が発生しても責任は持てません。自己責任でお願いします。)


概要

Getting Started with uCXpresso.NRF”(英語)をざっと見ると次のことが書いてありました。
  • オリジナルのRTOS(?)が動作する。
  • IDEとしてNXP社のLPCXpresso IDE(EclipseベースのIDE+GCC)を使用する。
  • これに、独自開発のuCXpresso.NRFという独自のRTOS C/C++ frameworkを追加して使用する(で良いのかな?)
  • DFUコードがすでに書き込まれており、ファームウェアの更新は"nordic Master Control Panel"を使い、OTA(BLE経由)で行う。
  • ARM Keil5を使ったオフライン開発環境と対比すると、こんな感じでしょうか...
    ARM MDK (32kB制限) → NPC LPCXpresso (256kB制限)
    noridc nrf51-SDK → ucXpresso uCXpresso.NRF
    CMSIS-DAP(mbed) → DFU OTA
  • この作りなら、IDEを他のnrf51822を使ったモジュールでも多分使えるように出来るでしょう。(ただし、他のモジュール向けの開発・商用利用にはライセンスの購入が必要そうである。”Getting Started with uCXpresso.NRF”(英語)のAppendix E参照。)
  • DFU-OTAはソースが非公開のため、外部クリスタルの無いモジュールでそのまま使うのは難しいと思われます。(いや、回路図に外部クリスタルがオプションと書いてあるので、内部クロック使うようになっているかも...)

ハードウェア
回路図を読むと次のようなことが分かります。
  • SWD optional という4ピンのコネクタが書かれています。
    この端子には、SWCLK, nRST, V3.3, GND の4つのラインが引き出されています。
    この4端子を使うと、mbedで書き込みが出来るようになると思われます。(参考)
    基板写真を見ると、会社ロゴの下に4ピンのパターンがあるので、この端子が対応しているのだと思います。(配置は一番右の13番端子の上あたりがGNDのようです。)

    TSUBOLink-II等を使うと、書き込み出来ると思います。
    接続ピンは 電源ピンおよび、TGT_SWDIOとnRST、TGT_SWCLKとSWCLとなります。
    接続方法は工夫が必要です。ピンソケットを立てても良いですが、Lilypad製品の趣旨を考えれば、コンタクトプローブ(スプリングプローブ)を使うと良いのかもしれません。実物が来たら、考えます。

  • 32.768kHzのクリスタルはオプションと書いてありますが、ボードに載っている様です。(Y1)

外観から
  • 搭載モジュールの技術適合番号は204-420020。これは、BLE nanoに記載の番号と一致しており、同じものか同等の製品が使われているのだと思います。(MDBT40/NRF51822QFAA)

    このことから、LEDとスイッチをつなげばBLE nanoやmbed HRM1017等でも本製品用に用意されたIDEが使える可能性があります。この辺は今後調べていきます。
  • SWDコネクタ:スルーホール内径1mm,ピッチ2.54mm, コネクタヘッダパターン10x2.54mm
  • 外周部のホールは内径2mm 配線にはM2のネジが使用出来ます。ナットは角度によっては隣同士が接触してしまうので、心配な人はポリカーボネート製を利用して下さい。

関連リンク