MCUプラットフォームの選択方法は?[閉まっている]


43

多数のMCUプラットフォームがあり、誰かが一度慣れると、他のプラットフォームへの切り替えに消極的になります。

私の質問は、今日汎用タスクにMCUを使用し始めた場合、MCUを選択するにはどうすればよいでしょうか?さまざまなプラットフォームのユニークなセールスポイントは何ですか?


2
考えているプロジェクトとボリュームの種類を教えてください。質問に答えるのに役立ちます。
Rocketmagnet

3
汎用でずっと広すぎます。自転車のLEDの点滅と高解像度タッチカラーLCDを備えたRTOSに同じuCを使用することはほとんど意味がありません。
Wouter van Ooijen

1
はい、さまざまなサイズの問題に精通している複数のチップが理想的です。タスクに特に適している場合は、新しいチップをピックアップする準備ができています。
クリスストラットン

2
@WoutervanOoijenこの質問のアイデアは次のとおりです。プラットフォームのいずれかで簡単に処理できるタスク(つまり、汎用タスク)が多数あります。プラットフォームのいずれかを自由に選択できます。この場合、使いやすさ、外部コンポーネント数などの「ソフト要因」が支配的になります。-さまざまなプラットフォームが他のプラットフォームと比べてどの程度うまく/悪いかを知りたい。
ARF

7
宗教
vicatcu

回答:


30

1年後、マイクロコントローラを選ぶというテーマで講演を行いました(約1.5時間かかりました)。聴衆は、高レベルのソフトウェアプログラマーとメーカーでした。聴衆の大半は以前にμCの経験がなく、残りはArduinoのみでプレイしました。聴衆の人数は約30人でした。したがって、1対1のクリニックではなく、これはマルチキャストでした。

講演の主なスライドは次のとおりです。

次元

マイクロコントローラの比較用。リストは降順です。

  • 開発環境(ツールチェーン)
    • 開発環境
    • 開発環境について言及しましたか?
  • サポート
    • アプリケーションノート
    • ピアサポート:部族の知識、友人、フォーラム、コード[原文]
  • 特徴
    • 記憶
    • 周辺機器
    • 計算力
  • 消費電力
  • コスト

PS

私のこの答えが制限される範囲を定義する必要があります。このプラットフォーム選択の質問は、2種類のレンズを通して見えます。最初のものはプロトタイパーです。2つ目は、プロフェッショナル向け機器の開発者で、価格は約3,000ドルで、年間数百台の量です。趣味のレンズもそれほど遠くありません。これらの場合、マイクロコントローラーの増分コストは、開発のコスト、またはマイクロコントローラーが使用される業務用機器のコストに比べて小さくなります。

もちろん、大量生産にはまったく異なる視点があります。誰かが大量に生産される安価なデバイスにマイクロコントローラーを選択するとき(主流のおもちゃが良い例です)、それらはハードウェアのコストに左右されます。ハードウェアコストの控えめな節約に大量の生産量(数十万以上)を掛けることで、扱いにくい開発環境と中程度のサポートを備えたお買い得価格のマイクロコントローラーを使用する苦痛を正当化できます。


開発環境に焦点を合わせます。私には理にかなっています。あなたの結論は何でしたか?
ARF

@ArikRaffaelFunkeさて、上記の私の投稿の箇条書きは結論です。決定的ではありませんか?私の講演の目的は次のとおりでした。(1)選択プロセス中に尋ねる必要のある質問の最小リストを提供します。(2)答えを探す場所と方法を示します。線に沿って難しい結論を出すことを特に避けました。家族Xは…なら良い、家族Yはいいなら…
ニックアレクセエフ

1
少量および典型的な要件の場合、はい。しかし、時には最高のテクノロジーを選択する必要があります。または、ボリュームが膨大な場合、ウィジェットごとに数セントを節約すれば、開発のかなり大きな頭痛の種を正当化することができます-競合するパーツに基づいたソリューションをテストしてジャンプする準備ができていることを含みます。
クリスストラットン

1
@ChrisStratton消費電力は[生産量の高い効果に加えて]別の問題であり、時には頭痛の種を正当化できます。彼が非常に低電力の動作を望んでいて、uC(彼が選択した)がそれをサポートできないなら、ほとんど誰もできません。
ニックアレキセフ

