2017年1月24日火曜日

nRF52 SPIにハマる

nRF52はSPIのピンアサインを自由に変えられる。

SPIのピンアサインをADコンバーターのSPIピンに向かい合うように設定すると、結線の半田付を楽できる。


しかし、ここでもハマった。

sdk_config.hにあるSPIのピンアサインを変更するだけでは動かない。

..\nRF5_SDK_12.1.0_0d23e2a\examples\bspにある
pca10040.hとd52_starterkit.hも修正してなんとか動いた。

#define SPIM0_SCK_PIN   7  // SPI clock GPIO pin number.
#define SPIM0_MOSI_PIN  2  // SPI Master Out Slave In GPIO pin number.
#define SPIM0_MISO_PIN  6  // SPI Master In Slave Out GPIO pin number.
#define SPIM0_SS_PIN    11  // SPI Slave Select GPIO pin number.

さらにADコンバータにコマンドを送る際は、SPI MODE2に設定する必要あり。

これで動いたと思いきや、今度は、ADコンバーターにノイズが多く、コンバートされたひずみゲージの値が、期待されている値と程遠い値を返す。
毎晩、nRF52を張り付けたクランクを外して、nRF52のソフトウェアを書き換え、またクランクを付け直してペダリング、結果NG、を繰り返し悩むこと1週間。

原因は、ひずみゲージへの配線の半田付不良だった。
不器用なことには絶対の自信があるので、こんなことも仕方がない。

半田を正確につけると、期待通りの数値がでているように見える。

これで、「チューブラーがパンクしちゃったつもり貯金」で製作するANT+対応パワーメーター「TP-002」の試作も峠を越えたか。




2017年1月16日月曜日

nRF52到着

nRF52の開発キットが到着。

nRF52はANT/BLE送信機付マイコンで、パワーメーターには最適なチップ。
おそらく市販品のパワーメータもnRF52の前モデルnRF51を使用していると推測。

これでパワーメーターを作ると、ひずみゲージ、ADコンバーター、nRF52、ボタン電池およびREEDスイッチでできてしまう。


前作の2013年バージョンより大幅に小型化でき、消費電力も低いため、市販品のようにボタン電池駆動が可能。
配線も少なく、誰でも作れてしまうかも。

製作コストは4980円を超えると予想するが「チューブラーがパンクしちゃったつもり貯金」でまかなえるのでモデル名はTP-002(仮称)

ADコンバータとnRF52の重量は合計で1グラムぽっきり。



nRF52を使用したシステムの開発は苦戦中。
1990年代のPCのようで、お買い得SCSIカードを買ったものの、CONFIG.SYSのメモリ設定とマザーボード上のIRQジャンパ設定を合わせ、且つ物理的はPCIコネクタの微妙な接続がうまくできると、はじめて動作する、そんな感じ。
現代のようにUSBポートに刺せば何でも動くというわけにはいかない。
でもANT+対応のお手軽パワーメーターの製作という夢(妄想?)を実現するには、このハードルは超えなければ。

nRF52SDKにあるバイク用パワーメーターのサンプルコードをコンパイルしても、そのままでは動かなかった。

以下、ハマったところ。
1.以下のヘッダファイルをpathの通ったフォルダへ。
..\nRF5_SDK_12.1.0_0d23e2a\components\softdevice\s212\headers

2.以下のヘッダファイル内にANTキーを記入
..\nRF5_SDK_12.1.0_0d23e2a\components\ant\ant_key_manager\config
ant_key_manager_config.h

苦闘の末、なんとか任意のワット数(555(GoGoGo)ワット)をANT+規格で送信し、PCおよびANT対応スマホで受信するとこまでは漕ぎつけた。


つづく