
.jpg/440px-ICIC-TQ32-X-K328-01_(16421989932).jpg)

ATmega328は、Atmel社(後にMicrochip Technology社が2016年にAtmel社を買収)が開発したmegaAVRファミリーのシングルチップマイクロコントローラです。改良型ハーバード・アーキテクチャの8ビットRISCプロセッサコアを搭載しています。
Atmel 8ビットAVR RISCベースのマイクロコントローラは、書き込み中読み出し機能付き32KB ISPフラッシュメモリ、1KB EEPROM、2KB SRAM、23本の汎用I/Oライン、32本の汎用ワーキングレジスタ、比較モード付き3つの柔軟なタイマー/カウンター、内部および外部割り込み、シリアルプログラマブルUSART、バイト指向2線式シリアルインターフェース、SPIシリアルポート、6チャネル10ビットA/Dコンバータ( TQFPおよびQFN / MLFパッケージでは8チャネル)、内部発振器付きプログラマブルウォッチドッグタイマー、およびソフトウェアで選択可能な5つの省電力モードを備えています。デバイスは1.8~5.5ボルトで動作します。デバイスのスループットは1MIPS / MHzに迫ります。[ 1 ]
| パラメータ | 価値 |
|---|---|
| CPUタイプ | 8ビットAVR |
| 最大CPU速度 | 20MHz |
| パフォーマンス | 20MHzで20MIPS [ 2 ] |
| フラッシュメモリ | 32 KB |
| スラム | 2KB |
| EEPROM | 1KB |
| パッケージピン数 | 28または32 |
| 静電容量式タッチセンサーチャンネル | 16 |
| 最大I/Oピン数 | 23 |
| 外部割り込み | 3 |
| USBインターフェース | いいえ |
ATmega328の一般的な代替品として、「picoPower」ATmega328Pがあります。megaAVRシリーズの他のすべての製品の一覧は、Atmelのウェブサイトでご覧いただけます。[ 3 ]
ATmega328 は、シンプルで低電力、低コストのマイクロコントローラが必要な多くのプロジェクトや自律システムで一般的に使用されています。
おそらくこのチップの最も一般的な実装は、人気のあるArduino開発プラットフォーム、つまりArduino Uno、Arduino Pro Mini [ 4 ]、およびArduino Nanoモデルです。

信頼性試験では、 85℃で20年間、または25℃で100年間のデータ保持故障率が1PPMよりはるかに低いことが示されています。[ 5 ]
| プログラミング信号 | ピン名 | 入出力 | 関数 |
|---|---|---|---|
| RDY/BSY | PD1 | お | High は MCU が新しいコマンドの準備ができていることを意味し、そうでない場合はビジー状態です。 |
| OE | PD2 | 私 | 出力イネーブル(アクティブロー) |
| WR | PD3 | 私 | 書き込みパルス(アクティブロー) |
| BS1 | PD4 | 私 | バイト選択1(「0」=下位バイト、「1」=上位バイト) |
| XA0 | PD5 | 私 | XTALアクションビット0 |
| XA1 | PD6 | 私 | XTALアクションビット1 |
| パゲル | PD7 | 私 | プログラムメモリとEEPROMデータページのロード |
| BS2 | PC2 | 私 | バイト選択2(「0」=下位バイト、「1」=2番目の上位バイト) |
| データ | PC[1:0]:PB[5:0] | 入出力 | 双方向データバス(OEがローのときに出力) |
PAGEL(PD7)、XA1(PD6)、XA0(PD5)、BS1(PD4)がゼロに設定されると、プログラミング モードになります。[ 2 ] RESET ピンを 0 V に、V CCを 0 V にします。V CCは 4.5~5.5 V に設定します。60 μs 待機し、RESET は 11.5~12.5 V に設定します。310 μs 以上待機します。[ 2 ] XA1:XA0:BS1:DATA = 100 1000 0000に設定し、XTAL1 を少なくとも 150 ns 間パルスさせ、WR をゼロにパルスさせます。これでチップ消去が開始されます。RDY/BSY(PD1)がハイになるまで待機します。XA1:XA0:BS1:DATA = 100 0001 0000 、XTAL1 をパルスさせ、WRをゼロにパルスさせます。これがフラッシュ書き込みコマンドです。 [ 2
| シンボル | ピン | 入出力 | 説明 |
|---|---|---|---|
| モシ | PB3 | 私 | シリアルデータ入力 |
| 味噌 | PB4 | お | シリアルデータ出力 |
| SCK | PB5 | 私 | シリアルクロック |
MCUへのシリアルデータは立ち上がりエッジでクロックされ、MCUからのデータは立ち下がりエッジでクロックされます。RESETとSCKがゼロに設定されている間にV CCに電源が投入されます。少なくとも20ms待ってから、プログラミング有効化シリアル命令0xAC、0x53、0x00、0x00がMOSIピンに送信されます。2番目のバイト(0x53)はMCUからエコーバックされます。[ 2 ]