キネティスvs STM32


8

新しい産業用制御アプリケーションを探しています。検索結果から、アプリケーションに適合するように見える2つのマイクロコントローラーに絞り込みました。STM32とキネティス。彼らは両方とも仕事をするのに非常に有能であるように見え、私は別のやや無関係なアプリケーションでSTM32をすでに使用しました。STM32ファミリーが好きなのは、ほとんどの場合ピン互換性のある構成が非常に幅広いためです。ただし、Kinetisは、バックプロセッサ/メモリの観点からは、もう少し強そうです。

それで、これらについてもう少し経験がある人への私の質問は...各家族の利点と欠点のいくつかは何ですか?

私のアプリケーションでは、ここで正確に間違った選択がされているわけではないと確信していますが、FreescaleとST以外の誰かに詳細を教えてください。私のアプリケーションの詳細がここでの要因である可能性があることを理解していますが、機能性に関しては、非常に幅広いアプリケーションです。別のコントローラーに移行するための最大の制限は、メモリ(最大16k RAM 256kフラッシュ)です。

どんな洞察もいただければ幸いです。ありがとう


STM32F4には、浮動小数点とDSPを備えたCortex-M4、および最大1MBのフラッシュと192 kB RAMがあります。いくつかの興味深い周辺機器を備えた安価なボードが入手可能です。
Leon Heller

コンフィギュレーションと成熟(異なるメモリと処理能力アウト同じピン).. STM32は、移動するための方法..です
KTC

2つ入る... 1つの葉。
joeforker 2013年

回答:


6

STM32(ST Microelectronics)とKinetisファミリー(Freescale)の中で、私はSTM32ファミリーのプロセッサーのみに取り組んできたので、STM32での私の経験を詳しく説明し、他の誰かが同じことをできることを願っていますキネティス、それであなたは二つを対比することができます。このリストは完全ではない可能性があり、単に私の経験に基づいています。

長所:

  1. STは、無料で入手できる各プロセッサ用のライブラリの大規模なセットを提供しています。これらのライブラリには、ハードウェアとの基本的な低レベルのインターフェイスのほとんどを実行するために必要な関数の膨大なリストが含まれており、あなたの人生をずっと単純にすることができます。

    例:void GPIO_Init(GPIO_TypeDef * GPIOx、GPIO_InitTypeDef * GPIO_InitStruct)これは、GPIO_InitStructで指定されたパラメーターに従ってGPIOxペリフェラルを初期化します。

    GPIO構造を入力し(このプロセスをガイドするサンプルプロジェクトがあります)、GPIO_init関数を呼び出します。これにより、少なくとも4〜5個のレジスタを検索し、各ビットが何であるかを理解する必要がなくなります。

  2. 彼らのマイクロコントローラには、完全ではないにしてもある程度までIPを保護するのに役立つ読み取り保護機能があります。世の中にはたくさんのマイクロコントローラーがありますが、実際にはあまりうまくいっていません。

  3. それらには、必要に応じてオン/オフできるさまざまなレベルの省電力機能を備えた低電力マイクロコントローラーのファミリーであるL1シリーズがあります。

  4. ARM CM3コアのバージョンを現在製造している多くのメーカーがありますが、STのFシリーズチップにはいくつかの改訂があり、完全にバグがないわけではありませんが、かなり成熟しています。

  5. 私が取り組んできたほとんどすべてのバリアントには、大量のタイマーやその他の周辺機器があり、それらを十分に利用することはできません。:)

  6. あなたが始めるために、彼らは彼らの評価ボードにプログラムすることができるいくつかのサンプルプロジェクトを持っています、彼らはほとんど常に無料であなたを与えます。他のほとんどのメーカーも同じだと思いますが。

短所:

  1. 上記のライブラリは間違いなく多くのことを助けますが、関数名のいくつかは直感的ではなく、命名規則を理解するのにしばらく時間がかかります。これはライブラリ全体に当てはまるわけではありませんが、十分にコメントされていないコードがかなりあり、実際にそれを読んで何が行われているかを理解する必要があります。

  2. それらのライブラリを使用していて、プロジェクトのMISRAチェックをオンにしたい場合、コードがMISRAに準拠していないように見えるため、大量のエラー/警告が表示されます。それらのライブラリをMISRAチェックから除外する方法を見つける必要があります。これを回避する方法はいくつかありますが、そのためには少し作業が必要です。

  3. 私が取り組んだプロセッサに関するSTのドキュメントは少し貧弱です。彼らのデータシートはあまりよく書かれていません。情報は、1つの中央/メイン文書にはありません。リファレンスマニュアルと呼ばれるもの、大量のアプリケーションノート、少なくとも1つのデータシートがあります。目的の情報を見つけるために、これらのドキュメントを実際に調べなければならない場合があります。

    それらはGPIOポートを説明することが多く、ビットの1つの推奨設定
    は50ページ後に説明される場合があります。

それが現時点で私が考えることができるすべてです、うまくいけば、これはあなたにSTM32製品についてのアイデアのビットを与えます。他に考えられることがあれば、さらに追加します。

両方のタイプのマイクロコントローラー(Kinetis 1とSTM32 1)の評価ボードを入手することをお勧めします。

それはあなたのニーズに最も合った本当に良い感触を与えます。


