الکترونیک

معرفی تمام پایه‌های میکروکنترلر ATMega32

معرفی تمام پایه‌های میکروکنترلر ATMega32

اتمگا 32 یکی از محبوب‌ترین میکروکنترلرهای ساخته شده توسط شرکت Atmel است. این ریزکنترلگر با میکروکنترلر ATMega328P شباهت‌هایی دارد. برای مثال، مقدار حافظه میکروکنترلر ATMega32 کمتر از حافظه ATMega328P است ولی تعداد پین‌های آن بیشتر می‌باشد.

هر پین GPIO نیز مخصوص یکی از دو کارکردهای مدنظر کاربران خواهد بود تا او این امکان را داشته باشد از پروتکل‌های مختلف کنترلر به صورت لحظه‌ای بهره ببرد و برنامه‌نویسان بتوانند کاری کنند که پین‌ها درون خودِ میکروکنترلر با یکدیگر ارتباط برقرار نمایند. ATMega32 از تکنولوژی 8 بیتی CMOS مبتنی بر سازه RSIC بهره می‌برد بنابراین عملکرد قدرتی آن در زمان برنامه‌نویسی بسیار بهینه خواهد بود. با این توضیحات، اینک می‌خواهیم شما را به صورت مفصل با این میکروکنترلر فوق‌العاده کاربردی آشنا کنیم؛ پس با بلاگ بهنام رباتیک همراه باشید.

فهرست مطالب

پین‌های ریزکنترلگر ATMega32

ATMega32 حداکثر پین‌های مورد نیاز یک میکروکنترلر را داراست. نکته جالب اینکه این پین‌ها هر کدام برای پروتکل‌ها و کاربردهای خاصی هستند که برنامه‌نویسان می‌توانند از آنها استفاده کنند. همه این پروتکل‌ها و کاربردهای اتمگا 32 به صورت تصویری در ادامه شرح داده شده‌اند.

پین‌های میکروکنترلر ATMega32 پکیج PDIP
پین‌های میکروکنترلر ATMega32 پکیج PDIP

در ادامه نیز دیاگرام پین‌های میکروکنترلر ATMega32 با پکیج TQFP و MLF را مشاهده می‌کنید.

پین‌های میکروکنترلر ATMega32 پکیج MLF و TQFP
پین‌های میکروکنترلر ATMega32 پکیج MLF و TQFP

جزئیات مربوط به پین‌های ریزکنترلگر ATMega32

پین‌های دیجیتالی ورودی و خروجی

پین‌های ورودی و خروجی ابتدایی‌ترین امکاناتی هستند که هر میکروکنترلر باید داشته باشد تا کار کند. تعداد پین‌های اتمگا 32 در مجموع به 32 عدد می‌رسد. این قطعه CMOS می‌تواند با هر نوع پین I/O مورد استفاده واقع شود.

ولتاژ این پین‌ها از ولتاژ وارد شده فراتر نخواهد رفت و ولتاژ ورودی نیز نباید بیشتر توان باشد. همه پین‌های I/O مستقیماً از پورت‌های A، B، C و D وارد می‌شوند و همه آنها به مقاومت درونی نیز مجهز هستند. تمامی پین‌های I/O اتمگا 32 در ادامه نشان داده شده‌اند:

  • PA0 – GPIO40
  • PA1 – GPIO39
  • PA2 – GPIO38
  • PA3 – GPIO37
  • PA4 – GPIO36
  • PA5 – GPIO35
  • PA6 – GPIO34
  • PA7 – GPIO33
  • PB0 – GPIO0
  • PB1 – GPIO1
  • PB2 – GPIO2
  • PB3 – GPIO3
  • PB4 – GPIO4
  • PB5 – GPIO5
  • PB6 – GPIO6
  • PB7 – GPIO7
  • PC0 – GPIO22
  • PC1 – GPIO23
  • PC2 – GPIO24
  • PC3 – GPIO25
  • PC4 – GPIO26
  • PC5 – GPIO27
  • PC6 – GPIO28
  • PC7 – GPIO29
  • PD0 – GPIO14
  • PD1 – GPIO15
  • PD2 – GPIO16
  • PD3 – GPIO17
  • PD4 – GPIO18
  • PD5 – GPIO19
  • PD6 – GPIO20
  • PD7 – GPIO21

پین‌های تداخلی (Interrupt Pins)

