avr atTINY13a 4:リセッター


[実験中] [ブレットボード]
左は作り直したもの・右はブレッドボート

 このTiny13用のリセッターで、ヒューズビットを購入時状態に戻せます。
 写真はバラックのブレッドボードですが、動いています。12.0V(+-0.5V)の電源が必要(約10mA)です(これで20回程、実験では生き返らせています)。
 その後、万能基板に半田付けした物に変更しました。

 I/Oピンがもう一つ増える! 

 ATTiny13aはピンが8本で、その内自由に使えるのが5本です。電源端子の他、リセット端子として使います。
 遊び用としては十分ですが、リセットピンはヒューズを変更すると入力又は出力端子として使えるので、使えるピンが増えて便利です。但し、シリアルプログラムが出来なくなります。
 でも、高圧プログラムを使うと出来ます。以前はパラレルプログラムを使ってましたが最近は別の方法が使われるようになりました。使うには少し不便で、リセットさせる場合、毎回解除する必要があります。
 現在の安価な書き込み器ではそれに対応していません!いずれ出回ると思いますが…。
 という事で作ることにしました。初め「書き込み」というキーワードで「Web上にないか」調べたのですが、なかなか見つからなかった。
 その後、一つ「リセッター」名で同じ様な物が見つかかりました。これが利用出来れば、いちいち作る手間が節約出来ます。
 ところが、コントロールが「アセンブラー」になっており、最近やらないのですっかり忘れています。でも作って見よう!と回路図を見ると「少し改善出来る点に気が付きました、これってTR1個無くても動作するのではー」と思い、改善すべく日夜悩んでいました。

[ 試して見ますか! ]

 ピンの少ないMCUは少しでも追加出来れば余裕が出て使い易くなります。
 とは言え、毎日雑用が多く後回しになっていました。ふとしたことからそろそろ作ろうという事でブレッドボードに差し込んで動かすことにしました。
 結果は"ブー"「動かないー」で…いろいろ眺めていると差し込んだつもりの線が浮いて、接触不用状態になっていました。
 古いブレッドボードだったからです、最近買った物はそれほど悪い物は有りません。今後少しづつ「古い物は新しくしなければ!」と思いました。
[avr PIN]

 先人の作った回路など! 
 ICのピン動作は同じなので、先輩発表と回路は同じ様になりました。でもトランジスタは一つ節約しています。TRが無くてもICから直接出しても動きそうです。
 ここはそれほど電流は流れません。たぶん5mA程度と思われ直接ピンから供給すればコントロール用のTRは省略出来ます(最近のavrは20mAぐらい流せます)。

ピン番号の動作 これを使ってヒューズビットを書き込みます。
Pin0-SDI、Pin1-SII、Pin2-SDO、Pin3-SCI(クロック)
 具体的なコマンドはマニアルをご覧下さい。
 SOFTですが、ATTiny13a専用とすれば、コントロールは簡単になります。
 だいたい他のICは買うつもりがありませんし、使わない…。とすれば「何とか作れそう!」と安易に考えたのが運のつき…(結構手間ひまが掛かってしまった!)

 PICの場合、リセット端子は入力として使えるのでそれなりに便利でした。avrは出力になるのですがその差はなんでしょう!あまりメリットは探せない!

 プロの仕事はぎりぎりまで使うのでしょうが、アマチュアの場合ピンの多い物を使ってもコスト的にたしたことが無いので、邪道というか愉快感!を味わう程度でしょうか。美学でしょう、早い話「やせ我慢」でしょう。

 前書きが長くなってしまった! 
 実験の結果、ヒューズビットの書き込みが出来ることが分かったので、ここに紹介します。但し私のパソコンと[ATTiny13a]だけの実験で一般的ではありません。職業で使う方は使わないで下さい(多量に不良品が出ても責任はありません、念の為)。あくまでも「個人的に作ったら書き込めた!」というだけのものです。
 参考にするなら、先輩が発表(でんし研)している物を利用して下さい。
 識標の読み出しは面倒なので省略しています。要するに「FuseBitが書き込めれば"良し!"」としています。他のavrを書き換える可能性もありますが、他の人の利用方法まで手が回りません。
 私はあくまで個人的に利用出来れば良い、と考えこれを作り使っています。IC購入時のヒューズDATAである[6A/1F(FF)]に戻すだけです。
 いずれ市販品が出ると思いますけど…。今はこれって、重宝しています。

