Attiny85のdigispark化




Attiny85をdigispark化するプロトタイプを作る。

【ファームの書き込み準備と書き込みテスト】

コマンドプロンプトから、avrdude.exeを使ってhexをArduinoをISPにしてAttiny85に送り込むことをまずやる。最初は練習問題。
長いパスを記載するのが大変なので、C:¥やD:¥直下に、”avrdude”というフォルダを作っておく。(名前はなんでもOK)

Attiny85のICをArduinoをISPにして書き込みできる状態にする。
https://funasover.blogspot.com/2024/06/attiny85-fuserest.htmlで作ったものを利用。ブレッドボードだけど)


PB4(3番ピン)に抵抗を介して、LEDをつけてあるので、書き込みが終了するとブリンクするようにしてある。
File-スケッチ例-01.BasicsのBLINKを編集して、ピンを4番(LEDをつけたピン)にしてこれをAttiny85に書き込んで点滅を確認する。

この時、Arduino-IDEに表示される白い部分。ここを見る。

最初に、avrdudeの格納場所が記載されているので、エクスプローラーで開く。
私の環境下では、
C:\Users\ユーザ名\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude
と記載されているが、”/”を"\"に置き換えて
C:\Users\ユーザ名\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17\bin
をエクスプローラーに入れてやる。


先ほど作った、arvdudeというフォルダーに、arvdude.exeとlibusb0.dllをコピーする。

次に、-CC: 以下の部分にavrdude.confのパスが記載されているので、これも”/”を適宜"\"に置き換えつつ、エクスプローラーで開いて、avrdude.confを先ほど作った、arvdudeというフォルダーにコピー

次に、Arduino-IDEに表示される白い部分をずっと右側に
-Uflash:w:を見つけて、その後にこのBLINKのhexファイル”Blink.ino.hex”の在りかがあるのでエクスプローラーで開く。ここも”/”を適宜"\"に置き換える。
Blink.ino.hexを先ほど作った、arvdudeというフォルダーにコピーする。

すると4つのファイルが作成したarvdudeフォルダーに格納されている状態に。

コマンドプロンプトを開いてarvdudeフォルダーに移る。
arvdudeを実行してみると、使い方が表示される。

でここでプロンプトから、arvdudeを用いて、Blink.ino.hexを流し込んでやるんですが、このBlink.ino.hexは1秒間隔で点滅する、流し込んで変化するのが確認できないので、Arduino-IDEで間隔を1秒ではない間隔にしておく。

avrdude -C avrdude.conf -v -pattiny85 -carduino -PCOM12 -b19200 -Uflash:w:Blink.ino.hex

とコマンドプロンプトに流すと、書き込みが開始され終わる。終われば、ちゃんと間隔が1秒間隔に戻るはず。
-C はコンフィグファイルで、-p

ここまでは練習。

【ファームダウンロードとブートローダー書き込み】


全部ダウンロードしてもいいが、必要なのはt85_default.hexをこれクリックするとバイナリーが開くが、右上の"Download raw file"のボタンを押してダウンロード。それを先ほどのavrdudeつくったフォルダーにコピーする。
そして、先ほどの例題と同様に、t85_default.hexを送り込む。今回は、後ろにフィーズの設定を入れる。

avrdude -C avrdude.conf -v -pattiny85 -carduino -PCOM22 -b19200 -Uflash:w:t85_default.hex -U lfuse:w:0xe1:m -U hfuse:w:0xdd:m -U efuse:w:0xfe:m

COM22の部分は環境にあわせて変更
フィーズは、以下の設定
Low: 0xE1
High: 0xDD
Extended: 0xFE

問題なければ、これでAttiny85にブートローダーを入れる所まで完了

【ArduinoIDEの設定】

FILE-基本設定を開いて、追加のボートマネージャーのURLに

http://digistump.com/package_digistump_index.json,http://drazzy.com/package_drazzy.com_index.json

を入れる。


IDE(2.3.1)だと、左側にボードの絵があるのでクリックしてボードマネージャーを開く


ATTinyCore by SpenceKondeが現れるのでインストールする。
スクショとっていないが、インストールすると、Windowsのドライバーのインストールがはじまるので入れる。

【USBケーブル】

ジャンク屋さん(ハードオフなど)で、100円などのUSBマウスやキーボードを調達して分解してケーブルを取り出す。

QIコネクタのオスを圧着ペンチを使ってつけた。ない場合は、ブレッドボードにさせるようにオスのヘッダーピンに半田する等で作る。
並びは写真の通りでQIコネクタの順と、USB端子の順をそろえている。
(5本あって一番左は、USB端子のケース)

【回路】

回路は
を参考に作成。5番ピン(PB0)に抵抗を介してLEDをつけている。

ここまで問題なければ、パソコンのUSBに接続する。
無事にいけば、以下のようにデバイスマネージャーで認識される。




【テストプログラム:Lチカ】

ArduinoIDEを立ち上げて、
File-スケッチ例-01.BasicsのBLINKを開いて、 setupの中の
pinMode(LED_BUILTIN, OUTPUT);の上に
 #define LED_BUILTIN 0
の一行を追加する。

ツールの下の設定を
ボード:”Attiny85(Micronucleus/DigiSpark)"
書き込み装置:”USBTinyISP(ATtinyCore)FAST, for parts running >= 2MHz"

ここでUSBポートからデバイスを切り離し、それからArduinoNanoやUNOのように、書き込みを行う。
> Please plug in the device (will time out in 60 seconds) ... 
というメッセージが出てから、USBを刺すと書き込みが始まる。

無事できれいればLEDが点滅を開始する。








コメント

このブログの人気の投稿

Attiny85とAQM0802A(LCD)のI2C接続

ILI9341 240X320 Arduino

Attiny85 FuseRest