پین‌های تداخلی از جمله پین‌های مورد نیاز هر مدار هستند و با توجه به قوانین فیزیک، معمولاً به تعداد آنها افزوده می‌شود. هدف اصلی از به کارگیری چنین پین‌هایی، متمرکز کردن پردازنده مرکزی در زمان نیاز به دستگاه‌های خارجی می‌باشد. در ادامه میکروکنترلر به نوعی پالس اکسترنال در پین‌های بخصوص نیاز خواهد داشت تا CPU بتواند برنامه‌نویسی‌های انجام شده را با قرار دادن دستورات در کنار یکدیگر صورت دهد. در ریزکنترلگر ATMega32 نیز تعداد پین‌های تداخلی به سه عدد می‌رسد. امکان استفاده از همه این پین‌ها بدون تأثیرگذاری روی یکدیگر وجود دارد. این پین‌ها عبارتند از:

  • INT0 – GPIO16
  • INT1 – GPIO17
  • INT2 – GPIO3

پورت‌های ارتباط سریال ریزکنترلگر ATMega32

سریال نامتقارن یا غیر همزمان (Asynchronous Serial)

اتمگا 32 از چندین پروتکل ارتباطی پشتیبانی می‌کند که سریال نامتقارن یکی از آنهاست. پروتکل UART به خاطر سادگی و وابسته بودنش به برنامه‌نویسی، در بسیاری از پروژه‌ها کاربرد دارد و مورد علاقه توسعه‌دهندگان است. این پروتکل با دو پین (یکی برای ارسال داده و دیگری برای دریافت داده) در ارتباط است. اینک در ATMega32 پین‌های سریال نامتقارن قرار گرفته عبارتند از:

  • RXD – GPIO14
  • TXD – GPIO15

سریال متقارن یا همزمان (Synchronous Serial)

سریال‌های متقارن و نامتقارن تقریباً شبیه به هم هستند ولی در دستگاه‌های دارای سریال نامتقارن، از برنامه نوشته شده داخلی استفاده می‌شود حال آنکه در دستگاه‌های دارای سریال متقارن، وجود پین‌های ورودی و خروجی برای همگام‌سازی داده‌های میان دو وسیله امری ضروری خواهد بود. در ریزکنترلگر ATMega32 یک پین برای سریال متقارن وجود دارد:

  • XCK – GPIO1

پروتکل SPI

پروتکل SPI نیز به خاطر دارا بودن قابلیت مدیریت کردن دستگاه‌های مختلف به صورت همزمان، از محبوبیت زیادی برخوردارست. این پروتکل از چهار سیم بهره می‌برد؛ دو سیم برای داده و یک سیم برای زمان‌سنجی. در این میان، سیم چهارم را می‌توان در شرایطی به کار برد که چندین دستگاه وجود دارد.

زمانی که چندین دستگاه باید با همدیگر و به وسیله ریزکنترلگر ATMega32 در ارتباط باشند، تنها پین چهارم (SS) اضافه می‌شود وگرنه تعداد پین‌های زمان‌سنجی و داده کافی خواهد بود. اتمگا 32 دارای چهار پین برای پروتکل SPI است ولی اگر قرار بود چندین دستگاه کنترل شود، پین Select Slave را می‌توان در زمان برنامه‌نویسی ایجاد کرد:

  • SS’ – GPIO5
  • MOSI – GPIO6
  • MISO – GPIO7
  • SCK – GPIO8

پروتکل I2C

I2C هم نوعی سریال ارتباطی است ولی معمولاً در دستگاه‌هایی وجود دارد که در بیشتر مواقع ارتباطات به صورت تک مسیره هستند. این پروتکل در اکثر سنسورها، LCDها و موتورها کاربرد دارد. پین‌های I2C از یک سیم برای داده و از یک سیم برای زمان‌سنجی پالس استفاده می‌کنند. در ریزکنترلگر ATMega32 پین‌های I2C موارد زیر را شامل می‌شوند:

  • SCL – GPIO22
  • SDA – GPIO23

کانال آنالوگ به دیجیتال

در مجموع هشت کانال آنالوگ به دیجیتال وجود دارد که می‌توانند به عنوان مبدل ADC به کار بروند. این کانال‌ها از مبدل 10 بیتی ADC بهره می‌برند که می‌توانند در آنِ واحد توسط چندین کانال استفاده شوند. این کانال ها تنها در قسمت A هستند و لیست آنها را در ادامه می‌بینید:

  • ADC0 – GPIO40
  • ADC1 – GPIO39
  • ADC2 – GPIO38
  • ADC3 – GPIO37
  • ADC4 – GPIO36
  • ADC5 – GPIO35
  • ADC6 – GPIO34
  • ADC7 – GPIO33

پین‌های ماژول تایمر

