コード付きPICマイクロコントローラとのUSBインターフェイス
PICマイクロコントローラとのUSBインターフェイス:この記事の目的は、PICマイクロコントローラへのUSBインターフェイスに関する概念を構築することです。 プログラマーはマイクロ制御回路のコードを荷を積むためにちょうど最初に使用され、その後私達はこのより簡単な回路を通してマイクロ制御回路のコードを直接荷を積むことができます。 PIC18F2550およびPIC18F4550はUSBモジュールのために有名です。
目次
USB(Universal Serial Bus)
コンピュータをデジタルカメラ、プリンタ、スキャナ、外付けハードドライブなどのさまざまなデバイスに接続するために使用される最も一般的な接
USB転送速度
USB1.0は、usb1.0のデータ転送速度をサポートしています。:
- 5 キーボード、マウス、ジョイスティックなどの人間の入力デバイスに使用されるメガビット毎秒Mbps(低速)
- 2Mbps(高速)プリンタ、スキャナなどに使用
USB2。0hi-speed USBとして知られており、最大480mbpsの転送レートをサポートすることができます。.こんにちは、usbの転送速度をサポートすることができます。
usb3.0スーパースピードUSBとも呼ばれ、最大5.0ギガビット/秒(Gbps)の転送速度に対応しています。Usb3.1はsuper speed+とも呼ばれ、最大10Gbpsの転送速度に対応しています。<8782><6850>USB Type-Cのプラグは「ホストとデバイス」の両方に接続します。
USBピンアウト:
このプロジェクトに関わる主な手順は次のとおりです:
ステップ#1クロック生成
ステップ#2回路構成
ステップ#3マイクロコントローラのプログラミング
ステップ#4マイクロコントローラでコードを焼く
ステップ#5デバイスドライバ
ステップ#6回路動作
USBインターフェイス用のクロック生成picマイクロコントローラ
P18F2550/4550は低速(1.5Mb/S)とフルスピード(12Mb/S)をサポートするため、Usbの場合は特定のクロックを選択する必要があります。 6MHzまたは48MHzの内部クロックは、USBによって課されるタイミング要件のために必要です。しかし、48mhzの結晶を使用することには問題があります。 この水晶は高い費用であり、また騒音を作成します。 水晶が高いほど、ノイズが大きくなります。USBモジュールのクロック要件を達成するための多くの選択肢があり、プライマリオシレータソースからデバイスの残りの部分をクロックするための柔軟性を提供しています。ここで、USBインタフェース用のPIC18F4550で使用される水晶発振器は20mhz水晶発振器です。 それはマイクロ制御回路の内部振動のために使用され、MCUの13そして14ピンで接続される。
picのマイクロ制御回路とのUSBインターフェイスのための構成ビット設定
20mhz水晶の場:
- “オシレータ選択”をHSPLLに設定します。 それは”一次発振器”の入力で20MHzを与える
- “PLLプリスケーラ選択”を5で除算するように設定するので、4MHzを24で乗算してUSBの96MHzを取得する
- “USBクロック選択”を96MHzを2で除算する
- “システムクロックポストスケーラ選択”を96分割する。
最後に、発振周波数を48MHzに設定します。 (96MHz/2=48mhz
picマイクロコントローラとのUSBインターフェイス回路
回路図:
- PIC18F4550マイクロコントローラへの入力電圧は5Vを超えてはいけません。
- 使用される水晶発振器は20MHZ水晶発振器で、13ピンと14ピンに接続されています。
- 11番目と32番目のピンを一緒に5vに短絡し、同様に12番目と31番目のピンをGNDに短絡します。 しかし、ここでMCUは接続を構築しています。
- 二つのledはRD0とRD1にあり、各LEDに1k ωの抵抗が追加されています。 これらは、USB通信が存在することを確認するためにのみ通信目的で使用されます。
- このUSBインタフェース回路によって、RD2とRD3の2つのピンを制御します。
- リセットボタン用のスイッチが1つあり、ピン1に接続されています。
- 他のスイッチはピン37と接続されるBootloadingのためです。
ON(RD2,RD3)のLEDを制御ピンとして使用しますが、これらの制御ピンは他のものも制御するために使用することができます。 それはL293Dモーター運転者、DCモーター、段階モーター、リレースイッチ、サーボ等と容易にインターフェイスされてできます。
プロテウスの回路図
PICマイクロコントローラのプログラミング
マイクロコントローラとUSBインタフェースするためのコードを以下に示します。 しかし、このコードを使用するには、デバイスドライバも追加する必要があります。 このコードを使用する前に、ユーザーはpic用Mikro Cのツールに移動してUSBデバイスドライバを作成し、HID端末をクリックして記述子を生成する必要があります。cファイルとあなたのメインコードフォルダにこのファイルを貼り付けます。
unsigned char readbuff absolute 0x500; // Buffers should be in USB RAM, please consult datasheetunsigned char writebuff absolute 0x540;char cnt;char kk;void interrupt(){ USB_Interrupt_Proc(); // USB servicing is done inside the interrupt}void main(void){ ADCON1 |= 0x0F; // Configure all ports with analog function as digital CMCON |= 7; // Disable comparators HID_Enable(&readbuff,&writebuff); // Enable HID communication while(1){ while(!HID_Read()) ; for(cnt=0;cnt<64;cnt++) writebuff=readbuff; while(!HID_Write(&writebuff,64)) ; }}
マイクロコントローラーのためのコードはCに類似したプログラミング言語を所有することを持っている特別なソフトウェアと書かれています例えば:mplabのmicroCソフトウェア。 次に、コードはそれぞれの出力にコンパイルされます。 このプロセスでは”。hex”ファイルが生成され、マイクロコントローラで書き込み/ヒューズされます。
マイクロコントローラでコードを書き込む
マイクロコントローラのEPROMにロードされた出力はファームウェアと呼ばれます。 この出力コード(16進数ファイル)をMCUに融合させるためには、特別なハードウェアが必要です。 JDM programmerは、HEXファイルをMCUにロードするために使用されるそのようなデバイスの例です。 それは作るのが簡単で安いです。ロード後、プログラマからPIC18F4550を切り落とし(hexコードの1回目のロード)、USBインターフェイス回路に挿入します。この後、我々はドライバを提供する必要があります。
ファームウェア(hexファイル)をロードするたびにこの手順(プログラマの使用)に従う必要はありません。 基本ファームウェアがチップにロードされると、smallbootloadingソフトウェアを使用してインタフェース開発回路で直接出力hexfileを更新することができます。
picマイクロコントローラとUSBインターフェイスするためのデバイスドライバ
コンピュータからUSBケーブルをUSBインターフェイスに接続します。 マイクロ制御回路の回路そしてまたプログラミングを完了した後でさえも、それはきちんと働き始めません。 我々は、新しいハードウェアのインストールは、システムによって検出され得るためにwindows用のドライバを必要とすることを知っているように。
ドライバのインストールとブートロード操作には、MICROCHIPのウェブサイトからUSB MICROCHIP FRAMEWORKをダウンロードしてインストールする必要があります。
USBインターフェイスの回路動作
回路を起動するには、ブートロードモードで初期化する必要があります。 USBインタフェース回路では、すでに説明したように、2つのボタンがあり、1つはtheRESETbuttonであり、もう1つはBOOTLOADボタンです。
- セットボタンを押したまま
- リセットを押したままにしてから、bootloadボタンを一度押してから
- 両方のボタンを離します。
- ウィンドウはPICI8F4550USBハードウェアを検出し、このpic18f4550回路/ボードのドライバを要求します。
- ウィンドウがドライバを要求していない場合、回路にいくつかの問題がある可能性があります。
- このUSBデバイスのドライバが
にあるとしますC:\MCUSB\MCUSB Driver\Debug
windowsがドライバを要求するときは、手動ドライバ検索に移動し、上記のドライバの場所フォルダを参照してください。ドライバがインストールされた後、Led1とLed2(RD0とRD1に接続)が代わりに点滅し始め、USB回路がPCと完全に通信していることを意味します。ドライバがインストールされた後、この回路をコンピュータに接続するたびに、リセットorbootload buttonsandを押す必要はありませんLEDが代わりに点滅し始めます。今度はUSBインターフェイス回路基板は準備ができて、私達はUSB板から破片に私達の自身のhexファイルに直接荷を積んでもいいです(JDMプログラマーなしで)。
ファームウェア(hexファイル)をPIC18F4550に書き込むためにプログラマ(バーナー回路)を使用する必要はありません。 JDMプログラマーはコードの初めてのプログラミングのためにだけ使用され、他の段階のために私達はUSBインターフェイス回路からMCUに新しいコードを直接 そのMCUは、出力コードが設計された他の特定の回路で動作するために使用することができます。