マイコンデータシートの見かた(その2)

現役STマイクロエレクトロニクスの「メーカエンジニアの立場」から記載された、ユーザ質問の多かった事項を中心にマイコンデータシートの見かたを解説する記事(連載2回目)を紹介します。

全3回の連載記事内容

第1回:凡例、絶対最大定格、一般動作条件、電源電圧立上り/立下り(2017年10月1日投稿済み
第2回:消費電流、低消費電力モードからの復帰時間、発振回路特性(← 今回の投稿)
第3回:フラッシュメモリ特性、ラッチアップ/EMS/EMI/ESD、汎用IO、リセット回路

記事タイトル:データシート数値の “裏の条件” とは

先入観を与える前に、記事を読んでください。消費電流、復帰時間、発振回路特性の留意点が記述されています。記事タイトルの “裏の条件” とは何でしょうか?

私は、データシート数値は、理想的動作環境のマイコン単体の最高数値、これが裏の条件と理解しています。
例えば、車の性能を燃費で比較する方は、普通の運転では絶対に達成できないカタログ燃費で車を評価します。マイコンも同じです。データシート数値は、このカタログ燃費相当だと思います。

カタログ燃費(出典:日本自動車工業会)
カタログ燃費(出典:日本自動車工業会)

実際は、この最高数値にマージンを入れて考える必要があります。どの程度のマージンを入れるかが問題で、安全側評価ならデューティ50%、つまり性能半分位が良いと思います。

但し、これもマイコン単体の話で、マイコン:MCUと電源、発信器や必須周辺回路を含めた制御系で考えると、どの程度マージンを入れるかは複雑怪奇になります。

そこで、ベンダ開発の評価ボードを手本とする考え、つまり、10月1日投稿で示した評価ボードをハードウエアテンプレートとして用いる考え方を、私は提案しています。

10月15日記事のように、評価ボードでもWi-Fi起動時電流に電源部品の余裕が(短時間ですが)少ないものもありますが、大方のベンダ評価ボードは、実用に耐えられる厳選部品が実装済みです。そこで、プロトタイピング時には、この評価ボードで制御系を作り、実装部品のマージンが十分かを評価するのです。

マージンが足りない場合には、同じ評価ボードへ、より高性能な部品を載せ替えるなどの対策が簡単にできます。制御される側もこのようなモジュールで開発しておけば、モジュール単位の設計、変更が可能です。

ソフトウエアも同様です。評価ボードを使えば、少なくとも最低限のソフト動作環境は整いますので、プロトタイピングのソフトをなるべく早く開発し、動作マージンを確認しておきましょう。

完成・出荷時には、ソフトへ様々な機能が後追加されるので、プロトタイピング時はハード同様デューティ50%、つまりROM/RAMの残りに50%位は残しておくと安心です。

ソフトウエアのプロトタイピング開発には、弊社マイコンテンプレートが最適です。

連載第2回範囲のデータシートの見かたまとめ

  • 水晶振動子のMCUクロック供給は、発振波形が正弦波に近いため貫通電流が増え消費電流大となる。
  • 未使用GPIO端子は、外来ノイズ対策に10k~100kプルアップorダウンし、電位固定が望ましい。
  • データシート低消費電力復帰時間がクロックサイクル規定の場合はそのまま使え、㎲規定の場合は参考値。
  • 外付け水晶振動子の利用時は、ベンダ推薦部品を使う。
  • 内蔵発振回路の利用時に、MCU温度変化やリフローによる機械的応力による周波数変動が無視できない場合は、周波数トリミングソフトを組込む。
  • PLL動作最低/最高周波数の設定ミスは多いが、マージンがありそのまま動作するので注意。

ESP-WROOM-32と評価ボードESP32-DevKitC

トランジスタ技術2017年11月号特集のWi-FiとBLE4.2両方搭載のIoTマイコン:ESP-WROOM-32(秋月電子550円)とその評価ボード:ESP32-DevKitC(秋月電子1480円)の記事をまとめます。

ESP32-DevKitC and ESPWROOM-32
ESP32-DevKitC and ESPWROOM-32

無線通信Wi-FiとBluetooth 4.2搭載で単価550円のマイコン

Wi-Fiは、802.11b/g/nの2.4GHzのみ、通信中の消費電流実測値は、起動時800mA、定常時200mAなのでマイコン電源にある程度の余裕が必要です。評価ボードは、1A出力のNCP1117(ONセミコンダクタ)を使っていますが、50%デューティで考えると、もう少し余裕が必要かもしれません。Bluetoothは、BLE4.2です。アンテナも内蔵です。

Tensilica製80MHz~240MHz動作32ビットディアル(!)コア、ROM: 448KB、RAM: 520KB、NXP)LPC8xxシリーズのスイッチマトリクス相当のGPIO_matrixを実装しており、デジタル周辺回路入出力を34本あるGPIOへ割り付け可能です。AD/DAなどのアナログ周辺回路は、ピン固定です。