[ 動作は簡単! ]
 HV-Programmの動作はアルゴリズムとしてマニアルに出ています。でも、実際作ってもなかなか動かないのが実情です。
 そこで先輩が発表している物を参考に作った所、書き換えが出来ました。書き込みSoftは各自異なるので、プログラムはそのまま引用出来ませんが、概略として参考になりました。
[ 方 法 ]
 書き込み方法は、Fuse bit上位・下部を書き込むだけですが、formatとして4 ステップ、11bitでコントロールします。
 終わったらBysy信号をポーリングして時間待ちをして終了。詳しくはプログラムをのぞいて下さい。

 電圧を加え2秒経過しても「LEDが点滅しない」のは、ソケットにICを逆に差し込んでないかチエック!
 BピンからターゲットICのVcc間に22Ω程度の抵抗をいれると過電流の保護になります。
[回路図]

[ 試して見ました! ]
A. 「128KHz発振」と「PORTB5を使ってLEDのチカチカ点滅プログラム」を書き込んで、実際に点灯させてみました。
B. 結果、@PINにLEDを付けて確認、点滅しています。この時のコンフィグは[1E(FE) 73]
C. そして、リセッターを動かすとコンフィグは元の[1F(FF) 6A]に戻っていました。これで購入時のコンフィグになり、なんでも書き込める状態になりました。(2013 11/11)
---------------------------
void main() //Test{
     DDRB = 0b00100000;
     PORTB=0;
     //
     while(1){
       PORTB5_bit=~PORTB5_bit;
       Delay_ms(200);
     };
}
---------------------------

 Cプログラムは(MikroC ProのSoft・2KBまで無料で使える)です。
 今回作った、リセッター(ATTiny13a用)のHexDATAです(ATTiny13aに書き込みます)。

:100000004FC0FECFFDCFFCCFFBCFFACFF9CFF8CF5B
:04001000F7CFF6CF61
:1000A000BFE9BDBFB0E0BEBF0E94CF00BFE1B7BB9C
:1000B000B0E0B8BB24E01CE004E30A95F1F71A9520
:1000C000E1F72A95D1F700000000B8B3B061B8BBE2
:1000D000BBE1B7BBB0E0B093720000917200043096
:1000E000D8F408E610E020917200E22FF0E0E00F73
:1000F000F11F00810093710000E610E0E22FF0E0B4
:10010000E00FF11F00810093700090DF00917200FA
:100110000F5F00937200E1CFB6B3B2FD01C0FCCF18
:10012000B4E0B0937200009172000830D8F408E691
:1001300010E020917200E22FF0E0E00FF11F00814B
:100140000093710000E610E0E22FF0E0E00FF11FF5
:100150000081009370006ADF009172000F5F0093CE
:100160007200E1CFB6B3B2FD01C0FCCFB4E0B7BBC3
:1001700022E018E30EEA0A95F1F71A95E1F72A95BD
:0E018000D1F708B2B4E00B2608BAF2CFFFCFD9
:10002C0008B30C7F08BBF0DFB0E0B0937300009115
:10003C0071000078003021F4B8B3BE7FB8BB03C0A8
:10004C00B8B3B160B8BB009170000078003021F4F7
:10005C00B8B3BD7FB8BB03C0B8B3B260B8BB009136
:10006C007100000F0093710000917000000F00935D
:10007C007000CADF009173000F5F009373000830AB
:10008C00B1F608B30C7F08BBBFDF08B30C7F08BB0D
:04009C00BBDF089529
:0E001400B8B3B860B8BBB8B3B77FB8BB089537
:0A00220005900D920197E1F7089593
:10019E00A0E6B0E0EEE8F1E080E190E00E94110010
:0201AE000895B2
:08018E004C2C646C4C2C747CB9
:08019600406A0000401F000058
:00000001FF

最後に一言
 ICをたくさん買って作り、不要なICを一気に消す作業はアマチュア的ではないですね。結構めんど〜です!
 でも、なければリセットピンは使えず「全然だめ」です…むむむ▽×○#△××...。

製作 2013/11/10 


 [MAIN MENU へ戻る]

inserted by FC2 system