ATmega32 –8ビットAVRマイクロコントローラー
AVRマイクロコントローラーは高度なRISCアーキテクチャに基づいています。 ATmega32は、AVR拡張RISCアーキテクチャに基づく低電力CMOS8ビットマイクロコントローラです。サイクル周波数が1MHzの場合、AVRは毎秒100万命令を実行できます。
ATmega32の40ピンDIP写真
主な機能:
- 32 x8の汎用レジスタ。
- システム内の32Kバイトの自己プログラム可能なフラッシュプログラムメモリ
- 2Kバイトの内部SRAM
- 1024バイトのEEPROM
- 40ピンDIP、44リードQTFP、44パッドQFN / MLFで利用可能
- 32のプログラム可能なI / Oライン
- 8チャンネル、10ビットADC
- 別々のプリスケーラーと比較モードを備えた2つの8ビットタイマー/カウンター
- 個別のプリスケーラ、比較モード、キャプチャモードを備えた1つの16ビットタイマー/カウンター。
- 4つのPWMチャネル
- オンチップブートプログラムによるシステムプログラミング
- 独立したオンチップ発振器を備えたプログラム可能なウォッチドッグタイマー。
- プログラム可能なシリアルUSART
- マスター/スレーブSPIシリアルインターフェース
特別なマイクロコントローラー機能:
- 6つのスリープモード:アイドル、ADCノイズリダクション、省電力、パワーダウン、スタンバイ、拡張スタンバイ。
- 内部校正済みRC発振器
- 外部および内部割り込みソース
- 電源オンリセットとプログラム可能な電圧低下検出。
ATmega32の40ピンDIP
32個のレジスタはすべて算術論理演算装置(ALU)に直接接続されているため、1クロックサイクルで実行される1つの命令で2つの独立したレジスタにアクセスできます。
パワーダウンはレジスタの内容を保存しますが、オシレータをフリーズします。他のすべてのチップ機能は、次の外部割り込みが発生するまで無効になります。非同期タイマーを使用すると、ユーザーは、デバイスの残りの部分がスリープしている間、省電力モードに基づいてタイマーを維持できます。
ADCノイズリダクションモードは、CPUと、ADCと非同期タイマーを除くすべてのI / Oモジュールを停止します。スタンバイモードでは、水晶発振器を除いて、デバイスの残りの部分はスリープ状態です。メインオシレータと非同期タイマーの両方が、拡張スタンバイモードで引き続き実行されます。
ATmega32は、モノリシックチップ上のシステム内の自己プログラム可能なフラッシュのために強力なマイクロコントローラーであり、多くの組み込み制御アプリケーションに高い柔軟性と費用効果の高いソリューションを提供します。
44パッドTQFP / MLF
ピンの説明:
VCC: デジタル電圧供給
GND: 接地
ポートA(PA7-PA0): このポートは、A / Dコンバータへのアナログ入力として機能します。 A / Dコンバータを使用しない場合は、8ビットの双方向I / Oポートとしても機能します。
ポートB(PB7-PB0)およびポートD(PD7-PD0): これは8ビットの双方向I / Oポートです。その出力バッファは、高いシンクとソースの両方の機能を備えた対称的なドライブ特性を備えています。入力として、プルアップ抵抗がアクティブになると、これらは極端に低くなります。また、ATmega32のさまざまな特殊機能機能も提供します。
ポートC(PC7-PC0): これは8ビットの双方向I / Oポートです。 JTAGインターフェイスが有効になっている場合、ピンPC5(TDI)、PC3(TMS)、およびPC2(TCK)のプルアップ抵抗がアクティブになります。
ATmega32のポートCを使用したJTAGのインターフェース
リセット: 入力です。
XTAL1: 反転発振器アンプへの入力であり、内部クロック動作回路への入力です。
XTAL2: 反転発振器アンプからの出力です。
AVCC: ポートAおよびA / Dコンバータの電源電圧ピンです。 VCCに接続する必要があります。
AREF: AREFは、A / Dコンバータのアナログリファレンスピンです。
ATmega32メモリーズ:
それは2つのメインメモリスペースデータメモリとプログラムメモリスペースを持っています。さらに、データストレージ用のEEPROMメモリを備えています。
システムプログラマブルフラッシュプログラムメモリ内:
ATmega32は、プログラムストレージ用のシステム再プログラム可能なフラッシュメモリに32Kバイトのオンチップを搭載しています。フラッシュは16kX 16として構成され、そのメモリはブートプログラムセクションとアプリケーションプログラムセクションの2つのセクションに分かれています。
ISPプログラマ回路図
SRAMデータメモリ:
レジスタファイル、I / Oメモリ、および内部データSRAMは、下位の2144データメモリ位置によってアドレス指定されます。最初の96の場所はレジスタファイルとI / Oメモリをアドレス指定し、内部データSRAMは次の2048の場所をアドレス指定します。直接、変位を伴う間接、間接、事前デクリメントを伴う間接、および事後デクリメントを伴う間接は、データメモリをカバーするための5つの異なるアドレッシングモードです。これらのアドレッシングモードを使用すると、32個の汎用レジスタ、64個のI / Oレジスタ、および2048バイトの内部データSRAMにアクセスできます。
ATmega32のブロック図
EEPROMデータメモリ:
1024バイトのデータEEPROMメモリが含まれています。これは、1バイトの読み取りと書き込みが可能な別個のデータスペースとしてアクセスできます。
I / Oメモリ:
すべてのI / Oと周辺機器はI / Oスペースに配置されます。 I / Oロケーションは、INおよびOUT命令によってアクセスされ、32個の汎用レジスタとI / Oスペースの間でデータを転送します。アドレス00-1FにあるI / Oレジスタは、SBIおよびCBI命令を使用して直接ビットアクセスできます。
ATmega8
前書き
これは、AVRファミリ(1996年にAtmel Corporationによって開発された)の8ビットCMOS構築マイクロコントローラであり、RSIC(縮小命令セットコンピュータ)アーキテクチャ上に構築されています。その基本的な利点は、アキュムレータが含まれておらず、操作の結果を命令で定義された任意のレジスタに格納できることです。
建築
建築
記憶
8KBのフラッシュメモリ、1KBのSRAM、512バイトのEEPROMで構成されています。 8Kフラッシュは、ブートフラッシュセクションとして使用される下部とアプリケーションフラッシュセクションとして使用される上部の2つの部分に分かれています。 SRAMには、1Kバイトと1120バイトの汎用レジスタおよびI / Oレジスタが含まれています。下位32のアドレス位置は、32の汎用8ビットレジスタに使用されます。次の64アドレスはI / Oレジスタに使用されます。すべてのレジスタはALUに直接接続されています。 EEPROMは、ユーザー定義のデータを保存するために使用されます。
入出力ポート
これは、B、C、およびDという名前の3つのI / Oポートを備えた23のI / Oラインで構成されます。ポートBは8つのI / Oラインで構成され、ポートCは7つのI / Oラインで構成され、ポートDは8つのI / Oで構成されます。行。
任意のportX(B、C、またはD)に対応するレジスタは次のとおりです。
DDRX :ポートXデータ方向レジスタ
PORTX :ポートXデータレジスタ
PINX :ポートX入力レジスタ
タイマーとカウンター
これは、同等のモードを持つ3つのタイマーで構成されています。 2つは8ビットで、3つ目は16ビットです。
発振器
内部リセットとオシレーターが組み込まれているため、外部入力が不要になります。内部RC発振器は、プログラムされた1MHz、2MHz、4MHz、または8MHzの任意の周波数で動作できる内部クロックを生成できます。また、最大周波数16MHzの外部発振器もサポートしています。
コミュニケーション
USART(Universal Synchronous and Asynchronous Receiver Transmitter)を介した同期および非同期の両方のデータ転送スキーム、つまりモデムやその他のシリアルデバイスとの通信を提供します。また、マスタースレーブ方式によるデバイス間の通信に使用されるSPI(シリアルペリフェラルインターフェイス)もサポートしています。サポートされている別のタイプの通信は、TWI(2線式インターフェース)です。共通のアース接続とともに2本のワイヤを使用することにより、任意の2つのデバイス間の整流を可能にします。
また、チップに統合されたコンパレータモジュールを備えており、外部チップを介してアナログコンパレータの2つの入力に接続された2つの電圧を比較できます。
また、6チャネルADCが含まれており、そのうち4つは10ビット精度、2つは8ビット精度です。
ステータスレジスタ :現在実行されている算術命令セットに関する情報が含まれています。
ATmegaピン図 :
ATmegaピン図
ATmega8の重要な機能の1つは、5つのピンを除いて、他のすべてのピンが2つの信号をサポートすることです。
- ピン23、24、25、26、27、28、および1はポートCに使用され、ピン9、10、14、15、16、17、18、19はポートBおよびピン2、3、4、に使用されます。 5,6,11,12はポートDに使用されます。
- ピン1はリセットピンでもあり、最小パルス長よりも長い時間低レベル信号を印加するとリセットが生成されます。
- ピン2と3は、USARTのシリアル通信にも使用されます。
- ピン4と5は外部割り込みとして使用されます。 1つはステータスレジスタの割り込みフラグビットが設定されたときにトリガーされ、もう1つは割り込み条件が優勢である限りトリガーされます。
- ピン9と10は、水晶がピン間に直接接続されている外部発振器およびタイマーカウンタ発振器として使用されます。ピン10は、水晶発振器または低周波水晶発振器に使用されます。内部校正済みRC発振器がクロックソースとして使用され、非同期タイマーが有効になっている場合、これらのピンはタイマー発振器ピンとして使用できます。
- ピン19は、SPIチャネルのマスタークロック出力、スレーブクロック入力として使用されます。
- ピン18は、マスタークロック入力、スレーブクロック出力として使用されます。
- ピン17は、SPIチャネルのマスターデータ出力、スレーブデータ入力として使用されます。スレーブによって有効にされると入力として使用され、マスターによって有効にされると双方向になります。このピンは、出力比較一致出力としても使用できます。これは、タイマー/カウンター比較一致の外部出力として機能します。
- ピン16はスレーブ選択入力として使用されます。また、PB2ピンを出力として構成することにより、タイマー/カウンター1の比較一致として使用することもできます。
- ピン15は、タイマー/カウンター比較マッチAの外部出力として使用できます。
- ピン23〜28はADCチャネルに使用されます。ピン27はシリアルインターフェイスクロックとしても使用でき、ピン28はシリアルインターフェイスデータとして使用できます。
- ピン13と12は、アナログコンパレータ入力として使用されます。
- ピン11と6は、タイマー/カウンターソースとして使用されます。
マイクロコントローラーのスリープモード
マイクロコントローラは6つのスリープモードで動作します。
- 起動維持モード: CPUの機能を停止しますが、SPI、USART、ADC、TWI、タイマー/カウンター、ウォッチドッグの動作を許可し、システムに割り込みます。これは、MCUレジスタフラグのSM0〜SM2ビットをゼロに設定することで実現されます。
- ADCノイズリダクションモード :CPUを停止しますが、ADC、外部割り込み、タイマー/カウンター2、ウォッチドッグの機能を許可します。
- パワーダウンモード :外部発振器を無効にしながら、外部割り込み、2線式シリアルインターフェース、ウォッチドッグを有効にします。生成されたすべてのクロックを停止します。
- 省電力モード :タイマー/カウンターが非同期でクロックされる場合に使用されます。 clkを除くすべてのクロックを停止しますASY。
- スタンバイモード :このモードでは、オシレータの動作が許可され、他のすべての動作が停止します。
Atmega8を含むアプリケーション
LEDの点滅
点滅するLEDの概略図
プログラムはC言語を使用して記述されており、最初に.cファイルとしてコンパイルされます。 ATMELソフトウェアツールは、このファイルをバイナリELFオブジェクトファイルに変換します。その後、再び16進ファイルに変換されます。次に、16進ファイルはAVR男プログラムを使用してマイクロコントローラーに渡されます。
フォトクレジット:
- ATmega32の40ピンDIP写真 ウィキメディア
- によるISPプログラマー回路図 今日のサーキット
- によるアーキテクチャ 今日のサーキット
- ATmegaピンダイアグラム atmega32-avr