Linuxで5ドルの中国人USBプログラマーを動作させる方法





この投稿は、主にマイクロコントローラに精通し始めたばかりの人や、ArduinoからAVRに直接移行する人に主に役立ちます。



小さな紹介



したがって、おそらく、デバイスの設計後、プリント基板が作成され、コントローラーが適切な場所に配置された後、プログラムする必要があることを既にご存じでしょう。 マイクロコントローラのほとんどのファミリには、インサーキットプログラミング用の何らかの種類のインターフェイスがあります-ISPは、通常、ボード上の別のコネクタに出力されます。 AVRの場合、プログラミングは5つの通信ライン(MOSI、MISO、SCK、RESET、およびGND)で行われます。







Arduinoでの作り方



ほとんどのArduinoボードでは、USBを介してプログラムをアップロードできます。おそらく、このボードの初心者ユーザーはISPやプログラマーについてほとんど聞いていません。 ただし、Arduinoはプログラムのロード方法が少し異なります。いわゆるブートローダー (ブートローダー)がコントローラーのメモリにフラッシュされます-コントローラーの起動時に実行される小さなプログラムです。 ブートローダーは、ピンの状態、メモリ内の変数などの条件に応じてコントローラーをプログラミングモードにすることができます。Arduinoの場合、ブートローダーはFT232(以前のバージョンのArduinoボード上)のUSB-TTLコンバーターと組み合わせて使用​​されます。 ATMega8u2コントローラーのいずれか。 前述のマイクロ回路はプログラマーとして機能し、適切なタイミングでメインコントローラーを目的のモードに移行します。



Arduinoなしでそれを行う方法



完成したデバイスではプログラマーへの永続的な接続は必要ないため、前述のプログラミングコネクタが使用されます。 さらに、プログラマーが必要になります。 プログラマーの利用可能な範囲の迅速な検査は落胆することができます-ブランドのプログラマーは約2,300,300ルーブルの費用がかかります。 だから、私たちは十分なブランドのないものを持っています。 インターネットはプログラマー回路でいっぱいです-最も単純なものは抵抗器、DB-25コネクターで構成され、LPTポートに接続します。 LPTポートを見つけることは残っています。



私の場合、価格は選択基準でした。そのため、FT232、ATTiny、ATMegaのほとんどすべての自己組み立てオプションは、高コストであり、私の都市のショップに必要なコンポーネントがないため、受け入れられませんでした-水晶振動子は見つかりませんでした また、インターネットで注文した場合、プログラマーをすぐに購入してみませんか?



したがって、そのようなプログラマーは5ドルで購入されました。 ebayで「usbisp」、「usbasp」または「avr Programmer」を検索しました。 それらの多くがあり、建物の中にあり、外にありますが、私が理解しているように、構造的にはすべて同じです。



プログラマーを郵便で受け取った後、問題が発生しました-システムでは仮想COMポートとしてではなく、HIDデバイスとして見られます。 AVR Studioで動作する可能性はありますが、Linuxでavrdudeを使用する必要がありましたが、プログラマとはやりたくありませんでした。



VID = 0x03EBおよびPID = 0xc8b4で検索すると、このページに移動します 。 原則として、この投稿全体はこのリンクのみで構成できます。 しかしおそらく、多くの初心者にとっては、同じことをロシア語で少し詳細な形式で読む方が簡単でしょう。



プログラマのすべての操作は、ファームウェアの回路図とソースコードが利用可能な一般的なプログラマであるUSBASPと互換性を持たせることを目標としています。 これを行うには、プログラマーはUSBASPからファームウェアを少し修正して入力する必要があります。



だから、順番に操作。



ジャンパーの自己プログラミングの設定




www.sciencetronics.comからの画像



ボードには「UP」とマークされたジャンパーピンがあります。 そこにジャンパーをはんだ付けすると、プログラマーで使用されるマイクロコントローラーにファームウェアを埋めることができます(ほとんどの場合、リセットされて接地されます)。



ファームウェア


はい、残念ながら、2番目のプログラマが必要になります。 前述のLPTポートに加えて、Arduinoからプログラマーを作成するのは簡単です。ArduinoISPスケッチをサンプルフォルダーからコンパイルしてフラッシュするだけです。 同時に、 ここでプログラミングコネクタの接続と、コネクタ自体のピン配列を確認できます-Googleのリクエスト「ISP 10ピン」。 私の場合、コネクタからのシールドと1つのコンデンサのようなものを作りました。







ファームウェアファイルとソースコードはここからダウンロードできます



そのため、被害者のプログラマーはメインプログラマー(私の場合はArduino)に接続されています。 ファームウェアの充填は、次のコマンドを使用してavrdudeを介して行われます。



avrdude -c avrisp -P /dev/ttyACM0 -b 19200 -p m8 -U flash:w:20130212_mega8_usbisp.hex:a -U lfuse:w:0xef:m -U hfuse:w:0xc9











その後、デバイスの電源をオフにし、ジャンパーを取り外すことができます。 ジャンパをはんだ付けした後、プログラマはUSBASPに対応する新しいVID = 0x16c0およびPID = 0x5dcに感謝します。 これで、次のように操作できます。



avrdude -c usbisp







以上です。 中国人がどのような目的でファームウェアをプログラマーにアップロードしているのかを推測することしかできませんが、ファームウェアの使用方法やHIDデバイスがプログラマーとして機能する方法は明確ではありません。 製品名にこの単語を使用してUSBASPで模倣する場合は、ファームウェアもコピーできます。



All Articles