در میکروکنترلر ATMega32 مجموعاً سه تایمر وجود دارد. تایمرهای اول و دوم 8 بیتی و تایمر سوم 16 بیتی است. Timer0 و Timer1 تنها با پالس خارجی می‌توانند کار کنند. ضمن اینکه Timer1 فقط در خودِ میکروکنترلر فعالیت خواهد داشت. تمامی این تایمرها می‌توانند از نوسان‌ساز داخلی و خارجی بهره ببرند ولی امکان استفاده از نوسان‌ساز مجزا را نیز دارند. لازم به ذکر است که باید نوسان‌ساز مجزا را از طریق پین‌های به خصوص ایجاد کرد. پین‌های ماژول تایمر و نوسان‌ساز اتمگا 32 عبارتند از:

  • T0 – GPIO1
  • T1 – GPIO2
  • TOSC1 – GPIO28
  • TOSC2 – GPIO29

پین‌های مقایسه، دریافت و PWM

می‌توان بعضی از پین‌ها در ATMega32 را به کار برد تا سیگنال خروجی دلخواه را اعمال کرد. این پین‌ها سیگنال ورودی را دریافت و سپس آن را با سیگنال ایجاد شده مقایسه می‌کنند و در ادامه سیگنالی را به وجود می‌آورند که با آنها همخوانی داشته باشد. این پین‌ها که در ادامه ذکر شده‌اند، بیشتر برای مصارف PWM استفاده می‌شوند.

  • OC0 – GPIO4
  • OC1B – GPIO18
  • OC1A – GPIO19
  • OC2 – GPIO21

پین‌های ICP

پین‌های PWM صرفاً برای خروجی هستند ولی می‌توان پین‌هایی با عنوان ICP را یافت که برای ورودی PWM به کار می‌روند. با این پین‌ها امکان دریافت ورودی خارجی وجود دارد. از جمله مهمترین کاربردهای پین‌های ICP می‌توانیم به محاسبه فرکانس و چرخه وظیفه PWM اشاره کنیم. پین ICP اتمگا 32 عبارتست از:

  • ICP1 – GPIO20

ICP1 از پین Timer1 که یک تایمر 8 بیتی است، استفاده می‌کند.

ریزکنترلگر ATMega32 مقایسه‌گر داخلی دارد که با استفاده از آن می‌توان سیگنال‌های آنالوگ ورودی را مقایسه کرد. این میکروکنترلر مجهز به دو پین مقایسه‌گر است؛ یکی برای سیگنال غیر معکوس و دیگری برای سیگنال معکوس. مقایسه‌گرهای داخلی می‌توانند از سیگنال آنالوگ مقایسه شده بهره ببرند. این پین‌ها را در ادامه می‌بینید:

  • AN0 (غیر معکوس) – GPIO3
  • AN1 (معکوس) – GPIO4

پین‌های برنامه‌نویسی JTAG

پین‌های JTAG توسط شرکت Atmel معرفی شدند تا به وسیله آنها میکروکنترلرها تست و عیب‌یابی شوند. میکروکنترلر ATMega32 نیز به پین‌های ارتباطی JTAG مجهز شده تا با آنها هم اشکالات پیدا شوند و هم برنامه‌نویسی آسان‌تر گردد. تمامی پین‌های JTAG در ادامه لیست شده‌اند:

  • TDI – GPIO27
  • TDO – GPIO26
  • TMS – GPIO25
  • TCK – GPIO24

پین‌های پاور میکروکنترلر ATMega32

پین AREF

مبدل ADC اتمگا 32 از منبع تغذیه میکروکنترلرها استفاده می‌کند تا سطح سیگنال‌های آنالوگ ورودی را اندازه‌گیری کند. این کار برخی اوقات داده‌های غیرمنتظره‌ای می‌دهد. به هر ترتیب، حداکثر مقدار سیگنال آنالوگ در پین مرجع به عنوان ولتاژ ارائه می‌شود. پین AREF اتمگا 32 عبارتست از:

  • AREF – Pin32

پین AVCC

مبدل آنالوگ به دیجیتال ATMega32 به ولتاژ ورودی اضافه نیاز خواهد داشت تا فعال شود و کار کند. پین آنالوگ پاور میکروکنترلر ATMega32 مورد زیر می‌باشد:

  • AVCC – GPIO30

پین پاور ورودی

هر دستگاهی برای اینکه بتواند کار کند به انرژی نیاز دارد. اینک میکروکنترلر ATMega32 هم به سه پین پاور مجهز شده است که یکی برای پاور ورودی و دو پین دیگر برای اتصال به زمین خواهند بود. این پین‌ها عبارتند از:

  • VCC – GPIO10
  • GND – GPIO11
  • GND – GPIO31

