データシートを読む(1) STM32F401xD/xE, その1

JosephHalfmoon
JosephHalfmoon

モダンな開発環境では、データシート読まなくてもなんとかなる、などとある投稿に書いてしまいました。しかし、断言します、

プロフェッショナルは読まずにはいられません。

デバイス・ビギナーの方にも多少はお役にたてるのではないかということで、MCUのデータシートを読むときのポイント、についての投稿を始めさせていただくことになりました。内容は本物のデータシートを御覧ください。投稿は、読むときの手助けです。ターゲットは、手元に現物MCUがある機種であります。

ほぼ全ての半導体デバイスに対して、データシートという技術文書が存在しています。デバイスは、外から見てもそれがどのようなものであるのかまったく分からないものがほとんどです。実際に売買するにあたっては、売る側、買う側ともにそれが何であるのか理解し、合意するために必須の文書と言えます。そこに書いてある仕様通りに動作することを売る側は保証し、買う側はそれを信頼して使用することが基本です。

近年のMCUの仕様は大きくなっているので、データシート1冊に全てが書ききれなくなっています。いまでは一つのデバイスに多数の技術文書が対応していることがほとんどでしょう。一般的にハードウエアマニュアル、ソフトウエアマニュアル、特定のアプリケーションについて説明するアプリケーションノート等があります。その中で、データシートはもっともベーシックな仕様を規定している文書である、と言えます。

今日からしばらくの間、取り上げさせていただくのは、STマイクロエレクトロニクス社製STM32Fマイコンの1品種

STM32F401RE

に対応するデータシートです。これは手元にあるST社製のマイコン開発ボードNucleo-F410REに搭載されているデバイスであるので、必要があれば実際に試すことができると考えたためです。

読む対象のデータシートそのものは、STマイクロエレクトロニクス社の以下のサイトからダウンロードすることができます。(マイコン開発ボード購入のためのサイトへのリンクも貼られています。勿論、デバイスそのものを購入したければST社にコンタクトできるでしょう。)

STM32F401

あまりマイコンに触れたことの無い方は、上記のページに行くと「パラメトリックサーチ」という表があり、同じSTM32F401という名の元に、微妙に異なる仕様の非常に多数の製品があることにビックリされるかもしれません。これは特にST社だけのスタイルではなく、多くのMCUベンダに共通するマイコン・ビジネスの特徴です。

「大は小を兼ねる」では、なかなか許してもらえないMCUビジネス

のためです。例えばメモリサイズの大きい製品は、小さい製品を置き換えることができる場合が多いですが、コストが上がります。MCUを利用するような製品はそのようなコストアップを許容できないことが多いので、メモリ量やら、パッケージと端子数やら、搭載周辺回路のチャネル数等々に応じて「最適な」ラインナップをそろえるのがMCUビジネスの習いです。(そのため、ときどき妙なラインナップが出来上がることも。。。)

さて、その下のデータシートという欄をクリックすれば、2つのデータシートがリストされていることが分かります。ザックリと言ってしまえば(ST殿すみません)、メモリ量の大小を主要な違いとして、上下2ラインに分離されているようです。今回ターゲットは、上のSTM32F401xD STM32F401xEデータシートです。リファレンスマニュアル(他社のハードウエアマニュアル相当)については日本語版もあるのですが、データシートは英文のみとなります。想像するに、厳密な記述が必要なデータシートに複数バージョン存在すると不整合が起きかねないので、一本化している、ということでしょう。

さて、データシートをダウンロードして内部を見てみると、大きく2つの部分に分かれることが分かります。表紙:Featuresから3のFuncitonal overviewまでが、主として機能の説明(というより規定)であり、4のPinouts and pin description以降は、「無味乾燥」な図と表の連続です。敢えて断言してしまえば、

データシートの本質は後半部分

