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
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
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コードにより、ファームウェア/フュージョンが数回遅くなりますおそらく、ある種の魔法が正直に理解していなかったからです。