まえがき
みなさまこんにちは、特にブラインドのみなさまこんにちは。
フィジカルコンピューティングをやりたいかなり見えにくい方々、手に入れたいろんな基板たちのピン配置を調べるのには案外難儀しているのではないかと思います。そんな私も難儀しているわけでして、調べたものは極力
自分のブログ
に書くようにはしています。とはいっても、自分が興味のあるものしか掲載しませんし、シリーズ全部のパーツを掲載するわけでもありません。
ということで、ATtinyシリーズはいろいろと面白いマイコンなのですが、おそらく一度もピン配置を掲載していません。
そこで、各種リソースを眺めながらピン配置を推定しようというのがこの記事の目的です。
ATtinyシリーズのピン配置原則
この記事では、両側に足が生えているATtinyを扱います。おそらくDIPに変換したものを使おうとしていらっしゃるのだろうと思います。あるいはカスタム基板に搭載されているものでしょうか?私は、202, 1614, 3216の3つを所持しています。
どちらが1番ピンであるかどうかはわかっているものとします。これは触って判別ができません。
- 1番はかならずVCCです。電源ですね。
- 最後のピンはGNDです。1番の向かい側になるピンですね。
ぶっちゃけこの接続を間違えなければ簡単には壊れるものでもありません。間違えても壊れないこともあります。ただ、ものすごく発熱することがありますので、触るときには注意して!
ATtinyマイコンにはA, B, Cというピンのグループがあります。Cグループがないマイコンもありますが、一応3つあります。それぞれのグループは、最大8本のピンがあるようです。
これを覚えておきながら、次に進みましょう。
PlatformIOのピン定義を眺めてみる
Arduinoにも同じファイルが入っているはずですが、場所が特定できませんのでPlatformIOで書きます。
ATtyny XX2シリーズ
~/.platformio/packages/framework-arduino-megaavr-megatinycore/variants/txy2/pins_arduino.h
#define PIN_PA6 (0)
#define PIN_PA7 (1)
#define PIN_PA1 (2)
#define PIN_PA2 (3)
#define PIN_PA3 (4)
#define PIN_PA0 (5)
この定義の順番で2番ピンから順番にならんでいます。この定義は6個ありますから8ピンのマイコンだということになりますね。
ATTiny XX4シリーズ
~/.platformio/packages/framework-arduino-megaavr-megatinycore/variants/txy4/pins_arduino.h
#define PIN_PA4 (0)
#define PIN_PA5 (1)
#define PIN_PA6 (2)
#define PIN_PA7 (3)
#define PIN_PB3 (4)
#define PIN_PB2 (5)
#define PIN_PB1 (6)
#define PIN_PB0 (7)
#define PIN_PA0 (11)
#define PIN_PA1 (8)
#define PIN_PA2 (9)
#define PIN_PA3 (10)
こちらは12個定義がありますから、14ピンですね。
ATTiny XX6シリーズ
~/.platformio/packages/framework-arduino-megaavr-megatinycore/variants/txy6/pins_arduino.h
#define PIN_PA4 (0)
#define PIN_PA5 (1)
#define PIN_PA6 (2)
#define PIN_PA7 (3)
#define PIN_PB5 (4)
#define PIN_PB4 (5)
#define PIN_PB3 (6)
#define PIN_PB2 (7)
#define PIN_PB1 (8)
#define PIN_PB0 (9)
#define PIN_PC0 (10)
#define PIN_PC1 (11)
#define PIN_PC2 (12)
#define PIN_PC3 (13)
#define PIN_PA0 (17)
#define PIN_PA1 (14)
#define PIN_PA2 (15)
#define PIN_PA3 (16)
何ピンでしょうか?はい、20ピンですね。
UPDIのピンはどこ?
このマイコンたちに書き込むためには電源とUPDIの3本を接続する必要があります。ではUPDIって?
答えはPA0です。上記の定義からPA0を探して、そのピン番号を推測して接続します。間違ってたら書き込めないだけです。VCCとGNDを間違えなければ壊れません。
最後に
ほぼ完全に、私と似たような見えにくい人たちに向けて、フィジカルコンピューティングのハードルをちょっとでも下げてみようかなと思って、私のメモから記事を書いてみました。これらのマイコンたちはブレッドボードで直接扱えないので、どうにかしてDIP変換したものを手に入れないといけないのですが、それでもピン配置が予測できると、一つハードルが下がります。
では、ハッピー・ハッキング!