マイクロコントローラ用のタイマープログラムを人間が読めるプログラミング言語で作成できる場合、たとえば、抵抗器とコンデンサで555タイマーを調整する方法を学ぶことはまだ価値がありますか?
または、別の言い方をすれば、マイクロコントローラーでは得られないというICにとっての問題はありますか?
マイクロコントローラ用のタイマープログラムを人間が読めるプログラミング言語で作成できる場合、たとえば、抵抗器とコンデンサで555タイマーを調整する方法を学ぶことはまだ価値がありますか?
または、別の言い方をすれば、マイクロコントローラーでは得られないというICにとっての問題はありますか?
回答:
ほとんどの場合、マイクロコントローラーがディスクリートICに取って代わりました。555で回路を設計できたとしても、他の何かをするために同じ回路を数週間で微調整する必要があり、マイクロはその柔軟性を保持している可能性が高いことがわかります。
しかし、いくつかの例外があります。
離散ロジックは、ほとんどのマイクロコントローラーよりも高速です。ディスクリートロジックの伝搬遅延とスイッチング時間は1〜10 nsの範囲です。これをマイクロコントローラと一致させるには、1つの命令で必要なロジックを実装し、100 MHz〜1 GHzの範囲のクロックを持たせる必要があります。それはできますが、ガレージのブレッドボードではできません。
これの良い例は、HCTL2020直交デコーダです。2つのパルスを受け取り、モーターの回転方向を示します。速度を上げるために、プログラム不可能なチップとして実装されています。
デジタルロジックとマイクロコントローラの両方が機能しないもう1つの興味深い分野は、信号のフィルタリングです。デジタルでフィルタリングしたいアナログ信号がある場合は、何らかのレートでサンプリングする必要があります。どれだけ速くサンプリングしても、サンプリング周波数の半分以上の周波数で現れる信号のノイズは、信号に干渉する可能性のある低周波数にエイリアスされます。サンプリングが行われる前に、キャップと抵抗で構成されるローパスフィルターでこの問題を解決できます。サンプリング後、ねじ止めされます。(もちろん、ノイズが信号の周波数と重ならない場合がよくあります。その場合、デジタルフィルターはうまく機能します。)
ディスクリートロジックがまだマイクロを凌Oneしている1つの領域は、長期部品の安定性です。
このマイクロは10年後に利用可能になるのでしょうか?20?IDEとツールチェーンは、その間も引き続きサポートしますか?
将来、ディスクリートロジックがディスクリートロジックであることをほぼ保証できます。マイクロス、それほどではありません。製品の寿命が長く、一般的なロジックが可能な製品を設計する場合、一般的な部品を使用すると、部品の可用性が変化したときにデバイスを再設計する必要が少なくなります。
また、チップメーカーがバックオーダーされている場合、あなたはSOLではありません。多くの人が互換性のある汎用ロジックを作成しますが、基本的に汎用マイクロはありません。
ディスクリート回路を使用して簡単なタスクを実行する方が安価になることがよくあります。たとえば、点滅するLED。最も安価なPICであるPIC10F200は5kuで約0.35米ドルであり、プログラミングコストおよび小さなサイズ(および関連する製造上の問題)を考慮に入れる前です。一方、NE555タイマーは、約US 5kuのTIから0.10ドル、そして完全なソリューションはおそらく約0.20米ドルでした。
考慮すべきもう1つのことは、マイクロコントローラーが本質的にデジタルデバイスであることです。確かに、ほとんどにADCがあり、一部にはDACがありますが、それらはまだ時間の離散単位で動作し、個々のビットとバイトで動作します。理論上、アナログの分解能は無限であるため、アナログ回路は設計者が必要とすることを正確に調整できます**。デジタル回路は、最も遅いコンポーネントによって制限されます。
最後に、供給の問題があります。最初の例であるNE555に戻ります。それは20年以上前からあり、おそらくこの後さらに50時間続くでしょう。ジェリービーンの部品なので、おそらく永久に(または、少なくとも従来の電子が電子機器で使用されなくなるまで)製造されるでしょう。一方、PIC10FはいつでもNRNDにすることができます。Microchipのような単一のサプライヤでは、これが製品を台無しにする重大なリスクがあります。
**さて、これは全く真実ではありません。実際には、電子の分解能に制限されています。1アンペア= 6.24×10 18電子/秒。したがって、得られる最高の電流分解能はアトアンペア、つまり10 ^ -18アンペアで、1秒あたり約6電子です。しかし、ほとんどの実用的な目的のために、これは大丈夫です。:)
私の現在のプロジェクトでは、500Mhzで動作するMarvell ARM9チップとFPGAを使用して、多くのDIOポートを提供しています。それでも、ディスクリートロジックで処理されるものがあります。たとえば、個別に制御される4つのステッピングモーターにはステッピングモーター制御が必要です。カウンタを使用して周波数を生成する発振器が1つあり、これにより多くのパルスを通過させることができます。カウンターはマイクロコントローラーから設定されますが、その後マイクロコントローラーからの制御なしで動作し、他のタスクで作業する時間を与えます。
より多くのマイクロコントローラーを選択することもできます。しかし、従来のディスクリートロジックで動作する中央コントローラーは、強力で非常に信頼性の高いソリューションであることが証明できます。
また、明確に定義された問題がある場合、解決策は常に可能な限り単純である必要がありますが、単純ではありません(引用符はそこに隠されています;-))。555が機能する場合、なぜ使用しないのですか?柔軟性は、他の誰かが選択したように議論になるかもしれませんが、そうではないかもしれません。それはすべてあなたの問題と最も簡単な解決策が何であるかの解釈に依存します。
私は長年ソフトウェア開発者になるチャンスがあり、現在は電子技術者として働いています。
複雑なシステムには、エラーとバグが伴います。マイクロコントローラとICの両方には、その使用分野に基づいた利点と欠点があります。
小規模プロジェクトの場合、ICはマイクロコントローラーよりも速く、安価で、信頼性が高くなります。数百万の入力、解析、比較ロジックを備えた大規模プロジェクトの場合、マイクロコントローラーがICを凌edgeすることを確実にします。
すべてのソフトウェアはある時点で失敗します。バグのないコードでさえROMに保存されるため修正が発生しやすく、論理的なエラー(メモリリークなど)が発生します。
重要なアプリケーション(軍用グレードや列車制御システムなどの人命救助システムなど)の障害からソフトウェアベースのシステムを保護するために、「フェイルセーフ」の概念が実装および開発されています。
フェイルセーフシステムは、例外的なエラーが発生した場合に安全な状態に戻ります。通常、2つのプロセッサが同じコードを実行し、各命令の結果を比較し、それらが等しい場合、命令が実行されます。それ以外の場合、システムは物理的な電気リレーを使用して安全な状態に戻ります。
フェイルセーフソフトウェアベースのシステムは、列車のインターロックおよびATP(自動列車保護)システムで使用されます。
Icsを使用して同じ複雑なシステムを設計することは、どのエンジニアにとっても大きな頭痛の種です。そして、それがソフトウェアが最初から設計された理由です!
ICは非常にドメイン固有です。私はDTMFデコーダーを考えています。マイクロコントローラーをプログラムして2つの周波数をデコードすることもできますが、市販のチップを使用する方が簡単、高速、安価です。
どのツールを使用するかを知るために、すべてのツールについて十分な知識を持つことが重要だと思います。
ディスクリートコンポーネントのみを使用して何かを設計することと、マイクロコントローラーを使用することとの間に大きな違いが1つあります。ソフトウェアにはバグがあります。信頼性が重要な側面である場合、個別のコンポーネントで構成されたものの設計を検証することができます。Knuthでさえ、彼のソフトウェアにはエラーがないと主張することを敢えてしません。
もちろん、デザインにもエラーが発生する可能性があり、ごくまれにしか表示されない場合がありますが、理解して修正するのは簡単です。ソフトウェアが非常に不明瞭で非自明な方法で失敗する可能性があります。
答えはイエスです!
生産コストを重視するハードウェア設計者として検討する必要があります。555は非常に基本的なものと考えられている古いICです。EEの場合、デジタルエレクトロニクスのクラスで何度か見たことがあるでしょう。ほとんどの一般的なアプリケーションでは2つまたは3つの式を解く必要があるため、設定は非常に簡単です。これにはほとんど時間はかかりません(パーツとその使用方法が既にわかっているため、数学は簡単です)。作業環境によっては、8ビットMCUの開発をセットアップしてソフトウェアを検証するのにかかる時間は、数日から数ヶ月かかる場合があります。また、おそらく、市場投入までの時間を短縮します。
実話-私はかつて巨大な医療会社で働いていました。製品検証用のテストジグを設計しました。ジグは、ハードウェアと組み込みソフトウェアベースの一部でした。同社が製造する製品は身体の脆弱な部分と相互作用するため、私たちが行ったすべての検査は非常に簡単でした。このとき、通信プロトコルを調整して、製品自体の変更を反映する必要がありました。変更はおそらくCの10行のコードであり、ボーレートが変更され、最初にインストールされたものが11.0592MHzではなかったため、水晶発振器も交換されました。文書化を含めてこれを完了するには約2時間かかりました。会社のコストは、新しい部品のDigikeyからの注文でおそらく300ドル以下でした。改良されたテストジグの検証には数か月かかりました(!)関連する問題で、1日に少なくとも数回、約3人または4人が忙しかった。これは会社にどれくらいの費用がかかりますか?おそらく1万ドルから15,000ドルの北。このコストは、設計の小さな変更の真のコストを反映しています。多くの場合、あなたはそれを保存することができ、いくつかのほとんど既製の解決策を知っていることは小さな財産を節約することができます。