【パワーメーター2019】クランク基板Pro microではまった<手持CPU選定>

SeatTubeの曲げひずみとクランクトルクの関係を測定するために、クランク用の基板を作っているのですが、採用CPUではまってしまいました。
サイズと2個在庫あるもののなかで、Pro microを選んだのですが、
なんと、Pro microは、Arduino公認でなく、SPIライブラリーを書き換えないとSPIが使えないことが判りました。つまり、マイクロSDカードにログしようとしたのですが、私のプログラム能力ではライブラリを書き換えるのは無理なので、実質的にPro microでは、SDカードを使えないということが判りました。基板を1日半かけていざプログラムを作ろうとして判明したので大痛手でした。

●Pro microのSPIのピン番号が違う
Arduinoでは、SPIのピンは11,12,13を
 使うことが決まっています。それに従ってCPUもライブラリーも作られてます。ところが、Pro microのSPIは、14,15,16を使ってます。
この程度の違いでライブラリーが対応してくれていない点は、mbedユーザーである私には、驚きです。arduinoを使い慣れた人なら、ライブラリーを修正して使えるようにすることができるでしょうけど、検索しても
Pro microでSPIを使った事例は見つかりませんでした。

●クランクへ実装するためのサイズ目安
<左右で形状が全く異なる>

 

①右クランクの35mmx35mmが厳しい
②左クランクの厚さ15㎜以下が厳しい
 

左右とも全く違うサイズ要求があるので、基板設計部品選択も違ったものになってもしょうがないが、開発手間が2倍になってしまう

 

●手持ちのCPUで、選定

使い慣れたmbedで使えばいいのですがmbedでは、小さいCPUでよいものがありません。LPC824は小さいのですが、ピン定義が面倒で失敗すると死んでしまうので、怖くて使えません。
使い慣れたのは、NucleoL432KCですが、これなら万能で、なんでもござれなのですが、大きすぎる点でNGです。
面倒ですが、クランク基板に必要な仕様とCPUの対応性を並べて検討を進めていきます。

①電池駆動の容易さ
使用電池:コイン型CR2450(コインで最大電流30mA,610mAh)
システム電圧:3.3V(μSD,Xbeeなど無線モジュール)
Vin範囲:電池3V以上だと電池ダイレクト接続できる

手持ち
CPU基板名
(チップ名)
電源電圧 Typical
電流
Vin範囲 備考
Nucleo L432KC
(CorTex M4)
3.3V

 

80MHz
10~20mA
電池◎
1.71V

3.6V
mbed
IFが多彩
TY51822
(太陽誘電
EYSGCNZWY
CorTexM0)LPC11U35互換
(CorTexM0)
3.3V 50MHz
6mA
電池◎
1.8V

3.6v
mbed
BLE搭載
nrF51822
LPC824
(CorTexM0+)
3.3V 30MHz
3.3mA
電池◎
1.8V

3.6v
mbed
SwitchMatrix定義しないと使えないのが面倒
品種無い高い
Arduino Pro mini

(ATMEGA328P)

5V 16MHz
or
3.3V8MHz
16MHz
10mA
8MHz
3.3mA
電池▲
3.3V

16V
Arduino標準
対応でプログラムと事例多い
Sparkfun
Promicro互換
(ATMEGA32U4)DigiSpark互換
5V 16MHz
or
3.3V8MHz
16MHz
13mA
8MHz
5mA
電池▲
4.8V

12V
Arduino非公認
ピン配列が違うのでArduinoライブラリー使えないSPI,I2C
ATMEGA328P
内部クロック
3.3V
8MHz
8MHz
3.3mA
電池△
2.7V

5.5V
電池電圧が厳しい

 1:消費電力と電池対応性でmbedのほうが圧倒的に良い
2:Arduinoのほうがサイズコストでメリットはあるが、電力供給面で
DC-DCなど別部品が必要であるが、ATMEGA328Pがベター

②サイズ

横幅 厚さ
クランク

クランク
Nucleo l432KC 51mm 21mm 15mmpin ×
TY51822r3 45mm 20mm 14mmpin ×
LPC11U35 41mm 20mm 14mmpin ×
Arduino Pro mini 48mmpin 19mm 14mmpin ×
Sparkfun Pro micro 35mm 18mm 14mmpin
LPC 824 34mm 15mm 12mmpin
Digispark 26mm 20mm 5mm
ATMEGA328P 35mm 9mm 9mmpin

●右クランクは、Pro micro かLPC824かATMEGA328Pの3つのどれか
●左クランクは、どれでも可能
■Digisparkがサイズ的には理想だが、IFとソフト対応で課題がある
③IOとIFの対応性

SPIピン
対応
シリアル対応 ADC対応 USB使い勝手
Nucleo l432KC mbed USRT2個 12bit USB独立
TY51822r3 mbed UART1個 10bit USBシリアル兼用
LPC11U35 mbed UART1個 10bit 毎回Reset
Arduino Pro mini Arduino UART1個 10bit USBシリアル兼用
Sparkfun Pro micro 非Arduino UART1個 10bit 毎回Reset
LPC 824 SwitchMatrix SwitchMatrix 12bit SwitchMatrxi使にくい
Digispark 非Arduino UART1個 10bit USBシリアル兼用
ATMEGA328P Arduino UART1個 10bit USB無
シリアル書き込み

④プログラムが組めるか(自分の能力で)

SPI
ライブラリ
SDカード
ライブラリ
言語 備考
Nucleo l432KC mbed mbed C++ 万能
TY51822r3 mbed mbed C++ USB兼用不便
LPC11U35 mbed mbed C++ 毎回Reset不便
Arduino Pro mini Arduino Arduino Arduino 普通
Sparkfun Pro micro 非Arduino 非Arduino Arduino 毎回Reset
LPC 824 mbed mbed C++ SwitchMatrix困難
Digispark 非Arduino UART1個 Arduino USBのみ
ATMEGA328P Arduino UART1個 Arduino Arduino
シリアル書き込み

●使い勝手は、NucleoL432KCがベストで次がArduino Pro mini
●Pro micro DigiSparkは、SPIライブラリー使えないのでNG
●サイズとソフトでは、ATMEGA328Pしかない
●LPC824のSwitchMatrixを使いこなせればサイズメリットがでるが
高価である点がデメリットとなってくる

●以後
  検討の結果、右クランクに収まる可能性があるのがATMEGA329P
  なので、動作確認してから基板を作り直す。
 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です