ATmega328

28ピンナローデュアルインラインパッケージ(DIP -28N)のATmega328P
32ピン薄型クワッドフラットパック(TQFP -32)のATmega328P
ATmega328Pのダイ

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
EEPROM1KB
パッケージピン数28または32
静電容量式タッチセンサーチャンネル16
最大I/Oピン数23
外部割り込み3
USBインターフェースいいえ

家族

ATmega328の一般的な代替品として、「picoPower」ATmega328Pがあります。megaAVRシリーズの他のすべての製品の一覧は、Atmelのウェブサイトでご覧いただけます。[ 3 ]

  • ATmega328
  • ATmega328P および ATmega328P-AUTOMOTIVE
  • ATmega328PB および ATmega328PB-AUTOMOTIVE (ATmega328P のスーパーセット) - ATmega328P よりも多くの UART、I2C、および SPI 周辺機器を備えています

アプリケーション

ATmega328 は、シンプルで低電力、低コストのマイクロコントローラが必要な多くのプロジェクトや自律システムで一般的に使用されています。

おそらくこのチップの最も一般的な実装は、人気のあるArduino開発プラットフォーム、つまりArduino Uno、Arduino Pro Mini [ 4 ]、およびArduino Nanoモデルです。

プログラミング

28-PDIPのATmega 48A/PA/88A/PA/168A/PA/328/Pのピン配置(データシート)

信頼性試験では、 85℃で20年間、または25℃で100年間のデータ保持故障率が1PPMよりはるかに低いことが示されています[ 5 ]

並列プログラムモード[ 2 ]
プログラミング信号ピン名入出力関数
RDY/BSYPD1High は MCU が新しいコマンドの準備ができていることを意味し、そうでない場合はビジー状態です。
OEPD2出力イネーブル(アクティブロー)
WRPD3書き込みパルス(アクティブロー)
BS1PD4バイト選択1(「0」=下位バイト、「1」=上位バイト)
XA0PD5XTALアクションビット0
XA1PD6XTALアクションビット1
パゲルPD7プログラムメモリとEEPROMデータページのロード
BS2PC2バイト選択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

シリアルプログラミング[ 2 ]
シンボルピン入出力説明
モシPB3シリアルデータ入力
味噌PB4シリアルデータ出力
SCKPB5シリアルクロック

MCUへのシリアルデータは立ち上がりエッジでクロックされ、MCUからのデータは立ち下がりエッジでクロックされます。RESETとSCKがゼロに設定されている間にV CCに電源が投入されます。少なくとも20ms待ってから、プログラミング有効化シリアル命令0xAC、0x53、0x00、0x00がMOSIピンに送信されます。2番目のバイト(0x53)はMCUからエコーバックされます。[ 2 ]

参照

参考文献

  1. ^ “ATmega328P” . 2013年1月22日時点のオリジナルよりアーカイブ2016年7月14日閲覧。
  2. ^ a b c d e f g「Atmel 8ビットAVRマイクロコントローラ ATmega328/P データシート完全版」(PDF)2018年12月10日時点のオリジナルよりアーカイブ(PDF) 。 2016年7月14日閲覧
  3. ^ "megaAVR Microcontrollers" . Atmel. 2014年2月14日時点のオリジナルよりアーカイブ2016年7月14日閲覧。
  4. ^ "Arduino - ArduinoBoardProMini" . www.arduino.cc . 2021年12月8日閲覧
  5. ^ 「Atmel 8ビットAVRマイクロコントローラ ATmega328/P データシート概要」(PDF) 2016年6月. 2016年7月17日時点のオリジナルよりアーカイブ(PDF) 2016年7月14日閲覧
公式ウェブページ