1
メーカーがライブラリにすべての独自の識別子を定義して使用させないようにしてください。GPIOポートを構成するには、さまざまなモードの意味を知るために、マニュアルですべての関数レジスタを調べる必要があります。その情報を直接使用してコードを記述できることは、ライブラリとそのドキュメントを調べてどのように定義されているかを確認するよりも役立つでしょう。
スーパーキャット2014

@supercatインフィニオンのDAVE IDEをご覧ください。基本的に、GUIを介して「アプリ」と呼ばれるものを追加し、DAVEがコード生成を処理します。
チー

3

K70には非常にバグのあるシリコンがあります。多くの場合、あなたが説明した周辺機器はライト機能しか持っていません。たとえば、外部メモリでキャッシュを使用するのは良いことですが、このメモリをDMAで使用する場合は、キャッシュを手動でフラッシュする必要があります。K70にはLCDコントローラーが搭載されていますが、480x272よりも高い解像度を実現することはほぼ不可能です。K70にはモンスタークロックジェネレーターがありますが、バスクロックの代わりに使用できる周辺機器はごくわずかです。
最も重要なことは、複雑な低電力管理が機能しないことです。


2

KinetisをSTM32F4 Cortex-M4プロセッサと比較していると思います。私も実際に使用したことはありませんが、次のプロジェクトでの使用の可能性を検討しています。TI-Stellarisから入手可能なAtmelおよびNXPによって発表されたM4デバイスファミリもあり、その多くに浮動小数点プロセッサ、シリアルポートのロード、およびタイマーが含まれます。

プロセッサ(FreescaleおよびST)のソフトウェアに関するサポートは、FreescaleがインターフェイスライブラリとロイヤリティフリーのRTOSを部品に提供することで見栄えが良くなります。STは、プロセッサと周辺機器の構成と使用を可能にする一連のインターフェイスライブラリを提供します。

STデバイスは、プログラムフラッシュへのワイドメモリバス(IIRC)を使用して、見積もり速度168MHzで処理速度の戦争に勝っているようです。これはあなたにとって重要な場合とそうでない場合があります。

Kinetisのパーツはより成熟しており、1年近く使用されています。その結果、さまざまなインターフェースと周辺機器セットを備えた非常に大規模なデバイスファミリが生産されています。STパーツの発売は約1か月ですが、ファミリーの発表と同時に複数のパーツがリリースされました。それらの部品の範囲は、Cortex-M3ファミリと同じように大幅に増加します。


STM32は、2年以上のために利用可能..ですのみF4は数ヶ月のために出ているが、F1 / F2は、私たちが..それを使用している...そこに2年以上出てきました
KTC

STM32 M3ベースのプロセッサが長い間使用されていることはよく知っています。質問はKinetisパーツ(M4ベース)に基づいているため、利用可能なM4プロセッサーファミリーを比較しました。
ɐɪ

確かに..しかし、M4とM3を比較すると、残りのブロックに関してはほとんど差がなく、自信があります。ARMはとにかくarmです
。ARM

2

STM32とKinetis K70での私の経験は、これらのプロセッサーでのuClinuxの実行に要約されます(これらのuClinuxポートに関する詳細情報は、こちらから入手できます)。

私の意見では、アプリケーションで外部RAMを使用する場合は、K70の方が適しています。


上記の私の投稿をさらに詳しく説明すると、K70には2つの8KBキャッシュがあり、1つはI / Dバス(基本的にはコードの実行に使用できるメモリ領域を対象としています)ともう1つはシステムバス(「非コード」メモリを対象としています) )。uClinuxのコンテキストで見られることから、キャッシュはシステム全体のパフォーマンスをいくぶん深刻な方法で改善するのに役立ちます。
ウラジミール・クサイノフ

1

最近、このスレッドに密接に関連する顧客の質問に答えていました。うまくいけば、これらのコメントは役に立ちます。

+++++++++++

K70とSTM32F2の違いを強調するには:

  • K70はCortex-M4で、STM32F2はCortex-M3です。つまり、K70はオンチップハードウェアFPUおよびDSPユニットを提供します。

  • K70はCortex-Mコアを150MHzで実行できます(現在利用可能なデバイスは120MHzに制限されています)。STM32F2は120MHzに制限されています。

  • K70は、オンチップDDRおよびNANDフラッシュインターフェイスを提供し、外部メモリデバイスに非常に高い密度を可能にします。

  • K70にはオンチップキャッシュがあります(I / Dおよびシステムバス用に2つの8KBキャッシュ)。これは、非常に深刻な方法で外部メモリの本当に最高のパフォーマンスです。

  • K70は、ソフトウェアが外部ツール(JTAGデバッガーなど)を使用してコピーできないようにするためのさまざまなセキュリティメカニズムを提供します。

  • K70には、LCDコントローラーとタッチインターフェイスが統合されています。

  • 同様のI / Oインターフェイスのセットですが、これは特定のアプリケーションの要件に対して測定する必要があります。

全体として、アプリケーションで外部メモリを使用している場合やGUIインターフェースが必要な場合は、K70が最適です。また、一般的に言えば、K70の方がパフォーマンスが優れています。

+++++++++++


K7xにはPGAを備えた16ビットADCがありますが、STM32にはありません。
Mehmet Fide 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.