9
開発環境への焦点は絶対に正しいです。あなたは世界で最高のチップを持つことができますが、いまいましいものをプログラムしてデバッグできないなら、それはレンガになるかもしれません。NXPについては良いことを聞いたことがありますが、直接的な経験はありません。フリースケールは貧弱だと思っていましたが、その後TI(MSP、次にDM36x)を試してみましたが、今ではフリースケールは私の目を輝かせています。ANYのdevの環境とのベストアドバイス:ビルド/仮想マシンにインストールして、OSなどをアップグレード/移動コンピュータを壊さないように、完全に動作する状態でのバックアップを保つ...
ジョン・U

25

この質問は、私が期待していたプラットフォームの比較を十分に生成していないため、他の回答と同様に文学を研究することで自分で作成しようとしました。たぶん、これは将来他の誰かを助けることができるでしょう。

間違いがある場合、または追加できる情報がある場合はお知らせください。


プラットフォーム比較

比較に関する注意:

  • IDE:無料版に関連するコメント

PIC:

  • 最も安いエントリーレベルのチップ
  • 多くは内部電圧レギュレータを備えています
  • 所定の価格で、通常より多くのより良い周辺機器を
  • 準業界標準:非常に優れたライブラリと開発者サポート
  • IDE:NetBeansベースの傑出した、完全なオフラインシミュレーションとデバッグを含む
  • サードパーティのデバッガー:約25ドル
  • 非常に幅広いパッケージ
  • ユニークなセールスポイント:1. XLP =利用可能な特別な低電力デバイス。2.最新のチップの多くには、タッチボタンなどの静電容量センシングモジュールがあります。

AVR:

  • AVRは通常、周辺機器の更新に遅れをとっており、若干高価です。ただし、全体として、AVRは機能と価格の点でPICと非常に似ています。
  • 8ビットAVRチップは8ビットPICチップよりも高速です
  • サードパーティのエミュレーター:約20ドル
  • 非常に幅広いパッケージ

