多数のMCUプラットフォームがあり、誰かが一度慣れると、他のプラットフォームへの切り替えに消極的になります。
私の質問は、今日汎用タスクにMCUを使用し始めた場合、MCUを選択するにはどうすればよいでしょうか?さまざまなプラットフォームのユニークなセールスポイントは何ですか?
多数のMCUプラットフォームがあり、誰かが一度慣れると、他のプラットフォームへの切り替えに消極的になります。
私の質問は、今日汎用タスクにMCUを使用し始めた場合、MCUを選択するにはどうすればよいでしょうか?さまざまなプラットフォームのユニークなセールスポイントは何ですか?
回答:
1年後、マイクロコントローラを選ぶというテーマで講演を行いました(約1.5時間かかりました)。聴衆は、高レベルのソフトウェアプログラマーとメーカーでした。聴衆の大半は以前にμCの経験がなく、残りはArduinoのみでプレイしました。聴衆の人数は約30人でした。したがって、1対1のクリニックではなく、これはマルチキャストでした。
講演の主なスライドは次のとおりです。
次元
マイクロコントローラの比較用。リストは降順です。
- 開発環境(ツールチェーン)
- 開発環境
- 開発環境について言及しましたか?
- サポート
- アプリケーションノート
- ピアサポート:部族の知識、友人、フォーラム、コード[原文]
- 特徴
- 記憶
- 周辺機器
- 計算力
- 消費電力
- コスト
PS
私のこの答えが制限される範囲を定義する必要があります。このプラットフォーム選択の質問は、2種類のレンズを通して見えます。最初のものはプロトタイパーです。2つ目は、プロフェッショナル向け機器の開発者で、価格は約3,000ドルで、年間数百台の量です。趣味のレンズもそれほど遠くありません。これらの場合、マイクロコントローラーの増分コストは、開発のコスト、またはマイクロコントローラーが使用される業務用機器のコストに比べて小さくなります。
もちろん、大量生産にはまったく異なる視点があります。誰かが大量に生産される安価なデバイスにマイクロコントローラーを選択するとき(主流のおもちゃが良い例です)、それらはハードウェアのコストに左右されます。ハードウェアコストの控えめな節約に大量の生産量(数十万以上)を掛けることで、扱いにくい開発環境と中程度のサポートを備えたお買い得価格のマイクロコントローラーを使用する苦痛を正当化できます。
この質問は、私が期待していたプラットフォームの比較を十分に生成していないため、他の回答と同様に文学を研究することで自分で作成しようとしました。たぶん、これは将来他の誰かを助けることができるでしょう。
間違いがある場合、または追加できる情報がある場合はお知らせください。
比較に関する注意:
PIC:
AVR:
Arm Cortex-M:
PSoc:(Rocketmagnetの回答より)
プロペラ:(Rocketmagnetの回答より)
USB:
以下のリストの「凡例」:
最も安価なデバイスのプロパティ:(おおよその価格順)
イーサネット:
MCUの選択は、作業するプロジェクトの種類に大きく依存します。点滅する自転車のライトのような、大容量で超安価でシンプルなデバイスを作っていますか?多数の奇妙なIOデバイスとセンサーを処理しなければならない複雑なプロトタイプロボットを開発していますか?
私は主に後者に取り組んでいます。私にとっての主な問題は、必要な周辺機器セットを備えたマイクロコントローラーを見つけようとすることです。私たちの要件は主流ではないと思われるため、これは非常に困難です。5つのPWMチャネル、5つの直交デコーダ、2つの非標準SPIポート、IOが無効になったUARTなどが必要です。
これらの要件を簡単に処理できるMCUは、PSoCとPropellerだけです。
Propellerは、基本的に1つのチップに8つの32ビットMCUがあります。ある種の周辺機器が必要な場合は、MCUの1つをプログラムしてそのジョブを実行するだけです。好きなものを手に入れることができます。
PSoCには2つのフレーバー3と5があります。3は8051コアで、5はARM cortex M3です。チップには、ADC、フィルター、オペアンプ、DAC、SPI、UART、直交デコーダー、CRCジェネレーターなどの幅広い周辺機器を作成できる再構成可能なデジタルおよびアナログブロックも含まれています。
開発環境は素晴らしいです。通常のIDEの通常のソースコード編集がありますが、回路図エディターもあります。好きなデジタル回路を文字通り配線して、周辺機器をゲート、フリップフロップなどで接続することができます。5つのPWMが必要ですか?簡単です。それらを回路図に入れて配線するだけです。提供されていないものが必要な場合は、Verilogで独自の周辺機器を作成することもできます。アプリケーションの大部分は、この種のハードウェアに簡単に実装できます。
本当の利点は、1つのチップにこだわることができることです。これにより、将来的にやりたいプロジェクトの多くに取り組むことができます。PICについて迷惑なのは、必要な特定の周辺機器セットを備えたデバイスを探している何十ものデバイスを常に探し回っていることです。今、私はその問題を抱えていません。
私にとって最も重要な要件は、デバイス/ IDEが非Windows PC(Linux)で十分にサポートされているかどうかです。Atmel AVRはPICよりも優れた(オープンソース)サポートを持っていることがわかりました。
複数のプラットフォームを使用しても構いません。各ジョブに最適なものを選択し、そのジョブに関連するコードと例も入手できます。
それらのほとんどには優れた開発ツールがあり、arduinoにはビジュアルスタジオがあり、picには素晴らしいツールがあります。だから、私にとっては、どれだけ早く簡単に仕事を成し遂げることができますか?+同じことをしているオープンソースの人々は何人ですか?
マイクロコントローラは急速に変化する世界であり、現在の「イン」チップで学習することには多くの利点があり、最も人気のあるIDEの最も注目すべきことはコミュニティからの支援を得ることです。PICの担当者として、Aduinoには現時点で初心者向けの最高のIDEおよび開発ボードがあり、はんだごてに触れることなく基本的なaduinoボードに多くの機能を追加できます。
現実のものにaduinoを使用している人はすぐに先に進みたいと思うかもしれませんが、その頃には、より適切なものを簡単に使用するための基本的なデジタルエレクトロニクスとCの優れたサブセットをたくさん学んでいるでしょう。
誰かがあなたのプロジェクトにチップを選んだと言ったように、私はARMチップを単純な温度センサーまたはADコンバーターとして使用しているいくつかのプロジェクトを見ました。同じように、スペース侵略者ゲーム、FPGAのエレクトロニクス設計に真剣に取り組むなら、HDLを理解することも重要です。しかし、残念ながら、現実の世界では、大部分のジョブを使用する必要があるプロジェクトは多くありません。これが8ビットuCが最高の君臨する場所です
投稿された回答の多くは愛好家の使用に焦点を当てているため、プロの開発者のみを対象としたさまざまな推奨事項があります。
最低限の要件
MCUがこれらのすべてを満たしていない場合、使用しないでください。
警告サイン-MCUハードウェア
これらは2019年に時間を無駄にすべきではないものです。
int
、C言語の整数プロモーションのすべての隠れた危険が伴います。警告サイン-ツールチェーン
アナログおよびデジタル処理が可能な汎用タスクを行う場合は、IDE、デバッガー、およびそれらを使用して実行できることの数が多いため、PSoCを優先します。
私は大学でPSoC3をプロジェクトに使用しましたが、マスターするのは非常に簡単です。唯一のことは、パフォーマンスチップが必要な場合でも、個別に入手する必要があるということです。十分なポートがあります。そのため、開発キットと一緒にいくつかのパフォーマンスチップを探している場合は、個別のコンポーネントをお勧めします。