Translate

ページ

2016年2月23日火曜日

mbed TY51822r3 を mbed HRM1017と差し替えて使う


(大した話ではありません。自分向けの備忘録みたいなものです。すいません。)

TY51822r3発売!!

スイッチサイエンス社からBLE用の新しいmbed TY51822r3が発売です。
本製品は、mbed HRM1017の後継製品と位置づけられており、比べると、以下の特徴があります。
  • 搭載しているnRF51822チップのリビジョンがr2から最新版のr3に変更
  • RAMが16kBから32kBに増量(今までメモリ不足で動かなかったnRF5 SDK for IoTが動くようになるそうです)
  • 搭載クリスタルなどは違いはありますが、動作は同じ16Mhz
  • パッケージ外観はほぼ同じ。長さ、高さが少し小さくなっている。
  • さらにSoCからのピンの引き出しがmbed HRM1017と互換なので、ハードウェア的な置き換えが容易
  • 価格はmbed HRM1017より少し安い(5400→4730)
たまたま、スイッチサイエンスのオープンハウスで先行購入することが出来ましたので、少し試してみました。

mbed HRM1017と差し替えて使う

mbed TY51822r3はmbed HRM1017とハード的なピンの割り当てが同じであり、ハードウェア上のスペックダウンも無いため、ファームウェアさえ適切に作り直せば、mbed HRM1017と差し替えて使うことができます。

ここで、注意すべきことがあります。それは、ピンのハード的な割り当ては同じですが、mbedオンラインコンパイラ上の機能の割り当てが両社で異なっているからです。

mbed.org上の両社のPinOut図を見比べて見ましょう。

まず、mbed TY51822r3はこちらとなります。

mbed HRM1017はこちらとなります。

Serial,SPI1,Analogin等は機能の割り当てが同じですが、SPI0, I2C,LED#, BTN#等が異なっていることが分かります。

今までmbed HRM1017を使ってきたユーザにとっては、まずmbed HRM1017向けのプログラムをmbed TY51822r3で動かしてみたいところだと思います。

ピン割り当てが同じであるため、機能名称ベースのenum定義をピン番号に変更すると、同じプログラムが両方で動くようになります。(バイナリはターゲット毎にコンパイルして作る必要があります。)

例えば、
TMP102      healthThemometer(I2C_SDA0, I2C_SCL0, 0x90); 
という行があったとすると、
TMP102      healthThemometer(p22, p20, 0x90); としたり、

DigitalOut  oneSecondLed(LED1); 
DigitalOut  advertisingStateLed(LED2);
DigitalOut  oneSecondLed(p18); 
DigitalOut  advertisingStateLed(p19);
となります。

mbed HRM1017のピン配置図を見ながらこれを行っても良いのですが、実は一度mbed HRM1017をターゲットに選択してコンパイルすると、該当変数部分をクリックすると、pXXというピン名称enumがソースの枠内右上に表示されるようになります。これを使って、ピン名称に変換すると効率よく変更作業が出来ます。

この辺を覚えておくと、mbed TY51822r3をmbed HRM1017と置き換えて簡単に使えるようになります。

ちなみに、mbed TY51822r3のピン番号と機能の割り当ては、NordicのnRF51-DKと合わせたそうです。世界的には、nRF51-DKのユーザが多いわけで、mbedやSDK上のnRF51822向けのプログラムはかなりのものがnRF51-DK向けに作られています。それらが、そのまま使えるわけです。


0 件のコメント:

コメントを投稿