Arduinoを本格的なAVRISPプログラマーに変える

画像



Habrのすべてのユーザー、特にArduinoテーマに苦しんでいるユーザーを歓迎します。



私は長い間求められてきました-Arduinoを使用して16進ファイルをフラッシュすることは可能ですか? ヒューズを交換しますか? ファームウェアを読む? そして、すべて...答えはイエスです、そして今日、私はそれをどうやってやるかを教えます。





(このビデオは以下の情報を複製しています)



Arduino-私にとって、初心者にとっては素晴らしいスタートですが、さらに成長する必要があります。マイクロコントローラの世界は美しく、素晴らしい機会を提供しますが、残念なことに、Arduinoはかなり狭い領域です。



少しの背景:

ある晴れた日、私はATtiny13で素晴らしいプロジェクトに出会いましたが、悲しいかな、著者はネットワークに16進ファイルと回路のみをアップロードしました。もちろん、ハードウェアで試すことはできませんでした。 この質問は私をますます苦しめ、そして私は偶然ネットワーク上のあるビデオを偶然見つけました。著者は彼がArduinoを使って別のマイクロコントローラーをフラッシュしたと主張しました。 私に促されたのは彼でした-SinaProgを使用しますが、Arduinoのファイルで...



SinaProgテーマでグーグルでSinaProg 2.1.1.RUSをダウンロードしましたが、Arduinoでの動作を拒否したため、Arduino IDEからいくつかのファイルをSinaProg 2.1.1 \ data \フォルダーに投入し、すべて動作しました。



ソフトウェアの可能性について簡単に説明しましょう。



画像



Hex-fileブロックで、hexまたはeepを選択します(最初はファームウェア、2番目は不揮発性メモリの内容です)。



また、「>」ボタンがある部分では、「OK」や「ERROR」などのあらゆる種類のメッセージを見ることができますが、「>」ボタン自体はAvrdudeログを開きます。



Flashブロックにはボタンがあります:



プログラム-16進ファイルをマイクロコントローラーに書き込む(おそらく16進ファイルが選択されている場合);

検証-すべてが正常である場合、マイクロコントローラーとHEXファイルのファームウェアをチェック(つまり、それらを比較)-プログラムはOKを示します。

読み取り-HEXファイルを読み取ります。



EEPROMブロックでは、すべてが類似しています。



次はデバイスブロックです。ここでは目的のマイクロコントローラーを選択できます。サポートされているマイクロコントローラーのリスト全体は次のとおりです(リストはSinaProg 2.1.1 \ data \フォルダーにあるDevice.txtファイルから削除されました)。



ここにいくつかあります
冗談です、たくさんあります:



AT90CAN128

AT90CAN32

AT90CAN64

AT90PWM2

AT90PWM2B

AT90PWM3

AT90PWM3B

AT90USB1286

AT90USB1287

AT90USB162

AT90USB646

AT90USB647

AT90USB82

AT90s1200

AT90s2313

AT90s2323

AT90s2333

AT90s2343

AT90s4414

AT90s4433

AT90s4434

AT90s8515

AT90s8535

ATmega103

ATmega128

ATmega1280

ATmega1281

ATmega1284P

ATmega128RFA1

ATmega16

ATmega161

ATmega162

ATmega163

ATmega164P

ATmega168

ATmega169

ATmega2560

ATmega2561

ATmega32

ATmega324P

ATmega325

ATmega3250

ATmega328P

ATmega329

ATmega3290

ATmega3290P

ATmega329P

ATmega48

ATmega64

ATmega640

ATmega644

ATmega644P

ATmega645

ATmega6450

ATmega649

ATmega6490

ATmega8

ATmega8515

ATmega8535

ATmega88

ATtiny11

ATtiny12

ATtiny13

ATtiny15

ATtiny22 2343

ATtiny2313

ATtiny24

ATtiny25

ATtiny26

ATtiny261

ATtiny44

ATtiny45

ATtiny461

ATtiny84

ATtiny85

ATtiny861

ATtiny88

ATxmega64A1

ATxmega128A1

ATxmega128A1D

ATxmega192A1

ATxmega256A1

ATxmega64A3

ATxmega128A3

ATxmega192A3

ATxmega256A3

ATxmega256A3B

ATxmega16A4

ATxmega32A4

ATxmega64A4

ATxmega128A4







ご覧のとおり、すべての一般的なATmelマイクロコントローラー、特にATmega328P、ATmega8、ATtiny13、ATtiny2313およびその他のあらゆる種類のものがあります...



[次へ]-[ 検索 ]ボタンをクリックすると、プログラムはプログラマに接続されているマイクロコントローラーの署名を読み取ろうとします。つまり、マイクロコントローラーを探します。 その後、すべてが正常であるかそうでない場合、それぞれ情報ブロックで「OK」または「エラー」と答えることができます。



ヒューズブロックは、異なる周波数で動作するATmega8のプリセットがありますが、残念なことに、ATmega8とATmega32のみ、Fuse.txtファイル (SinaProg 2.1.1 \ data \フォルダーにあります)に追加できます。



プログラムボタンがあります-プリセットを記録し、上の段落を見てください。