Arm Cortex-M:

  • 最新のプロセッサアーキテクチャ:メモリバンキングなし、優れたマルチタスク
  • 最も安い32ビットデバイス
  • 異なるチップと異なるメーカー間での移動がかなり簡単
  • デバイスは通常、PICよりも多くの外部コンポーネントを必要とします
  • ROMブートローダーを備えた非常に安価なUSBデバイス:NXP LPC1342 / LPC1343
  • 合理的なライブラリサポート
  • IDE:合理的、オフラインシミュレーションなし
  • SWDインターフェースにより、インシステムプログラミング、デバッグ、および構築が容易なハードウェアによるトレースが可能になります(
  • 安価なNXPチップは、小ピッチまたはピンレスパッケージでのみ提供されます
  • セールスポイント:1.最も安価な32ビットプラットフォーム。2. USB ROMブートローダーを備えた最も安価なプラットフォーム

PSoc:(Rocketmagnetの回答より)

  • アナログ周辺機器に関しては、キング:特定のチップを内部で再構成して、異なるアナログおよびデジタル周辺機器を提供できます
  • PICよりもかなり高価
  • IDE:すばらしい
  • 88ドルのプログラマー(デバッグは可能ですか?)
  • SMDパッケージのみ

プロペラ:(Rocketmagnetの回答より)

  • マルチコアMCU:さまざまなコアがさまざまなタスクでシミュレートできる
  • 従来の割り込みの必要性を排除/削減(?)
  • いくつかのハードウェア周辺機器は、いずれかのコアで実行するために明示的にコーディングする必要があり、信じられないほどの柔軟性を提供します
  • アナログ周辺機器に関しては弱い
  • IDE:すばらしい
  • DIPパッケージが利用可能

アプリケーションごとの比較

USB:

以下のリストの「凡例」:

  • ブートローダー=事前にプログラムされたUSBブートローダー
  • 電圧レギュレータ=外部レギュレータなしでバスから給電可能
  • プルアップ=外部プルアップは不要
  • インピーダンス整合=外部整合抵抗は不要
  • 高精度発振器=外部水晶振動子は不要

最も安価なデバイスのプロパティ:(おおよその価格順)

  • PIC:8ビット、低速および全速、電圧レギュレータ、プルアップ、インピーダンス整合、ESD保護
  • NXP:32ビット、ブートローダー、フルスピードのみ、ESD保護
  • フリースケール:8ビット、低速のみ、電圧調整器、インピーダンス整合、ESD保護
  • Atmel:8ビット、ブートローダー、フルスピードのみ、電圧レギュレーター、プルアップ、ESD保護
  • STM:32ビット、ブートローダー、フルスピードのみ、プルアップ、インピーダンスマッチング、ESD保護
  • Silicon Laboratories:8ビット、低速および全速、電圧レギュレータ、プルアップ、インピーダンスマッチング、高精度発振器
  • TI:32ビット、ブートローダー、低速および全速、その他のプロパティは不明
  • PSoc:モジュールとして設定可能、その他のプロパティは不明
  • プロペラ:32ビット、ビットバンギングのみ

イーサネット:

  • PIC:PHYが統合された最も安価なデバイス

1
ここでいくつかのメモ:Propellerには割り込みがまったくなく、公式IDEでのデバッグはサポートされていません。代わりに、好ましいデバッグメカニズムは、Thingをテレビに接続し、画面に変数を表示する提供されたライブラリを使用することです。また、コード補完、シミュレーター、コード管理システムとの統合、インクルードの異常な実装もありません...私の知る限り、コアあたり2つのカウンター以外のハードウェア周辺機器はありません。
AndrejaKo

2
プロペラに関する注意-割り込みはありません。まったく。従来の割り込みに似たものが必要な場合は、追加のCPUコアをスピンアップして、スピンウェイトさせます。
コナーウルフ

4
そのようなリストは、ほぼ必然的に無意味で古くなっています。すべてのメーカーは常に競合しており、ほとんどは各カテゴリで何かを提供しようとしています-必要に応じて調査を行い、解決策を選択し、それが機能する場合は必要になるまでそれを実行しますより良い解決策があります。
クリスストラットン

2
価値のあるものについては、MSP430ラインをその超低消費電力のためにここに含めることができます
boardbite

2
「Embedded Systems / Particular Microprocessors」には、プロセッサの選択方法に関する同様の情報があり、同様に編集して(できれば)最新かつ比較的中立に保つことができます。
-davidcary

7

MCUの選択は、作業するプロジェクトの種類に大きく依存します。点滅する自転車のライトのような、大容量で超安価でシンプルなデバイスを作っていますか?多数の奇妙なIOデバイスとセンサーを処理しなければならない複雑なプロトタイプロボットを開発していますか?

私は主に後者に取り組んでいます。私にとっての主な問題は、必要な周辺機器セットを備えたマイクロコントローラーを見つけようとすることです。私たちの要件は主流ではないと思われるため、これは非常に困難です。5つのPWMチャネル、5つの直交デコーダ、2つの非標準SPIポート、IOが無効になったUARTなどが必要です。

これらの要件を簡単に処理できるMCUは、PSoCとPropellerだけです。

プロペラチップ

Propellerは、基本的に1つのチップに8つの32ビットMCUがあります。ある種の周辺機器が必要な場合は、MCUの1つをプログラムしてそのジョブを実行するだけです。好きなものを手に入れることができます。

PSoC

PSoCには2つのフレーバー3と5があります。3は8051コアで、5はARM cortex M3です。チップには、ADC、フィルター、オペアンプ、DAC、SPI、UART、直交デコーダー、CRCジェネレーターなどの幅広い周辺機器を作成できる再構成可能なデジタルおよびアナログブロックも含まれています。

開発環境は素晴らしいです。通常のIDEの通常のソースコード編集がありますが、回路図エディターもあります。好きなデジタル回路を文字通り配線して、周辺機器をゲート、フリップフロップなどで接続することができます。5つのPWMが必要ですか?簡単です。それらを回路図に入れて配線するだけです。提供されていないものが必要な場合は、Verilogで独自の周辺機器を作成することもできます。アプリケーションの大部分は、この種のハードウェアに簡単に実装できます。

本当の利点は、1つのチップにこだわることができることです。これにより、将来的にやりたいプロジェクトの多くに取り組むことができます。PICについて迷惑なのは、必要な特定の周辺機器セットを備えたデバイスを探している何十ものデバイスを常に探し回っていることです。今、私はその問題を抱えていません。


プロペラは不思議な概念です。そのことについて少し考えなければなりません。PSoCについて:信じられないほどの柔軟性のために過去にそれらを検討しましたが、250ドルのプログラマーの必要性が私にとってそれをほとんど初心者ではありませんでした。
ARF

@ArikRaffaelFunke-プログラマーはわずか88ドルで、ICD3の半分の価格です。
Rocketmagnet

@ArikRaffaelFunke-もう1つの考慮事項はパッケージングです。独自のプロトタイプの構築を計画している場合、DIPパッケージを使用する方がはるかに簡単です。ほとんどのPICおよびATmel AVRは、プロペラと同様にDIPで提供されます。PSoC 3および5はサポートしていません。
-tcrosley

3
schmartboardには、使いやすいsmtソリューションがあります:youtube.com/watch
v

1
@ quantum231:私はそれを考えましたが、1)FPGAは一般にマイクロコントローラーよりも大きく、高価であるように見えました(そしてロボットはしばしばスペースが非常に不足しています)。また、2)FPGAの経験があまりないので、マイナーなアプリケーションのためだけにまったく異なるツールセットと考え方を学ぶ必要があります。
Rocketmagnet


3

複数のプラットフォームを使用しても構いません。各ジョブに最適なものを選択し、そのジョブに関連するコードと例も入手できます。

それらのほとんどには優れた開発ツールがあり、arduinoにはビジュアルスタジオがあり、picには素晴らしいツールがあります。だから、私にとっては、どれだけ早く簡単に仕事を成し遂げることができますか?+同じことをしているオープンソースの人々は何人ですか?


しかし、マーケティングの混乱に惑わされることなく、どのようにしてそのような情報を見つけるのでしょうか。つまり、すべての情報を取得するためにハードウェアとツールチェーンを使用した人を見つける必要があります。仕事でそのようなコミュニティをどのように見つけますか?それとも、アプリケーションエンジニアの指示に頼っていますか?
quanti231

このようなさまざまなフォーラムで質問することができます。あなたのアプリケーションを説明し、助けを求める
ビジュアルマイクロ

2

マイクロコントローラは急速に変化する世界であり、現在の「イン」チップで学習することには多くの利点があり、最も人気のあるIDEの最も注目すべきことはコミュニティからの支援を得ることです。PICの担当者として、Aduinoには現時点で初心者向けの最高のIDEおよび開発ボードがあり、はんだごてに触れることなく基本的なaduinoボードに多くの機能を追加できます。

現実のものにaduinoを使用している人はすぐに先に進みたいと思うかもしれませんが、その頃には、より適切なものを簡単に使用するための基本的なデジタルエレクトロニクスとCの優れたサブセットをたくさん学んでいるでしょう。

誰かがあなたのプロジェクトにチップを選んだと言ったように、私はARMチップを単純な温度センサーまたはADコンバーターとして使用しているいくつかのプロジェクトを見ました。同じように、スペース侵略者ゲーム、FPGAのエレクトロニクス設計に真剣に取り組むなら、HDLを理解することも重要です。しかし、残念ながら、現実の世界では、大部分のジョブを使用する必要があるプロジェクトは多くありません。これが8ビットuCが最高の君臨する場所です


私は、人がそれらを超えて人を動かすことになるArduinoの制限は何ですか?ARMはPICおよびArduinoよりも高い処理能力を備えていますか、PICおよびArduinoにない周辺機器を備えていますか、またはPICおよびArduinoに存在するものよりも優れたツールチェーンですか?なぜARMベースのチップに関するノイズがそれほど多いのか。消費電力が非常に低いことは知っていますが、なぜ「深刻な」プロジェクトにARMが選ばれるのでしょうか?
quanti231

1

投稿された回答の多くは愛好家の使用に焦点を当てているため、プロの開発者のみを対象としたさまざまな推奨事項があります。

最低限の要件
MCUがこれらのすべてを満たしいない場合、使用しないでください。

  • 少なくとも1年間生産されています。
  • シリコンエラッタが利用可能であり、少なくとも一度修正されています。
  • 内部ウォッチドッグ。
  • 内部低電圧/ブラウンアウト検出。
  • オンチップのフラッシュメモリ。
  • ESD保護。
  • JTAG / SWDまたは一部の単線デバッグインターフェイス。
  • コアは8ビットバイトと2の補数の符号を使用します。
  • サンプルと評価ボードはすぐに入手できます。
  • 製造元から直接レスポンシブテクニカルサポートを提供しています。

