- ابزارآلات و آهنربا
-
ابزارآلات
- ابزار اندازه گیری (مولتیمتر، کولیس و . . .)
- ابزار سوراخکاری (مته، سه نظام، چهار نظام، پنج نظام و . . .)
- ابزار و تجهیزات کار (پیچ گوشتی، انبردست، سیمچین، پنس و . . .)
- برد بورد، فیبر خام و سوراخدار (فیبر مدار چاپی و PCB)
- پیچ و اسپیسر (پیچ و مهره رباتیک و اسپیسر پلاستیکی و فلزی)
- سیم و کابل (سیم افشان، فلت، باندی، کابل شارژ، پرینتر، و . . .)
- لحیمکاری (هویه، نوک هویه، پایه هویه، سیم لحیم، روغن لحیم و . . . )
- منبع تغذیه، باتری و جاباتری (باتری قلمی، نیم قلمی، کتابی و . . . )
-
ابزارآلات
- برد هوشمند
- پرینتر سه بعدی
- رباتیک و پروازی
- ماژول
- قطعات الکترونیک
- کیت الکترونیکی و انواع جعبه
- موتور
- اصناف مختلف
معرفی تمام پایههای میکروکنترلر ATMega32
اتمگا 32 یکی از محبوبترین میکروکنترلرهای ساخته شده توسط شرکت Atmel است. این ریزکنترلگر با میکروکنترلر ATMega328P شباهتهایی دارد. برای مثال، مقدار حافظه میکروکنترلر ATMega32 کمتر از حافظه ATMega328P است ولی تعداد پینهای آن بیشتر میباشد.
هر پین GPIO نیز مخصوص یکی از دو کارکردهای مدنظر کاربران خواهد بود تا او این امکان را داشته باشد از پروتکلهای مختلف کنترلر به صورت لحظهای بهره ببرد و برنامهنویسان بتوانند کاری کنند که پینها درون خودِ میکروکنترلر با یکدیگر ارتباط برقرار نمایند. ATMega32 از تکنولوژی 8 بیتی CMOS مبتنی بر سازه RSIC بهره میبرد بنابراین عملکرد قدرتی آن در زمان برنامهنویسی بسیار بهینه خواهد بود. با این توضیحات، اینک میخواهیم شما را به صورت مفصل با این میکروکنترلر فوقالعاده کاربردی آشنا کنیم؛ پس با بلاگ بهنام رباتیک همراه باشید.
فهرست مطالب
پینهای ریزکنترلگر ATMega32
ATMega32 حداکثر پینهای مورد نیاز یک میکروکنترلر را داراست. نکته جالب اینکه این پینها هر کدام برای پروتکلها و کاربردهای خاصی هستند که برنامهنویسان میتوانند از آنها استفاده کنند. همه این پروتکلها و کاربردهای اتمگا 32 به صورت تصویری در ادامه شرح داده شدهاند.
در ادامه نیز دیاگرام پینهای میکروکنترلر ATMega32 با پکیج TQFP و MLF را مشاهده میکنید.
جزئیات مربوط به پینهای ریزکنترلگر 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
سازه پردازنده مرکزی |
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 آن را به خوبی بشناسید. به همین خاطر بود که زودتر از هر کاری و در ابتدای مطلب، در مورد آنها توضیح دادیم. پس از آشنایی با این پینها، مراحل زیر را طی کنید:
- ابتدا در رایانه خود نرمافزار برنامهنویسی که کامپایلر داخلی دارد را برای میکروکنترلر انتخاب شده نصب کنید.
- پروگرامری که با استفاده از آن کدها را در ATMega32 وارد خواهید کرد را انتخاب کنید.
- اولین برنامهنویسی ساده خود نظیر چشمک زدن LED را انجام داده و کدهای مربوطه را آپلود کنید.
- بعد از کدنویسی و ساخت مدار رابط با LED، نیروی لازم را به ریزکنترلگر ATMega32 وارد کنید.
- در نهایت خواهید دید که چراغ LED طبق برنامهای که شما نوشتهاید چشمک خواهد زد.
کاربردهای میکروکنترلر ATMega32
- مناسب برای پردازش سیگنالهای دیجیتالی
- امکان استفاده به عنوان رابط در سیستمهای صنعتی
- مناسب برای ایجاد رابط بین دو دستگاه