秋月電子で販売されている ATMEGA328PB-AU(32ピンQFP) は、
Arduino UnoでおなじみのATmega328Pの改良版マイコンです。
今回はこの ATMEGA328PB-AU と32ピンQFP変換基板 を使って、
いわゆる「自作Arduino」を作ってみました。
結論から言うと、
- 内部発振は非常に簡単
- 外部発振は理論通りにいかないことがある
- 外部発振を使うならクリスタルオシレーターが一番安定
という結果になりました。
この記事では、
実際に試してうまく動かなかった点・安定した構成を中心に、
ATMEGA328PB-AUをArduinoとして使う方法をまとめます。
ATMEGA328PB-AUとは?
ATMEGA328PB-AUは、
Arduino Unoで使われている ATmega328P の改良版です。
主な特徴:
- 32ピンQFPパッケージ
- I/Oピン増加
- USART / TWI / SPI などが強化
- 基本的なArduino互換性あり
Arduino用としても十分実用になります。
ATmega328Pとの主な違い
| 項目 | 328P | 328PB |
|---|---|---|
| UART | 1 | 2 |
| I2C(TWI) | 1 | 2 |
| タイマー | 標準 | 増加 |
| 消費電力 | 標準 | 改良 |
| Arduino IDE | 標準対応 | 追加設定が必要 |
👉 注意点
Arduino IDE標準では328PBは完全対応していないため、
「MiniCore」などの外部ボード定義を使うのが一般的です。
使用した部品・構成
ATMEGA328PB-AU
32ピンQFP変換基板(秋月)
Arduino Uno(ISP用)
ブレッドボード or ユニバーサル基板
Arduino UNOをISPとして使う
Arduino UNO側の準備
- Arduino IDEで
ファイル → スケッチ例 → ArduinoISP - UNOに書き込み
- UNOの RESET–GND間に10µF(自動リセット防止)
UNO ISP と ATmega328PB の配線

配線表
| Arduino UNO | ATmega328PB |
|---|---|
| D10 | RESET |
| D11 | MOSI (PB3) |
| D12 | MISO (PB4) |
| D13 | SCK (PB5) |
| 5V | VCC / AVCC |
| GND | GND |
外部発信クリスタルオシレーターとの接続図

実験結果
外部発信(水晶振動子)
以下の構成を試しましたが、
動作が不安定、または正常に動かない。
- 16MHz 水晶振動子 + 22pF セラミックコンデンサ ×2
- セラロック(3ピンタイプ)
症状例:
- ISP書き込みエラー
- プログラムが動いたり動かなかったりする
- クロックが不安定な挙動
理論上は正しい構成でも、
実際には安定しないと感じました。
クリスタルオシレーターを使った外部発振(推奨)
外部発振で一番安定したのは
**クリスタルオシレーター(発振回路内蔵)**でした。
- 16MHz:問題なく一発で起動
- 20MHz:問題なし
- 書き込み・動作ともに安定
接続方法(例)
- オシレーター OUT → XTAL1
- VCC → VCC
- GND → GND
- OE/NC → 未接続またはVCC
コンデンサ不要で、
発振トラブルがほぼありません。
ただクリスタルオシレーターは秋月電子で200円と水晶振動子と比べて少し高いのが欠点です。
ブートローダー書き込みとヒューズ設定
ボード定義(例:MiniCore)
- Board: ATmega328PB
- Clock: External 16MHz
- BOD: Disabled(最初は)
- Programmer: Arduino as ISP
手順
- ツール → 書込装置 → Arduino as ISP
- ブートローダーを書き込む
👉 この時点で
- ヒューズビット
- クロック設定
が同時に書き換わります。
その後の通常スケッチ書き込み
動作確認用Lチカサンプルプログラム
PD2(物理32番ピン)を使用したLチカです。
void setup() {
pinMode(2, OUTPUT); // PD2 = Arduino D2
}
void loop() {
digitalWrite(2, HIGH);
delay(500);
digitalWrite(2, LOW);
delay(500);
}方法1(ISP書き込み)
- スケッチ → 書込装置を使って書き込む
- ブートローダー不要
- こちらの書き込み方法はArudinoの書き込みボタンを押しても書き込むことはできません。ctrl + shifi + u を押して書き込んでください、またepromにデータが入ってないという警告がでますが、正常なので無視してください。
方法2(USB-シリアル使用)
- FT232 / CH340
- TX/RX/RESET接続
- Arduino UNOと同じ感覚で使用可能
まとめ
- ATMEGA328PB-AUはArduinoとして十分使える
- 内部発振は簡単で安定
- 外部発振は工夫が必要
- 水晶+コンデンサやセラロックよりも
クリスタルオシレーターが圧倒的に安定 - ISP書き込み後、USBシリアルを使えば普通のArduinoになる
実験してみて分かりましたが、
「確実に動かしたい」なら 内部発信の8Mか、外部発信の
クリスタルオシレーターという結論です。


