در قسمت چهارم آموزش میکروکنترلر XMEGA به نحوه ایجاد پروژه و کامپایل و پروگرام کردن آن در AtmelStudio و بررسی دو مثال دراینخصوص پرداختیم. در این قسمت از آموزش میکروکنترلر XMEGA به بررسی مدهای ورودی و خروجی پورتها میپردازیم.
داکیومنت های موردنیاز
در این جلسه توضیح درباره رجیسترهای پورتها را باتوجهبه محتوای MANUAL ادامه میدهیم. باید توجه داشته باشید که در این آموزش به سه نوع داکیومنت نیاز داریم و باید آخرین نسخه آنها را از سایت Atmel دانلود کنیم. یکی از داکیومنتهای موردنیاز MANUALها هستند که بستگی به خانواده مورداستفاده دارند؛ مثل XMEGA A MANUAL برای سری A یا XMEGA AU MANUAL برای سری AU و همچنین، خانوادههای B،C ، D و E هم MANUALهای خاص خودشان را دارند. اما این آموزش بر مبنای سری A و AU است.
نوع دوم داکیومنتهای موردنیاز شامل دیتاشیتها (Datasheets) هستند. همانطور که در شکل پایین ملاحظه میکنید، روی صفحه دیتاشیت شمارههای متناظر با سری A3 را میتوان مشاهده کرد.
نوع سوم داکیومنتهای موردنیاز اپلیکیشن نوتها هستند؛ در هر بخش اپلیکیشن نوتهایی از طرف Atmel منتشر شده است که در صورت نیاز میتوانیم از آنها استفاده کنیم.
شاید برای شما مفید باشد: آموزش AVR از مقدماتی تا پیشرفته
دیتاشیت Manualها
بهطورکلی در MANUALها جزئیات عملکرد سختافزارها، رجیسترها و کلیه موارد لازم شبیه دیتاشیتهای AVR قرار داده شدهاند. در AVR بحث MANUAL و دیتاشیت وجود نداشت، مثلاً ATMEGA32 دارای یک دیتاشیت بود که اگر میخواستیم عملکرد رجیسترهای آن را بررسی کنیم، در آن دیتاشیت قابلدسترس بود و چنین تفکیکی در آنجا وجود نداشت. اما Atmel تفکیکی را ایجاد کرده و سختافزارها و رجیسترها را در MANUAL توضیح داده و مشخصات الکتریکی، پینها، منحنیها و… را در دیتاشیت تفکیک کرده است؛ بنابراین بسته به نیازی که داریم باید به هر کدام رجوع کنیم که در اکثر موارد، نیاز ما به MANUALها است.
در شکل زیر میتوانیم مشاهده کنیم که در دیتاشیت سری A3، پینهای متناظر با این خانواده نمایشدادهشده است. بهعنوانمثال، اگر ما بخواهیم بفهمیم که PA3 کدام پین از ATMEGA64 A3 است، باید به دیتاشیت مراجعه کنیم؛ این اطلاعات در MANUAL قابلدسترس نیست. اما اینکه تایمر کانترها به چه صورت عمل میکنند یا رجیسترها یا بیتهای آنها چه وظایفی را بر عهده دارند، در MANUAL این اطلاعات وارد شده و در دیتاشیت قابلدسترس نیست.
در انتهای دیتاشیت، یکفصل بسیار مهم وجود دارد که در دیتاشیت توضیح داده شده در ویدئو موردنظر، فصل ۳۰ هست که بسیاری از دوستان در پیداکردن اطلاعات این فصل دچار مشکل بودند. در این فصل یعنی فصل ۳۰، جداولی است که وظایف هر پین در آنها مشخص است. بهعنوانمثال، در این جدول قابلملاحظه هست که PA0 چه وظایفی را بر عهده دارد.
در اینجا سختافزارهای آنالوگ از طریق پورت A و B با بیرون ارتباط برقرار میکنند و تایمر کانترها و موارد دیگر روی پورتهای C ،D ،E و F قرار دارند.
طبق توضیحاتی که اینجا داده شده است، از نظر شرکت Atmel، خانواده A بهنوعی از ردهخارج هست و توصیه نمیشود که طراحیهای جدید با آن انجام شوند. اما ازآنجاییکه این خانواده در دسترس ما هست، مبنای آموزش را خانواده A قرار دادهایم؛ البته باید اشاره کنیم که مبنای آموزش ما هم خانواده A و هم AU است.
در XMEGA A MANUAL فصل ۱۳ مربوط به پورتها است. همچنین، در XMEGA AU MANUAL هم همین فصل است.
همانطور که اشاره شد در این جلسه قصد داریم درباره مدهای پورتها در حالت ورودی و خروجی توضیح دهیم. بهطورکلی در خانواده AVR دو مد (حالت) برای ورودی و یک مد برای خروجی وجود دارد؛ اما در XMEGA برای ورودی ۴ مد و برای خروجی ۵ مد وجود دارد که سعی میکنیم در این جلسه این موارد را بررسی کنیم.
مدهای ورودی
در ابتدا مدهای ورودی را بررسی میکنیم. یکی از مدهای ورودی شامل وضعیت high impedance (امپدانس) است که در این حالت امپدانس بسیار بزرگی در ورودی پین ظاهر میشود و شبیه به این است که پین به جایی متصل نیست. همچنین، نویز در این شرایط میتواند ورودی را به دلیل امپدانس بسیار بالا در وضعیتهای High و Low قرار بدهد.
یک حالت دیگر به نام bus-keeper وجود دارد که تا حدی جدید است. مد bus-keeper وضعیتی است که در آن، وضعیت پورت از طرف سختافزار سنجیده میشود و اگر در حالت High باشد، Pull up داخلی بهصورت خودکار فعال میشود و اگر در حالت Low باشد، Pull down داخلی فعال میشود.
اگر پورتی را در حالت bus-keeper قرار دهیم و ورودی آن را بهصورت بیرونی High قرار دهیم، اگر آن High را قطع کنیم، Pull up بهصورت خودکار فعال میشود و پورت را در همان وضعیت خود، نگه میدارد و این موضوع از اسم bus-keeper نیز مشخص است. برای درک بهتر به شکل زیر توجه کنید.
مد bus-keeper با نام bus-holder نیز شناخته میشود. در اینجا یک نکته باید ذکر شود، زمانی که ما درباره رجیسترها صحبت میکنیم، رجیسترها را 0 و 1 میکنیم. اما زمانی که درباره پینهای پورتها صحبت میکنیم، بحث High و Low کردن هست. بهعنوانمثال، اگر بیت شماره صفر از پورت A out یک شود، PA0،High خواهد شد. توجه داشته باشید که در این مطلب گاهی از عبارات High و Low و گاهی از 0 و 1 استفاده میشود که همانطور که اشاره شد 0 و 1 مربوط به زمانی است که به رجیستر مقداردهی میشود و High و Low شامل وضعیت پینهای پورت است؛ بنابراین باید مراقب بود که این دو مبحث با هم اشتباه گرفته نشوند.
در ویدئو این جلسه ۴ مد توضیح داده شده است که شامل: ۱. مدی است که نه Pull up فعال است و نه Pull down ۲. مدی است که Pull up بهصورت داخلی فعال است ۳. مدی است که Pull down بهصورت داخلی فعال است ۴. مد Pull down Pull up هوشمند (این مد با مانیتورکردن و بررسیکردن وضعیت پین اینگونه عمل میکند که اگر پین High باشد، Pull up را بهصورت خودکار فعال میکند و اگر پین Low باشد، Pull down را بهصورت خودکار فعال میکند.
مدهای خروجی
مبحث مدهای ورودیها به اتمام رسید. اکنون به بررسی مدهای خروجیها میپردازیم. همانطور که پیشتر اشاره شد، برای خروجیها ۵ مد وجود دارد. مورد اول شامل مد توتم پل است که در آن، درایوری High و Low را تأمین میکند و جریانهای سورس و سینک برای خروجی تأمین میشود.
مد بعدی Wired AND است که در این حالت همیشه نیاز به Pull up وجود دارد. شکل زیر مد Wired AND را نشان میدهد.
یکی از محاسن مد Wired AND در شرایطی که Pull up را بهصورت خارجی قرار دهیم، این است که میتوانیم سطح تغییرات پورت را از 0 تا ولتاژ دلخواه تنظیم کنیم. (در محدوده مجاز پورت)
از دیگر مدهای خروجیها میتوان به Wired OR اشاره کرد که این مد برعکس Wired AND است. برای توضیحات کامل حتماً به ویدئو مراجعه کنید.
بهطورکلی در Wired AND و Wired OR میتوانیم خروجیها را به هم متصل کنیم.
در قسمت ششم آموزش میکروکنترلر XMEGA با ادامه رجیسترهای پورت آشنا میشویم. با سیسوگ همراه باشید.
سری مقالات آموزش میکروکنترلر XMEGA توسط آقای مهندس کینژاد تهیه شده است.
سلام روزتون بخیر
من میخام نرم افزار cubemx رو دانلود کنم ولی اصلا ایمیل لینک تایید حسابم نمیاد تا دانلود شروع شه. ایمیل و جیمیل هم عوض کردم ولی اثر نداشته
از طرفی اگه از سایتای ایرانی دانلود کنم همش خطای login میاد و البته login هم نمیشه و در نهایت پروژه نمیتونم ایجاد کنم
میشه لطفا یه راهنمایی کنین؟
سلام دوست عزیز
از لینک زیر می تونید دانلود کنید.
https://sisoog.com/2019/08/19/%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%D9%86%D8%B1%D9%85%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-stm32cubemx/
مرسی از محبتت ولی امروز از همونجا دانلود کردم ولی بازم ارور login میاد و نمیتونم پروژه ایجاد کنم
واقعا بدجور خسته ام کرده
فک کنم استفاده از DNS changer میتونه کمک کنه
مثلا https://shecan.ir/
رو امتحان کنید.
مرسی از لطفت
امتحان میکنم ببینم چی میشه