آموزش کاربردی AVR-بخش سوم

blog
۱۴۰۱-۱۱-۲۵
4 دقیقه

آموزش سخت افزار میکروکنترلر Pinout و کار با رجیسترهای AVR

در قسمت قبلی آموزش AVR با آموزش معماری داخلی AVR در خدمت شما عزیزان بودیم. در این جلسه قصد داریم بیشتر به سخت‌افزار میکروکنترلر، Pinout و کار با رجیسترهای آن بپردازیم و هم چنین اولین و ساده‌ترین پروژه یعنی روشن‌کردن LED با میکروکنترلر AVR را بررسی کنیم.

ما در این سری آموزش‌هایی AVR قصد داریم، با میکروکنترلرهای سری ATMEGA16/32 کارکنیم که Pinout آن به‌صورت زیر است:

پایه های atmega 16 یا atmega 32 اعداد ۱۶ و ۳۲ بیانگر ظرفیت فلش میکرو هستند، به این معنا که در ATMEGA16 ظرفیت فلش 16KB است. اما در برخی از میکروها همه عدد نوشته شده بیانگر ظرفیت فلش نیست. به طور مثال در ATMEGA644 تنها دو رقم اول ظرفیت فلش را نشان می‌دهند.

حداقل اتصالات لازم برای راه‌اندازی ATMEGA32

طبق دیتاشیت میکرو و تصویر Pinout آن که در شکل1 می‌بینید، برای راه‌اندازی ATMEGA32 باید پایه‌های شماره 11 و 31 به زمین متصل شوند. هم چنین پایه‌های تغذیه VCC و AVCC که پایه‌های شماره 10 و 30 هستند، باید به +5V متصل شوند. تغذیه AVCC برای پایه‌های مربوط به PORTA (پایه‌های 33 تا 40) که ورودی‌های ADC هستند، به +5V متصل می‌شود.

 نکته ۱: حتی اگر از قسمت آنالوگ استفاده نمی‌شود، باید حتماً تغذیه AVCC وصل شود. 

برای تأمین نوسان می‌توان از کریستال داخلی یا خارجی استفاده کرد. به‌صورت پیش‌فرض کلاک ATMEGA32 بر روی 1MHz داخلی تنظیم شده است.

 نکته ۲:برای کاهش نویز، تغذیه را از طریق فیلتر پایین گذر AC به پایه مربوطه وصل کنید. 

پایه‌های پروگرام کردن میکرو می‌تواند به‌صورت parallel باشند، یعنی آی سی روی پروگرامر قرار گرفته باشد یا می‌تواند به‌صورت سریال پروگرام شود. هر دو روش اتصالات خاص خود را دارند که در قسمت‌های بعد به آن خواهیم پرداخت.

فعلاً فرض بر این است که میکرو به‌صورت اصولی پروگرام شود.

روشن‌کردن LED با کد ساده

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

ولتاژ ورودی و خروجی atmega 32/16

در شکل بالا LED به پایه PB0 در پورت B متصل است. پس کدنویسی ما بر روی این پایه انجام خواهد شد. پورت‌های میکرو که در شکل ۱ می‌بینید، همگی ۸ بیتی هستند.

همان‌طور که در جلسات قبل گفته شد، ارتباط با سخت‌افزار و CPU از طریق خواندن و نوشتن بر روی آدرس‌های مشخصی میسر می‌شود که در شکل زیر می‌بینید.

۳ بایت مختلف در شکل زیر هستند که برای ارتباط با PORTB که از پایه‌های 1تا 8 میکرو هستند استفاده می‌شوند.

آموزش کاربردی AVR-بخش سوم

در جلسات قبل گفتیم که نوشتن بر روی این رجیسترها بر روی سخت‌افزار تأثیر می‌گذارد.

 نکته ۳: تغییردادن آدرس رجیسترها امکان‌پذیر نیست. 

رجیستر DDRXX

اگر بخواهیم از پورت‌های ۸ بیتی مقداری خوانده شود باید آن پورت مدنظر خروجی تعریف شود و هم چنین اگر بخواهید بر روی یک پورت مقداری را بنویسید باید پورت را ورودی تعریف کنید. انجام این کار توسط DDRX امکان‌پذیر است.

به طور پیش‌فرض تمامی پورت‌ها در وضعیت in یعنی ورودی تعریف شده‌اند و اگر بخواهید پورتی را خروجی تعریف کنید به‌راحتی با اجرای خطوطی از کد پورت مدنظر شما out تعریف خواهد شد.

گفتیم که رجیسترها ۸ بیتی هستند پس اگر در کم‌ارزش‌ترین بیت DDRX مقدار 1 نوشته شود بیت متناظر با DDRX در پورتX خروجی تعریف می‌شود.

با یک مثال ساده این موضوع رو براتون توضیح میدم. در شکل ۲ کدنویسی بر روی پایه‌ی PB0 انجام می‌شود، پس برای روشن‌کردن LED این بیت PB0 از پورت B باید خروجی تعریف شود. کافی است شما در کم‌ارزش‌ترین بیت در رجیستر DDRB مقدار 1 را بنویسید.

و اگر در PB0 مقدار 0 نوشته شود، بیت، ورودی تعریف می‌شود. پس جهت پورت‌ها به لحاظ ورودی یا خروجی بودن از طریق آدرس ۳۷ هگزادسیمال در SRAM مشخص می‌شود.

رجیستر PORTX

LED در شکل 2 با High شدن پورت روشن می‌شود. یعنی توسط خطوط برنامه باید PORTB=1 شود تا LED روشن شود.

اگر PORTB=0 تعریف شود، پین به‌صورت Low ظاهر خواهد شد.

پس یک تناظر یک‌به‌یک به لحاظ وضعیت High یا Low بودن با پین‌های واقعی وجود دارد.

رجیستر PINX

CPU از طریق PINB از وضعیت فیزیکی پورت اطلاع پیدا می‌کند که آیا پورت High یا Low است؟

 نکته ۴: اگر در DDRX پینی ورودی تعریف شود (مقدار ۰ در آن نوشته شود)، و رجیستر PORTX=1 تعریف شود، به‌صورت داخلی در آن پورت یک مقاومت Pull Up فعال می‎‌شود. 

در AVRهای عادی امکان فعال‌کردن Pull Down وجود ندارد.

کامپایلرها و زبان‌های برنامه‌نویسی AVR

زبان‌های متفاوتی برای برنامه‌نویسی میکروکنترلر AVR موجود است مثل : Basic , C , Pascal , …. دو مورد اول رایج‌تر است.

کامپایلر Basic، بسکام است و کامپایلرهای زبان C، کدویژن(Codevision) ، inAVR ،AVRGCC و IAR است. قوی‌ترین و حرفه‌ای‌ترین ابزار IAR است. مثال‌های ذکر شده در قسمت‌های بعد به دو زبان Basic و C ارائه خواهند شد.

در قسمت‌های بعد بیشتر وارد محیط برنامه‌نویسی خواهیم شد.

اطلاعات
0
0
لینک و اشتراک
profile

zahra mahmoudpour

متخصص الکترونیک

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد. جستجو در آیسی
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند.
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد.
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند.
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

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

دیدگاه ها

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله