Arduinoで動くAVRマイコンとして8PinではATtiny202,402,412、14PinではATtiny404,1604,1614を主に使ってきました。
近頃,ATtinyのシリーズとして20PinのATtiny1616が手に入りやすくなっているので試してみました。
・20PinシリーズのPin配置です

PA0がプログラミング用のUPDI (Unified Program and Debug Interface)担当Pinになっているので,8bitのデータがパラレルにフルで使えるポートが無いのはちょっと残念ですが,,アナログ入力ができるPinは多いですね。
・20Pinシリーズのスペックのgithubからの転載です

・ハードの準備
秋月電子では単体のATTINY1616-SFRとATTINY1616-MNRがDIP20変換基板に装着済みのキットの2種が販売されています。
ま,どちらにしても半田付けが必要ですのでちょっと準備が必要です(^^)。

単体のATTINY1616-SFRは変換基板に半田付けしますが,基板側のPinと接近している所はMCUの足を先にした方がやりやすいですね。
基板のPin は外側からコテを当てれば特に問題なく付けられると思います。

ミニブレッドボードは半田付けの作業台や仮配線の土台として使っています。
またキットの基板にはPin名が書かれていて,やはり工作には便利ですね(^^)。

・ソフトの準備
Arduino IDE にATtiny202などのためのボードマネージャ「megaTinyCore」が必要です。
・ボードマネージャがあるURLの一つ
http://drazzy.com/package_drazzy.com_index.json
・参考までに
→ Arduino IDEでボードマネージャ "megaTinycore"が読み込めない時の対処
megaTinyCoreが読み込めればChipにATtiny1616,書き込み装置にUPDI(私はSLOW 57600 baud)を選択しておきます。

・プログラムの書き込み
Arduinoでプログラミングして,ATtiny1616に書き込みます。
→ ATtiny202などにUSBシリアル経由のUPDI方式で書き込むアダプタを作ってみた
書き込んでLチカを行ってみました。

以上のように動作は確認できました。
8Pinや14PinのATtinyシリーズと同様に8bitマイコンとして安定した動作が期待できそうです。
ついでに,せっかく20Pinあるので4連の7SegLEDをつないでみました。
各Pinの役割分担です。

UARTとI2C担当Pinは外していますので,この状態でもセンサーや通信はつなげますね(^^)。
実際の動作中です。
さすがに素の7SegLEDへの配線はごつくなります(^^;;;;;;。

上の動作のプログラムを一応メモしておきます。
ダイナミック動作へのパラレル出力ですが,特にはポート操作など行わず,普通のdigitalWriteを使っています。
近頃,ATtinyのシリーズとして20PinのATtiny1616が手に入りやすくなっているので試してみました。
・20PinシリーズのPin配置です

PA0がプログラミング用のUPDI (Unified Program and Debug Interface)担当Pinになっているので,8bitのデータがパラレルにフルで使えるポートが無いのはちょっと残念ですが,,アナログ入力ができるPinは多いですね。
・20Pinシリーズのスペックのgithubからの転載です

・ハードの準備
秋月電子では単体のATTINY1616-SFRとATTINY1616-MNRがDIP20変換基板に装着済みのキットの2種が販売されています。
ま,どちらにしても半田付けが必要ですのでちょっと準備が必要です(^^)。

単体のATTINY1616-SFRは変換基板に半田付けしますが,基板側のPinと接近している所はMCUの足を先にした方がやりやすいですね。
基板のPin は外側からコテを当てれば特に問題なく付けられると思います。

ミニブレッドボードは半田付けの作業台や仮配線の土台として使っています。
またキットの基板にはPin名が書かれていて,やはり工作には便利ですね(^^)。

・ソフトの準備
Arduino IDE にATtiny202などのためのボードマネージャ「megaTinyCore」が必要です。
・ボードマネージャがあるURLの一つ
http://drazzy.com/package_drazzy.com_index.json
・参考までに
→ Arduino IDEでボードマネージャ "megaTinycore"が読み込めない時の対処
megaTinyCoreが読み込めればChipにATtiny1616,書き込み装置にUPDI(私はSLOW 57600 baud)を選択しておきます。

・プログラムの書き込み
Arduinoでプログラミングして,ATtiny1616に書き込みます。
→ ATtiny202などにUSBシリアル経由のUPDI方式で書き込むアダプタを作ってみた
書き込んでLチカを行ってみました。

以上のように動作は確認できました。
8Pinや14PinのATtinyシリーズと同様に8bitマイコンとして安定した動作が期待できそうです。
ついでに,せっかく20Pinあるので4連の7SegLEDをつないでみました。
各Pinの役割分担です。

UARTとI2C担当Pinは外していますので,この状態でもセンサーや通信はつなげますね(^^)。
実際の動作中です。
さすがに素の7SegLEDへの配線はごつくなります(^^;;;;;;。

上の動作のプログラムを一応メモしておきます。
ダイナミック動作へのパラレル出力ですが,特にはポート操作など行わず,普通のdigitalWriteを使っています。
//ATtiny1616 7segLED test1
// 7Seg LED Segment Data for cathode_common :0,1,,,9,A,B(b),C,D(d),E,F
byte segData[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};
byte segPin[]={14,15,16,0,1,2,3,4}; // Seg._Pin, PA1-7 : Dot_Pin, PB5
byte digPin[]={10,11,12,13}; // Digit_Pin, PC0-3
byte digMax=4; // Buffer of Disp._data for 4 digit data
byte dBuffer[4];
void setup() { /** SET UP **/
// initialize digital pins as output.
for (byte i = 0; i < 8; i++){ ; // Seg. Pin
pinMode (segPin[i], OUTPUT);
}
for (byte i = 0; i < 4; i++) {; // Digit Pin
pinMode (digPin[i], OUTPUT);
}
} // setup end
void loop() { /** LOOP **/
for(byte i = 0; i < 13; i++){ // set data
dBuffer[0]=i;
dBuffer[1]=i+1;
dBuffer[2]=i+2;
dBuffer[3]=i+3;
for (int j = 0; j< 50; j++){ // call disp. and waiting
disp7seg();
}
}
} // loop end
void disp7seg(){ /** Disp. Data **/
for (byte i=0;i<digMax;i++){
byte digBit=0xFF; // Init. digit for cathode_common
bitClear(digBit, i);
for (byte j = 0; j < digMax; j++){ // Set digit_bit
digitalWrite(digPin[j],bitRead(digBit, j));
}
for (byte j = 0; j < 8; j++){ // Ascii -> segment_bit
digitalWrite(segPin[j], bitRead(segData[dBuffer[i]], j));
}
delay (5); // waiting time
}
} // disp7seg end