AVR ATtiny10 の有効活用
~ RSTDISBL のクリア方法 ~

Atmel の8ビット マイクロ コントローラ AVR ATtiny10 はユニークな製品である。写真に見るように、とにかく小さい。この大きさで、1KBのプログラムメモリを持ち、4チャネル8ビットのA/D変換器、4ビットのI/O、16ビットタイマ/カウンタ、PWMなど備えている。小さいがゆえに6ピンしかなく、使えるピン数はVccとGNDを除いた4ピンに限られる。しかし、実用できるのは3ピンだけだった。その理由は RESET ピンだ。RESETピンはI/OやA/D変換などに割り当てることができるのだが、RESET 以外に割り当てると、その後のプログラムの書き換えが簡単には出来なくなってしまう。通常、ATtiny10 のプログラムは ATAVRISP MKII (3,000円程度)を用いるのだが、RESETピンを他の機能に割り当てると、 ATAVRISP MKII ではプログラムが出来なくなってしまう。STK600 (18,000円程度)を使えば再プログラムは可能なようだが、STK600 は高価だ。それで仕方なく、VCC、GND、RESET 以外の3ピンに限って使用していた。久しぶりに ATtiny10 を使った工作をしようと思い立ち、データシートを読んでいたら、RESET に12V印加するとプログラムが出来るような記述があったので試してみた。 写真のようにATAVRISP MKII でプログラムを行うには TPI インタフェースを用いる。このプログラムインタフェースは RESET ピンが必要である。ヒューズビットの RSTDISBL を用いると RESET ピンを別の機能に使うことが出来るが、この後、プログラムが出来なくなってしまうのだ。RSTDISBL を使った後、再プログラムすべく次の接続を試した。ATAVRISP MKII の MISOをATtiny10 の1に、GNDを2、SCKを3、Vccを5へそれぞれ接続する。RESETとMOSIは接続しない。そしてVcc-GNDへ5Vの電源を接続し、RESET-GNDに12Vを印加した。Atmel StudioのDevice Programming メニューから ATAVRISP MKII が通常通り使用できた。ATtiny10 以外のデバイスに異常な電圧を掛けることを避けるため、別のボード上に移し単独でプログラミングした。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする