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