製造は中国Espressif Systems社、従業員数約120人のファブレスメーカで、2016年米ガードナーが「IoT産業における最もクールな企業」に選出しました。Cortex-M系コアでありませんが、確かに機能/価格:コスパは凄いです。マイコン単体、評価ボードどちらも秋月電子からの入手性が良いので、人気が出るかもしれません。

プログラミングはArduino IDEとCLIのESP-IDFの2種

評価ボードESP32-DevKitCのプログラミングは、Arduino IDEのスケッチベースと、コマンド ライン インターフェース:CLIを使うEspressif Systems社提供ESP-IDF(IoT Development Framework)の2通りがあります。イーサネット、BLE4.2やI2Sを使う場合は、ESP-IDFでの開発が必要です。

評価ボードは、前述の1A電源とUSBシリアル変換デバイスのみ実装ですので、LEDやSWなどをブレッドボードなどで追加し、開発プログラムの動作確認をします。記事4章では、I2C接続で2種類の加速度センサー、1000円台で購入できるMMA8451Q(NXP)、または、20ビット高分解能のADXL355(アナデバ)を使い、簡易IoT地震計を開発しています。I2C経由の加速度データ取得方法は、他のマイコン制御時にも参考になります。

ディアルコア超高性能マイコンですので、評価ボードに1.8インチのSPIカラー液晶モジュール:M-Z18SPI-2PB(aitendo、950円)を接続し、動画を再生しているのが5章です。7章は、AD/DAを使って、今はやりのスマートスピーカーを開発しています。

11月号は、10ドルコンピュータのラズベリーパイZero Wを使った記事も記載されていますが、本ブログはマイコンが対象ですので割愛します。

マイコン開発のポイントは、ライブラリ活用/流用

コマンドラインインターフェース:CLIを使ったソフト開発は、慣れが必要です。しかし、これは慣れの問題です。例えArduino IDEでも、初めての人には戸惑う部分もあるでしょう。Arduino IDEが隠して(見えなくして)いる部分が他に比べて多いので、比較的簡単に慣れるようになるだけの話です。

慣れた後はどちらの開発環境も、豊富なライブラリや、サンプル・プログラム、サンプルソフトを使ってソフト開発をします。個人が1からソフトを全部開発するのではなく、既にあるソフト資産を活用/流用する、これが全てのマイコン共通の現代的なマイコンソフト開発方法です。

これはソフトウエアに限ったことではありません。ハードウエア開発でも、評価ボードやArduinoソケットは、1種のライブラリとも言えます。ソフト、ハードともに使える資産は活用し、これで得た(得をした)開発時間は、独自性を活かす部分に使います。

ライブラリ活用/流用には、ライブラリを使う側の骨格:スケルトンを理解していることが前提条件です。記事P48のArduinoスケッチの書き方で言えば、図Aのsetup()やloop()関数のようにマクロ的にソフト構造を捉えた後に、ミクロな問題へと詳細化することです。

骨格:スケルトンを理解していれば、後は必要な機能をライブラリの中から選び、必要に応じてライブラリを修正し、骨格に付け加えれば、動くモノが完成します(完成度で言えば65~79%:良判定)。