پین نوسان‌ساز

اتمگا 32 سرعت داخلی 8 مگاهرتز دارد که می‌توان آن را با استفاده از پین‌های زمان‌سنجی اکسترنال تا 16 مگاهرتز افزایش داد. این پین‌ها عبارتند از:

  • XTAL2 – GPIO12
  • XTAL1 – GPIO13

پین ریست

ریزکنترگر ATMega32 یک پین اکسترنال ریست دارد تا کاربران بتوانند با دستگاه‌ها یا دکمه‌های دیگر آن را دوباره راه‌اندازی کنند. پین ریست در اتمگا 32 شامل مورد زیر می‌شود:

  • RESET’ – GPIO9

میکروکنترلرهای جایگزین و آلترناتیو ATMega32

دیاگرام بلوکی میکروکنترلر ATMega32

دیاگرام بلوکی ریزکنترلگر اتمگا 32 نگاهی کلی به همه پورت‌های GPIO، ارتباطی و پین‌های تداخلی دارد. این تصویر همچنین، رابط داده باس و آدرس به همراه اتصالات داخلی را نیز نشان می‌دهد.

دیاگرام بلوکی میکروکنترلر ATMega32
دیاگرام بلوکی میکروکنترلر ATMega32

ویژگی‌ها و مشخصات فنی میکروکنترلر ATMega32

سازه پردازنده مرکزی

8 بیتی RISC

فرکانس پردازنده مرکزی

16 میلیون فعالیت بر ثانیه

رنج ولتاژ کاری

4.5 تا 5.5 ولت

تعداد پورت‌های GPIO

32 پین I/O

تعداد پین‌های تداخلی

3 پین

تعداد پین‌های تایمر

3 پین (2 پین 8 بیتی و 1 پین 16 بیتی)

تعداد پین‌های PWM

4 پین

تعداد پین‌های ICP

1 پین

تعداد پین‌های سریال نامتقارن

2 پین

تعداد پین‌های سریال متقارن

1 پین

تعداد پین‌های کانال I2C

2 پین

تعداد پین‌های کانال SPI

4 پین

پین برنامه‌نویسی JTAG

دارد

امکان راه‌اندازی از طریق بوت

دارد

پین زمان‌سنجی

دارد

پین LAN

ندارد

پین CAN

ندارد

مبدل ADC

8 کاناله 10 بیتی

حافظه SRAM

32 کیلوبیت

حافظه برنامه‌نویسی (FLASH)

1024 کیلوبیت

حافظه EEPROM

512 بایت

تعداد پین‌های مقایسه‌گر

1 پین

پکیج‌ها

·      پکیج PDIP (با 40 پین)

·      پکیج TQFP (با 44 پین)

·      پکیج MLF (با 44 پین)

روش برنامه‌نویسی میکروکنترلر ATMega32

پیش از اینکه شروع به برنامه‌نویسی اتمگا 32 کنید، باید پین‌های GPIO آن را به خوبی بشناسید. به همین خاطر بود که زودتر از هر کاری و در ابتدای مطلب، در مورد آنها توضیح دادیم. پس از آشنایی با این پین‌ها، مراحل زیر را طی کنید:

  1. ابتدا در رایانه خود نرم‌افزار برنامه‌نویسی که کامپایلر داخلی دارد را برای میکروکنترلر انتخاب شده نصب کنید.
  2. پروگرامری که با استفاده از آن کدها را در ATMega32 وارد خواهید کرد را انتخاب کنید.
  3. اولین برنامه‌نویسی ساده خود نظیر چشمک زدن LED را انجام داده و کدهای مربوطه را آپلود کنید.
  4. بعد از کدنویسی و ساخت مدار رابط با LED، نیروی لازم را به ریزکنترلگر ATMega32 وارد کنید.
  5. در نهایت خواهید دید که چراغ LED طبق برنامه‌ای که شما نوشته‌اید چشمک خواهد زد.

کاربردهای میکروکنترلر ATMega32

  • مناسب برای پردازش سیگنال‌های دیجیتالی
  • امکان استفاده به عنوان رابط در سیستم‌های صنعتی
  • مناسب برای ایجاد رابط بین دو دستگاه

دیاگرام دو بعدی از میکروکنترلر ATMega32

مدل دو بعدی میکروکنترلر ATMega32
مدل دو بعدی میکروکنترلر ATMega32

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *