ArduinoがAVRを使用しているのはなぜですか?それらが公式のプロセッサであることは理解していますが、コスト以外にコードをARMまたはFreescaleアーキテクチャに移植できなかった理由はありませんか?オンボードメモリがある限り、それらの部分に簡単に移行できると思いました。
業界には多くのARMがあり(すべてのベンダーが設計に押し込んでいるようです)、なぜだろうと思っていました。 「Arduino開発者の世界ではこれ以上の普及はありませんでした。
コメント
- あなたの市場は誰ですか?’業界で大きなものを販売しようとしている場合、’ ARMが必要になります。これは、Atmelが失敗した場合、’ ‘ AVRを使用している場合、何も残っていません。ARMを使用すると、’ニアドロップを提供する他のベンダーがたくさんあります- ARMの複雑さの増大は、’基本を知らない愛好家よりも優れたエンジニアにとってはそれほど問題ではありません。’愛好家に販売していると、学習曲線が急になりすぎて、プロセッサの能力が’使用されなくなり、 SMTは想像上のレンガの壁になります。あなたが心配しているのは誰ですか?愛好家の顧客または潜在的な雇用者ですか? pls。明確にします。
- 私は攻撃的であろうとはしていませんが、質問は尋ねられるように頼みます。 Atmelは25年以上前のものであり、ARM以外の市場で非常に成功しており、AVR自体は非常に成功したプラットフォームです。そのような会社が倒れる可能性は何ですか。これは、” Windowsを使用しないでください。MicroSoftがダウンした場合はどうなりますか?”
- 他の2つの点に同意します。つまり、愛好家の市場がある場合、ARMの全機能が利用され、SMTがレンガの壁になる可能性はほとんどありません。
- ‘ SAM3XE(ARM 32ビット)uCを搭載したArduino Dueはありますか?なぜなら、私は今手に持っているからです…
- “最近”実際にはArduino(ライブラリとIDE)を使用してプログラムできるARMベースのボードがあります。 Teensy 3.2は、この優れた例です。 sparkfun.com/products/13736
回答
誰かがあなたが何を開発しているのか気にしていますか?
はい、いいえ。私は特定のプロジェクトのためにAVR32で開発してきましたが、開発環境(特にコンパイル/プログラム/デバッグサイクル)は、たとえばPIC32と比較してひどいものです。
顧客はコストとメンテナンスを除いて気にしません。arduinoのようなシステムの場合、arduinoの環境と開発サイクルは現在のAVR32セットアップよりも飛躍的に優れているため、プログラマーは気にしません。
ArduinoファミリーにはAVRの非常に強力な条件があるので、私はただ疑問に思います。それらが公式のプロセッサであることは理解していますが、コスト以外にコードをARMまたはFreescaleアーキテクチャに移植できなかった理由はありませんか?オンボードメモリがある限り、それらの部分に簡単に移行できると思いました。
別のプロセッサを使用する理由はありません使用できませんでしたが、ARM、MIPS、PowerPCなどのデバイスではなくローエンドの8ビットデバイスを選択した「非常に正当な理由」があります。使いやすさ。
ローエンドアームのセットアップを見た場合、8ビットプロセッサよりも1桁複雑です(メモリマッピング、キャッシングなど)。しかし、さらに重要なのは、当時DIPアームプロセッサがなかったことです。これらはアーティストやハッカーが使用および構築できるものであり、必ずしも48ピンTQFPに慣れている電子技術者やエンジニアである必要はありません。
PICよりもAVRが選択された理由は、PICには、とりわけ、広く使用されているオープンソースの無料のCコンパイラが実際にはないためです(SDCCポートは成熟していません)。
業界には多くのARMがあり(すべてのベンダーがARMを設計に押し込んでいるようです)、Arduino開発者にこれ以上の採用がなかった理由を疑問に思っていました。世界。考え?
主にそれは使いやすさによるものです-複雑さ、はんだ付けのしやすさ、コスト、そしてそこにあるという事実「それはそれほど必要ではありません。開発者は多くの電力を持っているという考えを好みますが、あなたがする必要があるのは、いくつかのサーボを動かし、ローエンドのFFT、8ビットでいくつかのライトを点滅させることだけです。プロセッサは問題ありません。
28ピンパッケージで提供されるローエンドの皮質ARMSでさえ、DIPではなくSOICです。
したがって、AVRにはすべての適切な機能がありました。
- はんだ付けが簡単
- 世界中の通信販売で簡単に入手できます
- 無料のGCCCコンパイラ
- プロセッサと周辺機器のセットアップと使用法を理解しやすい
- 安い
- ユビキタス-AVRファミリーを取り巻く多くの人々と経験
大体これはまだ真実です-私は「ディップ形式のARMを知りません、そしてアダプターはそれをAVRよりかなり高価にします。ほとんどの場合、メーカーはそうしません」。 DIPパッケージの32ビットプロセッサが非常に有益になると思います。
コメント
- 1つはParallaxPropellerです。チップ上に8つの32ビットCPUがあり、DIL、QFP、およびQFNパッケージで提供されます。
- これはスポットオンです。ライセンスによるAVRover PIC、およびソフトウェアとツールチェーンのシンプルさとはんだ付け機能によるAVR overARM。あなた自身のプロジェクトでは、これは当てはまらないかもしれません。ただし、ARM-duinoを開発する場合は、他の同様のプロジェクトを確認してください。 ‘ AVRのようにキャッチしません。これは、Arduino開発環境が原因である可能性もあります。
- 使用しているAVR32ツール-私はAVR32とMSPの両方でIARを使用しており、この環境は非常に高性能であることがわかりました。コストはプロの環境では問題ではありません-エンジニアを1週間雇用するコストよりも少ないです。
- ツールに関するこの主張は克服できます-ArduinoはAVR32ポートも利用できるgccを使用しています。
- NXPには、DIPパッケージにいくつかのCortex-M0ARMが含まれるようになりました。 LPC11xxファミリーからだと思います。彼らのターゲット市場は、アプライアンスにおいて、非常に安価で低品質の片面PCBだと思います。
回答
あなたは意見を求めているようですので、ここに私の$ .02があります。私がARMとAVRのどちらで作業しているかは重要です(したがって、私は気にします)。主に私がやろうとしていることに基づいています。 。AVRが理にかなっているユースケースと、ARMが理にかなっているユースケースがあります。一般に、AVRとPICの間にはトレードオフもあります。
まず、私はおそらくこれを言うのに困るでしょう、” Arduinoファミリーの強い派遣団”は声の少数派のようなものです。私が出くわしたarduinoの人々(ユーザー)は、ハードウェアを同じように扱いたいと思っている種類の人です。Pythonスクリプトを作成して面白いことをします。多くの場合、複雑さについての理解度は低くなります。 numpyiから”を実行するときmport foo “。 Arduinoのやり方にはいくつかのメリットがありますが、批判の余地もたくさんあります。
Arduinoエコシステムとは別に、AVRを検討する価値があると思います。 Arduinoの派遣団は、AVRを愛好家向けのデファクトスタンダードにした理由からも大きな恩恵を受けています。Arduinoが登場する前から、PICからますます引き継がれているマントルです。AVRの直接の競合相手はPICとある程度MSP430は、主にTIの強力なマーケティング推進とその助成ツールの組み合わせにより勢いを増しています。
エコシステム
他の回答で言及されているように、 AVRは、無料のツールを使用してゼロからハローの世界に到達するためのクリーンで標準化された方法を備えた1つのファミリーです。avr-gccポート、winavrツールチェーンを構成する要素、さまざまな複雑さと機能を備えながらもバインドされた多数のプログラマー回路図avrdudeによるサポートから派生した権限により、ツールチェーンを機能させるよりもはるかに簡単になります。
PICのエコシステムは悪夢であり、コンパイラ、プログラミングツール、アセンブラなどがいくつもあります。ありますか。それらの多くは相互に互換性がありません。それらのほとんどは有料です。すべてが優れているわけではありません。さらに重要なことに、事実上の標準がありません。フリー/オープンソースの代替案(たとえば、SDCC)にはまだ多くの要望がありますが、それ以上に、avr-gccやcompanyのようなデファクトスタンダードのステータスを取得できていません。ソフトウェアツールチェーンがうまく機能したとしても、少なくとも何らかのプログラマーに投資する必要があります。 PICkitの価格は20ドル程度かもしれませんが、オンラインで購入する方法(クレジットカード、国際配送、外国為替の手間)を理解する必要がある場合は、愛好家にとっては取引を妨げる可能性があります。 ICのソースを見つけてから、Hello Worldがプログラムされ、LEDが点滅するまで、初心者に労力とリソースを投資する勇気を与えるために必要な標準化を備えた、優れた信頼性の高いプログラミング回路はありません。
MSP430の方がわずかに優れています。これは主に、MSP430が新しいためです(少なくとも人気の点では)-対処するノイズがはるかに少ないためです。 TIは、他では見たことのない効率でICサンプルを出荷します。mspgccは正常な状態であり、見つけたりセットアップしたりするのが難しくないオープンソースのデバッグソフトウェアもあります。ただし、問題は、AVRほど愛好家に優しいものではないことです。プログラマーの問題はまだあります。プログラマーの問題は、PIC用に購入する必要があるものよりも高価です。 3.3vの供給操作は、5vLogicに慣れている人々に認識された障壁をもたらします。そして、それはDIPでは拡張できません-利用可能なローエンドのものはありますが、より肉付けされたチップに到達すると、そうではありません。
使いやすさ
DIPとSMD、は、多くの場合信じられているよりも重要な違いです。DIPICは、ブレッドボード、汎用ボード、「住んでいる場所」などで使用できます。 SMD ICは必然的に製造を実行するか、必要なサイズや形状で入手するのが必ずしも容易ではないアダプタボードを購入する必要があります。
データシートの品質、アプリケーションノート、およびそれらの読みやすさ、また、違いを生みます。 Atmelはそれでわずかに良い仕事をしているようです。もちろん、これは非常に主観的な評価です。
AVRは内部RCを使用できますが、PICは使用しないことがよくあります。クリスタルが必要であるため、クリスタルと組み合わせると少し危険になります。 自信の欠如。
AVRは、数年前のPICと比較して、システムプログラミングに適しているように見えましたが、非常に簡単に間違っている可能性があります。
AVRとARM
ただし、あなたの質問はAVRとARMの関係でした。最初に述べたように、AVRとARMはスペクトル内で異なるスペースを占めます。AVRでできることがあれば、なぜARMでそれをやりたいのですか? ARMはより高価で、より多くの部品数を必要とし、より多くのエネルギーを消費し、より複雑なコードを作成し、より高価な製造プロセスを必要とします。測定方法によっては、100ピンTQFPのはんだ付けは40ピンDIP / SOICのはんだ付けよりも高価です。コスト。これは、大量に生産し、それに適した生産技術を使用している場合には当てはまらない可能性がありますが、そうしている場合は、価格差がさらに安価なソリューションを採用するようになります。
家の周りの一般的なハッキングやあなたが持っているもののための頼りになるコントローラーとして、私は「AVR」がより使いやすいと思います:
- 愛好家の観点からより標準化され、より多くコンパイラのバリエーションが少なく、レジスタ名とファミリのAPIが異なるため、インターネットから再利用できるコード(LPCARMコードをATMELARMハードウェアに移植してみてください。意味がわかります)
- コードは本質的に複雑になります(実際にそうです)。
- ツールチェーンのタックセットアップに追加の作業が必要です。
- インターフェースが少し簡単になります。 ARMは通常、3v3または1v8ロジックにドロップダウンするため、他のおもちゃとのインターフェースが少し問題になります。
- 安い
- 地元の金物店でARMチップを入手することは私にとって選択肢ではありません。私が住んでいる場所では、AVRを取得しています。
コメント
- 私は’工場テストの一部としてヒューズビットが事前にプログラムされた一部のOTPパーツ(LP、XT、またはHSモードが機能することを確認する唯一の方法はそのモード用にチップを構成することでした)を除いて、PICを思い出してください。クリスタル。RCモードを使用するために外部抵抗とキャップが必要なものもあり、生成される周波数についてはかなり大まかな仕様がありましたが、’設計オプションのないPICを思い出せません。内部または外部RCの場合。何か忘れましたか?
- 実際には、ARM / AVRのコストは、同等のリソースの洗浄にかなり近いです。また、実稼働環境で使用されるパッケージは
tどちらかのQFPまたはQFNバリアントである可能性が高いため、必然的に異なります。必要なサポート回路もかなり同等です。
- @Chris:各チップが提供するリソースを考慮に入れると、’ ARMはほぼ安くなると思います毎回。とはいえ、重要なのは、実稼働環境でAVRが理にかなっている状況では、馬力やベルを’必要としないということです。 ARMがテーブルにもたらす笛。利用可能なリソースの代わりに利用されたリソースで重み付けされた場合、AVRはより安くなります。 ‘サポート回路が同等だとは思いません(4に対して1つのタンタルコンデンサ、および他の同様のスパイラル)。 ARMは’それがやり過ぎになる可能性がある限り、高価な獣ではありません。
- @supercat:たぶん。 ‘を確認する必要があります。私がそれを数回見たとき、それは私には決して明白に見えませんでした。少なくともいくつかのdsPICは、正しく設定すれば内部にフォールバックできることを私は知っていますが、それでも少し推測し、浮気して発見する必要がありました。マイクロチップのデータシートにはまだまだ多くの要望がありますが、IMOは、’どの市場を見ているかによって異なります。
- @ ChintalagiriShashank-他の周辺機器を無視してフラッシュ& RAMサイズを見るだけで、たとえばATMEGA328pとかなり競争力のあるARM製品があります。また、’バイパスキャップに気を取られすぎないようにしてください。一つには、タンタルは供給フィルターとして意味がありますが、実際のバイパスキャップは高周波スイッチング要件のためのより価値の低いローカルリザーバーであるため、安価なSMTセラミックである可能性があります。また、必要性を左右するのはクロックとI / Oスイッチング周波数です。同等のクロックレートでは、ARMは実際には推奨されるすべてのバイパスキャップを必要としません。
回答
アームの開発が進んでいます。次のプロジェクトをご覧ください。
そして、DIPパッケージのARMになりました。
回答
大規模な理由の一部Arduinoに対するコミュニティの関心は、物理的な標準化です。物理的なレイアウトと同じくらい厄介ですが、標準化された拡張オプションを含めることで、Arduinoの開発者は人々が独自のソリューションを考え出すことを可能にしました。ベースのArduinoボードを、別のマイクロコントローラーを使用する別のボードと交換する場合は、可能です。 IIRC、誰かがすでにArduinoフォームファクターを使用するPICベースのボードを構築しています。 ( PIC Ardunioボードは同じフォームファクタではありませんが、それ以外は似ています。)
成功のもう1つの理由Arduinoはオープンです-ほとんどのPICベースのマイクロコントローラーは閉鎖されていました;それらは独自のハードウェア実装を使用していたので、特定のスペースにより良くフィットするようにボードを再設計したい場合は運が悪かったです。彼らはカスタムファームウェアと独自の開発ツールであるため、バグがあったり、機能を拡張したい場合は、運が悪かったのです。Arduinoを使用すると、パズルのすべてのピースが開かれます。どこでもパーツを購入したり、必要に応じてパーツを再配置したり、改善したり、ファームウェアと開発ツールを変更します。ArduinoIDEで簡単に始めることができますが、必要なときにいつでもCまたはアセンブリに移行できます。
個人的には、Arduinoがたくさんあるので気に入っています。 「ちょうどいい」もの:それは「あまり高価ではない」、「独自のツールに縛られていない」、「始めるのは簡単」、「たくさんある」
コメント
- マイクロコントローラーが非常に優れた理由を挙げましたが、その能力は大きく、ユーザーコミュニティは拡大し続けています。 Arduinoのような愛好家ですが、質問はARMとAVRについてでした。 Arduinoは、その実装にAVRシリーズのMCUを選択することを決定したために言及されました。もっと関連性のある答えがあなたの投稿の下にあると思います。たとえば、AtmelがCコンパイラでAVRシリーズをサポートしているという事実。それでも、Arduinoに慣れていない人にとっては良い情報です。
回答
ATmeluCの主な利点は次のとおりです。 Linux、PC、Macで利用できる無料のコンパイラがあること。それに加えて、シンプルなクロスプラットフォームGUIを使用すると、すべてのプラットフォームで実行できる無料の開発システムを利用できます。
コストは愛好家向けボードの主要な要素です。スターター価格を30ドルの範囲にしたいので、uCコストは数ドル以下である必要があります。
ARMはハイエンドボードの優れた候補です。多くの企業がARMコアのライセンスを取得し、周辺機器を追加しています。 Linux、PC、MAC用の無料のコンパイラがあると思います。
ハイエンドボード用のFreescaleColdfireが本当に好きです。私は5206eを使用したテスト機器用のボードで作業しました。いくつかのDRAMと高精度A / DおよびD / Aコンバーターを追加しました。それは費用効果の高い解決策でした。最近、ColdfireをさまざまなARMと比較していません。
8ビットのFreescaleuCのいくつかは優れていますが、無料のツールがあるかどうかはわかりません。
コメント
- 有益なコメントをありがとうございますが、8行の’署名’は少し極端です、これらのスタックオーバーフローベースのサイトはあなたの答えであなた自身のサイトを宣伝することを軽蔑する傾向があります。
- @jluciani、あなたがあなたの他のウェブサイトを宣伝したいなら、あなたのプロフィールにリンクを入れてください、あなたの答えではありません。結局のところ、あなたのブログはこのの質問に対する答えではありません…
答え
私はdipパッケージに同意し、アームの構成が難しいことに同意しません。lpcsはそうですが、アームブロックの子供は彼らだけではありません(それ自体はatmelです)。私が覚えていて経験したことから、Atmelは開発者にとってよりフレンドリーでした。 AVRバタフライは、より多くのユーザーをすでに適切なサイズで満足のいくユーザーベースに導くのに大いに役立ちました。 PICは多くの点で苦痛でした、avrツールがそこにありました、プログラミングは簡単で、ラジオシャックからのいくつかのワイヤーとコネクターよりはるかに多くの費用がかかりませんでした。ツールは無料ですが、腕と親指のソリューションを見つけるメインラインのgccほど簡単ではありません。 arduinoが登場するずっと前から、AVRは趣味のプロジェクトに最適なチップでした。
現在、ARMと競合できるものはありません。 1日に触れる他のプロセッサの場合、少なくともいくつかのARMに触れます。触れるほとんどすべてのものにARMが使用されます。それは8ビットキラーとして自然にフィットし、同じサイズ、価格などで8ビットよりもはるかに優れたパフォーマンスを得ることができます。ツールははるかに優れており、命令セットは競合他社のほとんどよりもはるかにクリーンなので、同じコードが実行されます誰とでもその兄弟がARMを組み込むことができ、pic、avr、msp430のような会社に固定されていないため、さまざまなソリューションがあり、マイクロプロセッサのrom / ram混合物を処理するさまざまな方法があります。および割り込みベクトルテーブル。悲しいことに、より一般的な解決策は最も苦痛です。 sam7またはそのようなものまたはstellarisを試してください。アームベースのarduinoプラグインを作成する試みであるarmmitepro、またはそれに近いものがあり、私は実際にそのボードが好きです。
問題になるのは常にプロセッサではなく、一部のチップは知っています問題が発生する可能性がありますが、他の既知の問題があるものもあります。プルアップが弱いオープンコレクタIOピンを提供しないものもあり、チップの外側にハードウェアを配置して何かに接続する必要があります。別のピンでは、1つまたはすべてのピンでハードウェアを使用できます。フィールドをサンプリングし、さまざまな会社やソリューションを試してみることをお勧めします。そうすれば、低電力が必要なときにmsp430を簡単に使用できるようになり、アームを備えた小さなチップで処理能力が必要になるか、希望するオープンプロジェクトを作成したい場合に役立ちます。他の人は、可能であれば、arduinoをベースにしたガレージを構築します。
しかし、あなたの質問にとって重要なのは、アプリケーションとその記述方法、およびパフォーマンスとリソースによって異なります。 gccやfirefoxが多くの異なるプラットフォームやプロセッサで実行されるのと同じように、Cアプリケーションをさまざまなマイクロコントローラで実行するように作成できます… IF …マイクロコントローラー固有の抽象化レイヤーがありますが、これにはコストがかかります。マイクロコントローラーが十分に類似した機能を持ち、必要な機能を備えていて、事前に計画してそれらを組み込む場合。次のプラットフォームに十分なメモリ/リソースがある場合。パフォーマンスなどよりも移植性に関心があります。おそらく、事前に計画を立てる必要があります。または、少なくともAからBへの最初の切り替えで、ソフトウェアを再設計します。BからCへの3番目の切り替えがある場合は、それほど苦痛ではありません。
コメント
- 現在、ARMと競合できるものはありません。 <-業界で。愛好家の世界では、AVRはまだ本当に、本当に強力で、長い間続くでしょう。
- ある世界でavrが非常に人気があり、別の世界で私たちが購入する製品がたまたまあることに同意します。タッチと使用は、お金があるところでは、それは別のものです。ですから、家で楽しむために1つを学び、仕事のためにもう1つを学び、昼夜を問わず遊ぶことができます。
回答
「コスト以外」とおっしゃっていたと思いますが、それは愛好家にとって最も重要なことです。安価で汎用的なプラットフォームであるために、複数のUARTまたは複数のSPIは必要ありません。20MHzを超える速度が必要になったら、実際にはカスタムセットアップを検討する必要があります(もちろんymmv)
回答
他のコメントでは取り上げられていないいくつかの小さなポイント:
-
Arduinoは小規模なI / Oプロジェクトを対象としており、回路に少量のインテリジェンスを追加します。これらは通常、シングルスレッドのリアルタイムデバイスであり、ARMは非常に無駄になります。もちろん、ARMボードには多くのオプションがあります。 、ただし、通常、ユースケースは異なります。通常、フルスケールのオペレーティングシステムで起動します。
-
この小規模なユースケースをターゲットにすることで、他のすべてが簡単になります-ピン数、サポートコンポーネント、消費電力など。
とはいえ、Arduinoのターゲットユースケースでは、それを急落させているわけではありません。 16MHzプロセッサは、統合されたLEDチェイサー(またはその他:)を備えた目覚まし時計に大いに役立ちます
回答
Arduino は他のプロセッサで利用できます。たとえば、Microchip社のChipKitをチェックしてください。それはPIC32を使用します。
コメント
- 申し訳ありませんが、タイトルは、本文から作成された質問を編集するという私の誤った試みでした。今はもっと正しいはずです。
回答
2回目の試行(元の投稿タイトルと+3からの質問)数年前は元の回答から変更されました):
鶏肉と卵ですが、特にここ数年(2007 ARMがCortex-Mアーキテクチャを発表)に、32ビットMCUの人気が高まり、ベンダーはより良くなりました8ビット以上のマイクロ(より優れたSWツール、無料ツール、その他の例など)で設計する場合、EEコミュニティに高速で簡単なアクセスを提供します。
Atmelは、他の100社とともにCortexを提供しています。 -Mデバイスも同様に、AVRをARMにサポートするようにツールチェーンをアップグレードしました。さらに、長年の関係であるArduinoアップグレードパスが提供されています(?)。しかし、代替案が出現し、それを獲得するための代替の試みが含まれているようです。たとえば、NXP / ARMによるmbed、最近では「CoAction Hero」、32ビットオープンソースARMCortex-M3ボードKickStarterで。
最初の質問から3年後の最終的な考え:すべてのベンダーが32ビットのCortex-Mコアを提供するとき、Arduinoは実際に非Atmelになる可能性がありますか?
元の回答:AtmelAVRの共同創設者の1人であるAlf-EgilBogenは、彼のビデオブログで業界の8ビットから32ビットのARMコアへの移行の背景のいくつかを見ております http://blog.energymicro.com/2013/04/24/avr2arm/ 。