マイコン開発はこの動くものから、完成・出荷段階(完成度80%以上:優判定)にするのに結構な手間と時間が掛かります。

従って、ライブラリを上手く使ってなるべく早い段階で良段階へ到達し、ここからは腰を落ち着けて80%以上の完成度になるように開発時間の配分をしましょう。
また、骨格理解や習得にも十分な時間を割きましょう。

弊社マイコンテンプレートは、様々なサンプルソフトを流用/活用した早期ソフト完成、いわゆるプロトタイピング開発に役立ちます。是非ご活用ください。

マイコンデータシートの見かた(その1)

現役STマイクロエレクトロニクスの「メーカエンジニアの立場」から記載された、ユーザ質問の多かった事項を中心にSTM32マイコンデータシートの見かたを解説する記事(連載1回目)を紹介します。

全3回の連載記事内容

予定されている第2回、第3回の解説内容が下記です。

第1回:凡例、絶対最大定格、一般動作条件、電源電圧立上り/立下り(← 今回の記事)
第2回:消費電流、低消費電力モードからの復帰時間、発振回路特性
第3回:フラッシュメモリ特性、ラッチアップ/EMS/EMI/ESD、汎用IO、リセット回路

今回の第1回を読むと、データシートの読み誤り易いポイントが説明されており、興味深いです。ハードウエアに興味がある、または、ハードも自分で設計するソフトウエア開発者は、読むことをお勧めします。

マイコンハード開発を数回経験すると、おおよその感触とデータシートの見る箇所が解ってきます。私も新人の頃は、網羅されたデータシートの、”どこの何を見れば良いかが判らず”困惑したものでした。

ハードウエアテンプレートは評価ボードがお勧め

私は、使用するマイコンの評価ボードを、ハードウエアのテンプレートとして使います。
例えば、STM32F072RB(=NUCLEO STM32F072RB)は、配線パターン(=gerber files)や使用部品リスト(=BOM)もサイトに公開されています。

これらのデータは、「短納期を要求される開発者の立場」なら、網羅的記載のデータシートよりも、効率よく回路設計をする手助けとなります。

データシートを見ることは、間違いなく重要です。

しかし、具体的にハードウエア設計をする時は、評価ボードのような既に設計済みの「ブツ」を参考にしながら、なぜこの部分はこうなっているのか?などの疑問を持ってデータシートを見る方が、効率が良く、しかも、分厚いデータシートのポイントを理解するのにも役立ちます。

アナログとデジタル電源の1点接地や、パスコン実装位置などは、文字で注意書きをいくらされても解り難くいものです。この点、実物は、文字に勝ります。

ソフトウエアテンプレートはマイコンテンプレートがお勧め

ソフトウエア開発は、マイコンテンプレートの宣伝をするな!と思われた、勘のいい読者の方は、コチラのサイトを参照してください。

サンプルソフトは、”メーカ立場での提供ブツですが、”開発者の立場からの実物として、STM32ファミリ、サイプレスPSoC、NXPのLPC8xx/LPC111x/Kinetis、ルネサスRL78/G1xの各種マイコンテンプレートを、ソフトウエア開発者様向けに提供中です。

連載第1回範囲のデータシートの見かたまとめ

第1回記事の範囲で、マイコンハード開発ノウハウをまとめると、以下になります。

  • マイコン外部接続ハード駆動能力は、I2C、USART、数点のLED直接駆動可能端子を除いては極小で基本的には直接駆動はしない。
  • 外部接続ハードの駆動と接続方法は、Baseboard(mbed – Xpresso Baseboard)や、各種Arduinoシールドを参考にする。
  • マイコン電源は、評価ボードのパターン、実装部品も含めてまねる。
  • 開発製品版の未使用(空き)端子処理は悩ましいが、ソフトはデフォルト、ハードはソルダーブリッジ経由で接地。

私は、今後の連載を読んで、未使用(空き)端子処理の見識などを深めたいと思っています。