警告サイン-MCUハードウェア
これらは2019年に時間を無駄にすべきではないものです。

  • プログラマーが処理しなければならないあいまいなアドレス指定モード。ROMデータにアクセスするためのあいまいな非標準キーワードの使用を含む。
  • 深刻なスタックメモリまたはスタック深度の制限。
  • 16ビットにはint、C言語の整数プロモーションのすべての隠れた危険が伴います。
  • 沸騰を開始せずに16または32ビット演算を実行することはできません。
  • データセクションでコードを実行してもトラップしません。
  • 命令トレースバッファなし。
  • 使い物にならないエキゾチックなハードウェア周辺機器が付属しています。

警告サイン-ツールチェーン

  • MCU全体をフラッシュしてオンチップ実行/デバッグを使用する代わりに、PCのソフトウェアシミュレーターまたは何らかのブートローダーに依存します。
  • 専門家によって作成された事前作成のドライバ/サンプル/ライブラリは付属していません。開発者が車輪を再発明するか、インターネットフォーラム/オープンソースに依存しています。
  • CコンパイラのCRTは、ここにリストされている要件を満たしていません。
  • Cコンパイラには、サポートされていない標準C機能の長いリストが付属しています。
  • CコンパイラはまだC11をサポートしていません(使用するかどうかに関係なく)。
  • IDEは、「hello world」プログラムを最初に試行したときに、複数の奇妙なリンカーエラーを吐き出します。
  • 使用の最初の数週間で多くのIDEまたはコンパイラのバグに遭遇しました。

これは過度に独断的です。コスト、パッケージオプション、(オープンソース!=専門外)、周辺機器の品質などを完全に省略しました。これの大部分には一般的に同意しませんが、「スタック[...]制限」などそもそもこれらの制限につながったトレードオフを知る必要があるということです。
awjlogan

@awjloganコストとパッケージのオプションはプロジェクト固有であるため、ここで説明するのは意味がありません。私はオープンソースが専門的でないとは言いませんでしたが、ツールチェーンをオープンソースに外注し、SOのようなサイトへのサポートを提供する会社は専門的ではありません。貢献者が少なすぎるオープンソースプロジェクトは、さまざまなエキゾチックMCUへのオープンソースコンパイラポートでわかるように、どちらも専門的ではありません。2019年に制限されたスタックとMCUを選択する任意の理由があってはならない
ランディン

確かに、それらはプロジェクト固有ですが、リストで16/32ビットのみを指定することでベースラインコストをすぐに増やしており(Digikeyのクイックスキャン)、最近6ピンM0を見たことはありません。あなたが何か(時間を含む)を必要としないなら、余分なお金を費やさないでください、それはあなたがプロとして下すべき決断です。しかし、はい、優れたツールは非常に重要であり、これ以上同意することはできません。
awjlogan

@awjlogan LPC81Xは5年以上使用されています。最近、サイプレスのPSoC4がおもしろそうだとわかりました。等々。ピンの数は多くの場合引数ではなく、パッケージのサイズとタイプにすぎません。QFNまたはBGAを許容できる場合、非常に小さなチップを入手できます。
ランディン

同意して、あなたの選択は小さいサイズで狭められます(ただし、どのアーキテクチャでも同じです)。私の全体的なポイントは、あなたのリストにあるすべてのものが望ましいが、それらをいつ破るのかを知るのに十分な知識を持たなければならないということです。
awjlogan

0

アナログおよびデジタル処理が可能な汎用タスクを行う場合は、IDE、デバッガー、およびそれらを使用して実行できることの数が多いため、PSoCを優先します。

私は大学でPSoC3をプロジェクトに使用しましたが、マスターするのは非常に簡単です。唯一のことは、パフォーマンスチップが必要な場合でも、個別に入手する必要があるということです。十分なポートがあります。そのため、開発キットと一緒にいくつかのパフォーマンスチップを探している場合は、個別のコンポーネントをお勧めします。


1
これをより便利にするために、PSoCにもう少し情報を追加する価値があるかもしれません。他のいくつかの答えがすでにそれをカバーしています。
PeterJ 14

@PeterJ:Rocketmagnetの回答に対するコメントとしてこれを提供したかったのですが、コメントする評判はありません。
ganesh737 14

アルテラFPGAでNios IIを使用したり、ザイリンクスFPGAでmicroblaze / picoblazeを使用したりするようなソフトコアベースの設計に進まなかった理由はありますか?PSoCと同じ効果を得るために使用でき、多くの点で優れた選択肢であると私は主張します。
quanti231

1
@ quantum231:私はそれを受け入れますが、当時の私にとっての主な制約は予算であり、これはエレクトロニクス部門で無料で利用できました。
ganesh737
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.