USBからAVR。 はじめに



人気のあるUSBインターフェイス、つまりこのUSBを単純なAVRマイクロコントローラーに接続する方法について説明します。 マイクロコントローラーとコンピューターの両方から、コード例と説明を含むいくつかのトピックを作成する予定です。 もちろん、インターネットはこのトピックに関するあらゆる種類の例でいっぱいですが、せいぜい悪魔の足が壊れるソースであり、ページ上の短い説明はその説明です。



そもそも、COM、LPT、MIDIのような以前に普及していたインターフェイスは現在は時代遅れですが、現代のコンピューターにはまだ存在し、産業用および高度に特殊化された機器で使用されています。 だから、ある種の鉄片をコンピューターと通信するには、何か他のものを習得する時が来た。 また、あらゆる種類のコンバーター/アダプター/エミュレーターを使用することもできますが、常に元のインターフェイスとして機能しないため、多くの問題が発生します。



すべては空の話で十分です、ビジネスに取り掛かりましょう。 自分のデバイスでUSBを使用する方法は?





私たちは本物のジェダイなので、エミュレーションの道をたどります。 現時点では、AVRマイクロコントローラー上のUSBのソフトウェアエミュレーション用の既成プロジェクトがすでに3つあります。



IgorČeškoのプロジェクトは最初で、完全にアセンブラーで記述されており、V-USBのインスピレーションのようなものでした。 それに基づいて、コンピューター用の注目に値するユニバーサルIRレシーバー、および他の多くのプロジェクトが作成されました。 次に、V-USBはCで記述されますが、エミュレーションのパフォーマンスと精度に重要な場所でアセンブラコードを使用します。 USBtinyは、以前のバージョンのV-USBから派生したもので、機能が少なく、理論的に理解しやすいものです。

画像

私はV-USBの実装に落ち着きました。これらが主な利点だと思います。



画像

USBでの実験では、AVR-Studio 4 + WinAVRでC言語を使用してMKのファームウェアを作成し、Borland C ++ Builder 6.0を最速かつ最も簡単なオプションとして使用してPCプログラムを開発しました。 したがって、将来の例はすべて次のようになります。 一般に、開発ツールの選択は非常に重要なステップですが、Cやアセンブラーよりも優れているものについてホリバーを配置する必要はありません。 簡単に言うと、これらは私たちの手にある単なるツールです。 すべてを所有し、より便利で目的に合ったものを使用する必要があります。 当然、有能な人であれば、どんなツールでも効果的です。

また、VIDとPIDについて別々に言う必要があります。 これらは、オペレーティングシステムがデバイスを検出し、正しいドライバーをロードするための16ビットの数値です。 Vendor-IDを取得するには、 usb.orgに2000ドルを支払う必要がありますVVid / PIDの使用の合法性に関する興味深い考えは、 BSVi embedderページで見つけることができます 。 V-USBが無料のVID / PIDペア(合法的にusb.orgから購入)を提供するという事実は、本当に心を温めます。 しかし、同じVID / PIDの複数のUSBデバイスを同時に接続する必要がある場合はどうすればよいでしょうか? これらのVID / PIDに加えて、各USBデバイスにはVENDOR_NAMEおよびDEVICE_NAME識別子があります。例では、使用方法を示します。

件名に関するいくつかのリンク:



結論として、USB 1.1デバイスを作成するためのすべての条件はすべての人が利用できると書いています。



残っていることが1つだけあります-理解したいという願望です! そして、すべての主要なvy望の的となるマイクロコントローラーで奇跡を起こします。



USB経由でデータを受信するティッカーを実際に実装して、別のトピックを作成する予定です。



All Articles