ATtiny10

米粒AVRとして秋月に登場しました。10個で450円とお安いですが、6ピンのSMDなので老眼一歩手前には目がしんどいです。

6ピンしかないせいもあって、通常のISPは使えずTPIという方法で書き込みます。AVRISPmkIIは対応していますが、usbtiny(Pocket Programmer)は対応していません。USBTiny MKiiは対応するようです。また、aitendoで買えるusbaspは新しいファームウェアにアップデートすれば対応するということですが、そのためにはもう一台ISPライターを持っている必要があります。

今回は仕方なくAVRISPmkIIを使います。
ATtiny10

1 PB0 / TPIDATA 6 PB3 / RESET
2 GND 5 VCC
3 PB1 / TPICLK 4 PB2

TPI

1 DATA 2 VCC
3 CLOCK 4 N.C
5 RESET 6 GND

AVRISPmk2 - tiny10
1 - 1 TPIDATA
2 - 5 RESET
3 - 3 TPICLK
4 -    N.C
5 - 6 RESET
6 - 2 GND

のように接続して、

avrdude -c avrisp2 -p t10 -P usb
avrdude: Device signature = 0x1e9003

と出て動作確認できた。
avrdudeはMacPortsでインストールすると5.10でtiny10にも対応しています。(最近5.11になりました)
しかし、MacPortsもCrossPackもgccは古いので、現時点ではavr-gccを自力でbuildする必要があります。
(追記 2011.12.13) Ubuntu 11.10ではavr-gccのバージョンが4.5.3となっているので、tiny10をコンパイルできる。

クロスコンパイラを作るのはconfigure; makeと単純にはいきません。
Atmelのパッチ置き場は
http://distribute.atmel.no/tools/opensource/avr-gcc/
にあり、またhttp://www.heise.de/ct/projekte/machmit/ctbot/wiki/AVRToolchainというサイトでパッチとコンパイルの手順が出ていたので、参考にしました。

これで楽勝と思いきや、意外なところでつまづき。Lチカをやってもスピードが正しく出ていない。FUSEにクロック設定がないのはなぜ?と思っていたらtwitter情報で、データシートのp.21あたりにあることがわかります。
Register DescriptionのCLKMSR,CLKPSRで設定

CLKMSRはClock Main Settings Registerで
CLKMSR=0x00(Internal 8MHz), 0x01(Internal 128kHz),0x10(External clock)

CLKPSRはClock Prescale Registerで
分周比を設定します。デフォルトは0x03で8分周。0x00で分周なしです。

これを変えるだけではだめで更にCCP=Configuration Change Protectionというレジスタも変更が必要です。(0xD8というシグナチャを書き込む)
本来FUSEで設定するような項目なのでプロテクトを掛けており、シグナチャを変えないと変更できないという仕様みたいです。
8MHzに設定する場合はMakefileで
-DF_CPU=8000000
を指定する。PB0を点滅させるコードは以下のようになり、tiny13よりちょっと面倒です。
他にも_delay_ms(n); でnの値が小さいとコンパイルエラーが出たり、-DF_CPU=1000000でもエラーが出ました。
(追記)このエラーは自分でビルドしたコンパイラに限らず、Ubuntuでインストールされるgcc-4.5.3でも同様でした。

// blink PB0
#include <avr/io.h>
#include <util/delay.h>

#define LED PB0 //or PB1,PB2

int main()
{
    CCP = 0xD8;
    CLKMSR = 0x00;  // internal 8MHz
    CCP = 0xD8;
    CLKPSR = 0x00; // prescale = 1

    DDRB = (1<<LED);
    while(1) {
        PORTB ^= (1<<LED);
        _delay_ms(100);
    }
    return 0;
}
広告
カテゴリー: AVR
ATtiny10」への1件のコメント
  1. kimai0827 より:

    ありがとうございました。大変参考になりました。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

カテゴリー
2011年10月
« 9月   11月 »
 12
3456789
10111213141516
17181920212223
24252627282930
31  
%d人のブロガーが「いいね」をつけました。