また、 詳細設定 -ダッシュボタンを押すと、このウィンドウが表示されます。



画像



デバイスシグネチャ -tsiferkiの一部は、マイクロコントローラの識別子であると理解しているため、プログラムによると、プログラムはどのようなマイクロコントローラを訴えているのかを認識します。



情報部分、すべては上記のとおりです。



ヒューズは少し低くなります...櫛でとめられたら、最初に読み取りボタンで読み取ることを忘れないでください(たとえば、「SPIEN」または「RSTDSBL」などの重要なヒューズを意図的に変更しないように)、ヒューズを書き込みます- 書き込みボタン、 チップ消去ボタンはマイクロコントローラを消去します、何かおおよそのこと-コンピューターでUSBフラッシュドライブをフォーマットします(ただし、ヒューズはデフォルトではインストールされないため、忘れないでください)。



ヒューズビットに関するいくつかの言葉は、マイクロコントローラーを微調整し、周波数を上げてから下げ、内部RCチェーンのクロックをオン/オフにするようなものです...一般的には、最後の手段としてそこに登る、そうでなければブロックすることができますマイクロコントローラー(真剣に動作を停止するように誘惑するため)で、すでにAtmega fusebit doctorがまったくありません。



「融合計算機」のGoogleからの最初のリンクがありますが、警告し、理由を知らずに何かを突いて、それをマイクロコントローラーに書き込みます-それは良いことにはなりません、私は知っています。



さらに、ある種の情報ブロックは、あまり掘り下げませんでした。 さて、終了ボタンは、英語を知らなくても、すでに推測されていると思います。



したがって、メインプログラムウィンドウの最後のブロックはProgrammerであり、 プログラマとしてArduinoを使用する場合、ここでプログラマのタイプが選択されます-COM19ではなく、画面上にあるものをすべて配置します。これは私のものです。いずれにせよ、それは間違いなくCOM1ではな​​く、最初のものはシステムのものであり、 Gromov Programmerなどの実際のCOMポートに接続するプログラマーにのみ関係します。 ラップトップにはCOMポートがない場合がありますが、コンピューターには、原則として、特に古いポートにはまだCOMポートがあります。 別のプログラマー、たとえばUSBASPを使用できます。リストで選択することを忘れないでください。AVRISPの場合と同じ速度を設定します。



サポートされているプログラマーのリスト:



足りない
グロモフ

USBtiny

アルフ

Arduino

ISPで

AVR109

AVR910

AVR911

AVRISP

AVRISP 2

AVRISP mkII

AVRISP v2

バスコム

ブラスター

BSD

バタフライ

C2N232I

ダパ

ダサ

DASA 3

Dragon_dw

Dragon_hvsp

Dragon_ISP

Dragon_jtag

Dragon_PP

DT006

ERE-ISP-AVR

Frank-stk200

フューチュレック

JTAG 1

JTAG 1遅い

JTAG 2遅い

JTAG 2

JTAG 2Fast

JTAG 2ISP

JTAG 2dW

JTAG mkI

JTAG mkII

MIB510

pAVR

ピコウェブ

ポニー-stk200

ポニーサー

SIプログラム

SP12

STK200

STK500

STK500 HVSP

STK500 PP

STK500 v1

STK500 v2

STK600

STK600 HVSP

STK600 PP

USBasp

Xil







個人的には、プログラマーAVRISP(ArduinoISPのステッチスケッチ付き)とUSBasp、2つのマイクロコントローラーATmega8とATtiny13でのみテストしました。



Arduinoを使用して、ヒューズを縫い付け/読み取り/変更/ マイクロコントローラー殺すことができるようにするには、まず、ArduinoISPスケッチを縫い付けて、ここに書いたようにすべてを接続する必要があります:



Arduinoを使用したATtiny13ファームウェアおよびプログラミング



簡単に言えば、マイクロコントローラーのリセット、MOSI、MISO、SCKピンを接続します。これは、コメントのスケッチで説明されているように、フラッシュ/ファームウェアの読み取り/ヒューズの変更を行います。



... // pin name: not-mega: mega(1280 and 2560) // slave reset: 10: 53 // MOSI: 11: 51 // MISO: 12: 50 // SCK: 13: 52 ...
      
      







ATmega8 arduinoに接続する例を次に示します。



画像



まあ、アナロジーによって...例えば、私たちが興味を持っているマイクロコントローラのデータシート(MKに関する技術文書)で、ピンのマップを探しています。ここでは、たとえば、「ATmega8 pdf」のリクエストによるGoogleからの最初のリンクです。



さて、もう苦しむことはありません。 ここに、Arduino IDEのファイルを含むプログラムへのリンクがあります



ロシア語フォーラムArduinoのスレッドへのリンク



融合計算機 ;



Artininoを使用したATtiny13ファームウェアとプログラミング



すべての出版物



PS ATtiny13が点滅を停止し、プログラムしようとすると、128 kHzで実行しようとした後、どこかで掘り下げました。このようなわずかに変更されたArduinoISPコードにより、ファームウェア/フュージョンが数回遅くなりますおそらく、ある種の魔法が正直に理解していなかったからです。



All Articles