در این جلسه از آموزش AVR قصد داریم برای ایجاد یک دید کلی از قسمت سختافزاری AVR توضیحاتی ارائه کنیم.
شکل زیر، اکثر امکانات سختافزاری این خانواده را نشان میدهد که در ادامه عملکرد هر واحد بیان خواهد شد.
Cpu تحت فرمان clock است که کلاک میتواند داخلی و از منابع اسیلاتورهای داخلی تأمین بشود یا از اسیلاتورهای خارجی تأمین شود.
Cpu تحت فرمان کلاک برنامه را خطبهخط از FLASH اجرا میکند. برنامهای که توسط پروگرامر بر روی حافظه فلش ذخیره شده است.
ممکن است در جریان اجرای برنامه، دیتایی ایجاد شود که در SRAM داخلی میتواند ذخیره شود.
نکته: در شمارههای خاصی از AVR امکان اتصال حافظه و SRAM خارجی وجود دارد
اطلاعاتی که لازم هست ذخیره بشود بهنحویکه با قطع پاور و تغذیه میکروکنترلر پاک نشود، میتواند در بخش EPROM یا EEPROM ذخیره شود.
تایمرها این قابلیت را دارند که شمارش خود را از طریق کلاک داخلی مستقیم یا تقسیمشدههای آن یا کلاکی که از بیرون میکروکنترلر اعمال میشود، انجام دهند.
به حالت دوم اصطلاحاً counter یا event counter گفته میشود.
شاید برای شما مفید باشد: آموزش الکترونیک
سپردن کار زمانسنجی به تایمرها حجم کارپردازشی cpu را کاهش میدهند.طور یکه شمارنده توسط خطوط برنامه و با مشخصشدن منبع کلاک راهاندازی میشود. بعد از رسیدن شمارنده به مقداری مشخص، این امکان برای cpu وجود دارد که از گذشت زمان اطلاع حاصل کند و برحسب نوع برنامه نوشته شده عملیات لازم را انجام دهد.
اگر تایمر در حال شمارش باشد، روش اولی که cpu ممکن است از گذشت زمان اطلاع پیدا کند این است که مقادیر تایمر را قرائت کند و هرزمان که مقدار موردنظر رسید، عملیاتی را انجام دهد. به این روش اصطلاحاً polling گفته میشود.
روش دوم این است که بعد از رسیدن تایمر به مقدار مشخصی، بیتی در فضای I/O (در جلسات توضیح دادیم که فضایی تحت عنوان I/O هست که ارتباط cpu و سختافزارهای جانبی را امکانپذیر میکند) برای تایمر مشخص شده است که مقدارش یک میشود.
حال ورش وقفه به این صورت است که در صورت تنظیمات خاصی که مجوز ایجاد وقفه تایمر را مشخص میکند، بهمحض یک شدن آن بیت روند اجرای برنامه در حافظه FLASH متوقف میشود و cpu برنامه را بهجای اجرای خطوط بعدی در FLASH از یک آدرس مشخصی استفاده میکند که در آن آدرس مشخص، برنامهای که شما نوشتهاید موجود است.
این موضوع در جلسات بعدی مفصل توضیح داده میشود.
این روش مقابل روش Polling است. در روش polling دائماً cpu به تغییرات مدنظرش مراجعه میکند و اشکال روش polling این است که cpu را اشغال میکند.
این 3 روش USART/TWI/SPI پروتکلهای ارتباط سریال هستند. بسته به نوع وسایل جانبی مثل سنسورها، چیپها و… از یکی از این 3 پروتکل برای ارتباط با AVR استفاده میشود.
مبدل آنالوگ به دیجیتال ADC در خانواده AVR دقت 10 بیتی دارد. سیگنالهای آنالوگ از خارج از طریق واحد ADC به AVR فرستاد میشود.
بلوک AC مقایسهکننده آنالوگ هست که مقدار ورودی آنالوگ را با مقدار مشخصی مقایسه میکند و CPU میتواند از وضعیت مقایسه اطلاع پیدا کند.
این واحد از لحاظ سرعت از واحد ADC سریعتر است و میتواند عملیات بیشتری را انجام دهد.
به معنای ورودی خروجی یا همان I/O است
از این واحد بهمنظور خطایابی، Debugging و برای ارتباط پروگرامر و اطلاع از وضعیت سختافزاری میکروکنترلر است.
این واحد بهمنظور تشخیص صحت عملکردی CPU امکان فعالسازی دارد به این صورت که در فواصل زمانی مشخصی اگر توسط CPU تریگر به Watchdog Timmer ارسال شود Watchdog متوجه میشود که CPU به شکل صحیح در حال انجاموظیفه خودش است.
اما اگر این اتفاق نیفتد، Watchdog یک reset ایجاد میکند.
اگر نویز به حدی باشد که Watchdog از کار بیفتد، این واحد دیگر مفید و کارآمد نخواهد بود.
امکانات ave در برابر هم نوع های هشت بیتی دیگه واقعا عالیه، مشکل کار avr تو سری های مگا ۸ و مگا ۱۶ بود که هر دو از یه معماری استفاده میکردند که به نویز بسیار حساس بودن، در مقابل سری مگا ۸۸ و ۱۶۸ و ۳۲۸ اومدن که جایگزین بسیار خوب اونا اما گرونتر بودن، مخصوصا در جریان کشی ۱ میلی آمپری و کم نویز پذیر بودن. اما باز مشکل نویز پذیری باقی مونده. اگه میتونستم یه فیلم میزاشتم یه بورد با مگا هشت و یه بورد با مگا ۸۸, عملا و علنا با یک برنامه مگا ۸ کارایی خودشو از دست میده اما مگا ۸۸ ادامه میده، هر چند اختلال پیش میاد اما باز مگا ۸۸ بهتر عمل میکنه، در ضمن گفته بشه همه کارهای رفع نویز حی در پایه ریست انجام شده.
نویسنده شو !
سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.