日曜日, 5月 29, 2016

Arduino as ISP: ATtiny13A ヒューズ・リセッター

ATtiny13A というマイクロコントローラICがあります。

このたびこいつを Arduino でどうにかプログラミングすることができたので経緯を記しておきます。すったもんだしたあげくいろいろなものを壊した気がします。というのは、ヒューズの設定で動いてくれなかったからです。

わかってみるとなんですが、この入手したチップ、内部クロック用ヒューズが工場出荷時の値(0x6a, 0xff)ではなかったわけなんです(データシート)。これが原因だと分かるまで時間がかかりました。まずは表面実装部品を使ったのが苦労の発端。

使い慣れない部品を使って新しいことをやろうというのは不確定要素が重なって原因への追及への困難が増します。気を付けましょう。SOP8変換ボードが悪いのか、はたまた設定のせいなのか、そもそも不可能を試みているのかわからないからです。

自作のヒューズ・リセッタ


結論をいうと、Arduino IDE 1.6.x で ATtiny13A をプログラムすることができました。ただし、ヒューズのリセッタを作成する必要がありました。以下のサイトを参照させていただきました。

Arduino UNOでATTiny開発してるときに書き込めない!AVR壊れた!?その前に
Attiny13をArduino化 ついでに外部クロック
AVRマイコンを Arduino-IDE 1.6.x で使用する方法

リセットされれば標準的な?やり方でプログラムできます。

まず File | Examples | 11. ArduinoISP メニューから ArduinoISP をアップロードします。ロード出来たらライタ・シールドを接続し、ATtiny をセットします。青いLED が点滅すれば準備ができています。Tools|Board を ATtiny13 、Tools|Programmer を Arduino as ISP を設定します。そしてプログラムをアップロード。


Attiny 自作ライタ・シールド

ATtiny13A でフルカラーLEDを動かしてみました。


Qt: 外部プログラムを起動する

  Qt/C++ のアプリは、外部へ直接アクセスできます。これはネットアプリでは不可能な Qt のメリットです。 外部プログラムを起動することもできます。QProcess::startDetached() を使うと独立したプロセスを立ち上げることができます。 この QProces...