2016/07/07

Arduino ISPを使ってAVR(Attiny24A)に書き込み

放置していたシグマレンズの絞り修正チップがようやく完成。

とはいえ自作する技量はないのでMartinさんの作った修正チップを使っています。
彼のサイトからHEXファイルをダウンロード。(v1, v2, or v3) とか書いてあるあたりですね。
作る踏ん切りがついたのが 安曇野Wasabiさんのプログを見たため。

上記サイトを読めば出来ると思いますが、備忘録として書いておきます。

今回はAvrdudeでAVRにHEXファイルを書き込むだけです。
まずはマイコンにデータを書き込み…なのですが。
物は試しと買ってみたのがUSBISPとかUSBASPとか呼ばれているボード。
200円で購入。

使い方を調べたものの、プラグアンドプレイでない雰囲気&調べても手間が掛かりそう。

というわけでこいつは改造かLinux用かで使うことにしましょう。



それは放置で本題です。

取り出したるは? 互換ボード。
純正は高いのでこれを使います。
mini USBでCH340Gを積んでいるタイプでお値段500円。
一応問題なく使えています。

ボードは互換ボードを買ったのでひとまずArduino IDEを買うときに数ドル寄付。



今回使うのはこのATTINY24A。
SSUなのでピン幅が1.27mmで細め? のSOPです。

特に気にせずにSOPのATTINY13Aを買ったらSUタイプで幅が違いました、ちょっと悔しい。せっかく書き込み用ソケット買ったのに。

言わずもがなですが、このICはくぼみがある位置が1番ピンです。
そこから反時計回りにピン番号を振っていく感じですね。
ついでにDIPはくぼみがある位置を上として左上が1番ピン。
そこはデータシート見ろって話ですけども。

さて、Arduino ISPですが、
Arduino IDEを開いて ファイル→スケッチの例→ArduinoISP→ArduinoISPと進んで開くだけでArduino ISPのプログラムが出るのでそれをArduinoに書き込むだけ。
Arduinoって便利。

ライタの準備が整った(?)ところで配線。
雑な回路図ですがご容赦ください。
とはいえ、ICのピンとArduinoのピンを接続するだけの単純作業。

調べたら出てくると思いますが、他のAVRでも簡単に書き込みできます。
Arduinoの5VをVccに、GNDはGNDに。
D10がRESET、D11はMOSI、D12がMISO、D13はSCK。
あ、配線をいじるときはUSBは抜いておきましょう。(あたりまえ)

この後はマイコンに書き込むだけ…なのですが、avrdudeを出してきたほうが楽ですね。
  Program FilesのArduino\hardware\tools\avr\bin
にavrdude.exeがあり、
  Program FilesのArduino\hardware\tools\avr\etc
にavrdude.confがあります。
この2つを分かりやすいところ、例えばCドライブ直下にフォルダを作って入れておきます。
ひとまずC:\AVRフォルダに入れておきましょう。
ついでにそこにHEXファイルも入れておく。

USBを接続して、燃えなければひとまず大丈夫。(殴)
コマンドプロンプトを起動して
cd C:\AVR
 で、avrdudeのフォルダに移動します。 avrdudeと入力して設定が出てきたら合っているはずです。

 まずは接続が正しいか確認。
avrdude -c avrisp -P COM(ポート名) -b 19200 -p t24
ポート名はArduinoのスケッチ書き込みのときに選んだポート番号です。 またはArduino IDEを開いたとき右下に書いてあるはずです。
USBポートごとに違う雰囲気なので同じポートを使ったほうが安全かもしれません。

これを実行したときに Device signature = 0x1e910b だったら成功。 0x000000だったら配線間違いかICが壊れています。
ちなみに 0x1e910b はAttiny24のIDなので、他のマイコンなら別の数値になります。
それと、この確認コマンドはしなくても問題ありません。


ひとまず拾ってきた頂いてきたHEXファイルを書き込みます。 HEXファイルはマイコンごとに違うようなので下手に変えないほうが安全。
  avrdude -c avrisp -P COM(ポート名) -b 19200 -p t24 -U flash:w:TinyMod.hex
書き込みコマンドで、TinyMod.hex書き込みます。
これでOKとか出たらたぶん大丈夫ということで。


Martinさんのサイトにも書いてありますが、安曇野Wasabiさんのサイトで意味を知ったヒューズビット設定。
  avrdude -c avrisp -P COM4 -b 19200 -p t24 -U lfuse:w:0xc2:m -U hfuse:w:0xdf:m
起動時のディレイをなくすために変更するとかなんとか。
こちらもエラーが出なければ多分OK。 FUSEの項目がD:DF L:C2となったはず。

普段使う限りだとあまり変更しないほうが良いらしい。


これでATTINYへのHEXファイルの書き込みが完了です。
あとは配線して修正チップを入れるだけ!!

To be continued、です。

ソケットがなかったためICクリップで書き込み。
ICの足が折れたり途中で外れたりと問題多発なので書き込み用ソケットを使うのがオススメ!!

DIPの方が扱いやすいものの、やはりサイズの問題は大きいですね。
400mmのレンズならたぶん問題ないものの、50mmマクロだとSOICでもぎりぎり。

TINYが余っているので今度プログラミングもしてみようかな?


0 件のコメント:

コメントを投稿