ATtiny26からATtiny261/461/861への移行

秋月でATtiny26が売ってないので、Digi-keyでATtiny461とATtiny861を買ってみました。
ATtiny26はATtiny261/461/861とピンコンパチ、レジスタ類も一緒です。
フラッシュROMの容量はATtiny26が2Kなのに対して、ATtiny461は4K、ATtiny861は8Kです。あと、ピンチェンジやタイマのイマイチだった機能がちゃんと強化されています。シリアル通信の部分も機能追加されて、、、一部仕様がわけ分からなくなってます。

これはDigi-Keyで5個だけ買ったんで割高ですが、それでも単価だけ比べると秋葉原の相場の半額です。
ただし、ATmega168みたく秋月でいきなり300円で売られたりしてしまうと、Digi-Keyで買うメリットが一気に崩壊してしまいます。安く買えてうれしいことですが、秋月恐ろしいです。
、、、

以下、ATtiny26用のプログラムをATtiny261/461/861に移植したさいに修正した箇所をメモしておきます。

TCCR0 //ATtiny26
↓
TCCR0B //ATtiny261/461/861

▲タイマ0の機能追加。

TCNT0 //ATtiny26
↓
TCNT0L //ATtiny261/461/861

▲タイマ0が8→16bitになったので修正。

ADCSR //ATtiny26
↓
ADCSRA //ATtiny261/461/861

▲AD変換の機能追加。

ADCSR //ATtiny26
↓
ADCSRA //ATtiny261/461/861

▲AD変換の機能追加。

、、、これで問題なくビルドできました。他にも修正箇所があると思います。

プログラムのさいにヒューズビットの設定が変わってました。

rem ATtiny26内部発振8MHz
avrsp -PC1 -FL11100100 -W default\pad.hex
↓
rem ATtiny261/461/861内部発振8MHz
avrsp -PC1 -FL11100010 -W default\pad.hex

これでクロックが内部発振8Mhzってことらしいのですが実際に計測すると、それより若干速かったです。
シリアル通信を試した感じでは、9600bpsのつもりが10204bps(実測値)になってました。原因はマイコンを5Vで動かしていたためです(最近のAVRは3V用に調整してある?)。



あと、ChaNさんのAVRSP.exeは2007.3以降のものを使いましょう。

(追記)