です。特にこのSTM32F401に関しては、RM0368 リファレンスマニュアルという主としてハードウエアについて記述した日本語文書が存在しているので、機能を理解するだけであれば、この日本語のマニュアルの方が読みやすいです(少なくとも私には)。ただし、日本語のマニュアルは「参考」扱い、つまり何か記述に間違いがあっても責任はとってもらえない、ということです。データシートこそ原典。

後半部分に記述されている内容を見てみましょう

Pinouts and pin description

MCUのどのような信号が、どの端子にでているのか、図と表で説明しています。実際にMCUを搭載する回路基板を設計するにあたっては絶対必要な記述です。また、これを見ると、5種類設定されているパッケージによって、端子に出ている機能に違いがあることも判明します。必要な端子機能とパッケージのフットプリントが頭に入っていなければ、表を見てもどれを選択してよいのか分からないでしょう。

Memory mapping

内部のメモリと周辺デバイスがどのようなバスのどの番地に接続されているのか図と表で説明されています。「モダン」なソフトウエア環境では「誰かが」この情報を記述してくれているので、あまり自分で記述することは無いかもしれません。しかし、ガチでベアボーン的開発ならばここの情報は避けて通れません。

Electrical characteristics

ここがデータシートのメインテーマと言ってよいかもしれません。大きく分けると3部分になります(どのMCUメーカもだいたい同じです)

  • 絶対最大定格
  • 静的(DC)電気特性
  • 動的(AC)電気特性

絶対最大定格、Absolute maximum ratingsは、これを越えたら「壊れるかも」という線を規定するものです。正常動作を保証する範囲ではありません。デバイスが破壊されない為の規定です。その範囲は、正常な動作を保証できる範囲より広いことが多いので、その中であっても意図通りには動作しないかもしれません。これを越えてしまって壊れても使った人の責任と言われるでしょう。

後の2つは、今回対象のデータシートでは、Operating conditionsの中でまとめて書かれています。DC電気特性は、電圧何Vとか、電流何mAとか、正常動作させるために必要な電気的な入力条件と、その条件を守って動作させた場合の出力条件の規定です。AC電気特性は、何MHzとか、何msとか、時間にかかわる動作の規定です。2つはバラバラのものではなく、何Vから何Vに至るまでに何マイクロ秒といった形で関係します。表と図(多くはタイミングチャート)で表されます。回路を設計し、評価するのであれば、これらの数字は避けることができません。また、デバイスを作る側も、ここの数字に嘘があっては、大問題となるので、特性を評価し、製造時のバラツキなどを評価し、この数字なら保証できるという数字を作り込んでいます。たった一つの数字の決定に、何か月もかかる場合もあります。

Package characteristics

さきほどPin descriptionは、ピンの意味と配置の規定でした。こちらはパッケージそのもののメカニカルなサイズと公差の規定です。実際に基板を設計し、その基板上にパッケージを実装するにあたっては必須な情報です。またパッケージ上に印字されるマーキングの規定がないと、実装は困ってしまいます(実装機の多くはマーキングを自動認識します)。また、パッケージの熱的な特性情報、代表的には半導体内部のジャンクションと外気の間の熱抵抗も記載されたりします。この部分は動作速度と消費電流に関係します。なお、会社によっては、ハンダ・リフローのプロファイルのようなものも記載されているかもしれません。あるいはベイクの条件なども(吸湿したプラスチックパッケージを高温のハンダ槽に入れると「爆発」します。端っこが欠ける程度のカワイイものですが、デバイスは不良となります。)

Part numbering

買う側の購買担当者や、売る側の営業担当者であれば、決して間違えてはならない重要情報です。無味乾燥な数字と文字の羅列を一文字でも間違えば、大問題となります。

Revison history

たまに最新版のデータシートをダウンロードして確かめておいた方が良いでしょう。大抵は些細なことかもしれませんが、稀に、何か重大な更新があることがあります。なにか重大な変更がある場合、普通は営業担当者が、受け持ちの設計者などに注意喚起したりするものですが、気付かずにいるとビックリでは済まないかもしれません。

データシートを読む(2) STM32F401xD/xE その2へ進む