AVR
معماری AVRثباتهای AVR
میکروکنترلرهای 8 بیتی AVR 32 ثبات 8 بیتی همه منظوره دارند یعنی r0 تا r31 .
سه ثبات آدرس شانزده بیتی با نام مستعار X و Y و Z که هر کدام از این سه ثبات دو ثبات از همان 32 ثبات 8 بیتی هستند یعنی r27:r26), Y(r29:r28), Z(r31:r30)) .
یک ثبات 16 بیتی به منظور اشاره گر پشته که در آدرسهای ورودی/خروجی:
0x3e(SPH) و 0x3d(SPL) قرارگرفته اند.همچنین این آدرسها در حافظه داده با آدرسهای 0x5e و 0x5d هستند
یک ثبات 8بیتی به منظور سنجش وضعیت یا همان ثبات پرچم با نام SREG .

ITHSVNZC
تکنولوزی AVR برای اولین بار در سال 1997 توسط شرکت Atmel ارائه شد و بعد از آن جزء تولیدات محبوب این شرکت قرار گرفت.مزیت اصلی این تکنولوژی داشتن هسته RISC همراه با تعداد زیادی ثبات کاری یا Working Register است.این ثباتها به ALU مرتبط هستند و توسط آنها می توان تعداد زیادی ریز دستورالعمل را در مدت زمان یک پالس ساعت اجرا کرد به عبارتی دیگر اجرای هر دستورالعمل یک پالس ساعت لازم دارد در حالیکه اجرای این ریز دستورالعملها در میکروکنترلرهای دیگر در تعداد زیادتری از پالس ساعت اجرا می شوند بنابراین AVR ها می توانند بسیار سریعتر عمل کنند و همچنین کدهای با حجم بالایی را اجرا کنند.به عنوان مثال کارایی یک AVR که با سرعت4MHz کار می کند با کارایی میکروی PIC با سرعت 16MHz و همچنین میکروی 8051 با سرعت 48MHz برابر است!
معماری AVRثباتهای AVR
میکروکنترلرهای 8 بیتی AVR 32 ثبات 8 بیتی همه منظوره دارند یعنی r0 تا r31 .
سه ثبات آدرس شانزده بیتی با نام مستعار X و Y و Z که هر کدام از این سه ثبات دو ثبات از همان 32 ثبات 8 بیتی هستند یعنی r27:r26), Y(r29:r28), Z(r31:r30)) .
یک ثبات 16 بیتی به منظور اشاره گر پشته که در آدرسهای ورودی/خروجی:
0x3e(SPH) و 0x3d(SPL) قرارگرفته اند.همچنین این آدرسها در حافظه داده با آدرسهای 0x5e و 0x5d هستند
یک ثبات 8بیتی به منظور سنجش وضعیت یا همان ثبات پرچم با نام SREG .

ITHSVNZC
I : فعال ساز و غیرفعال ساز عمومی وقفه SREG7 یا Global Interrupt Enable/Disable Flag
T: بیت انتقالی مورد استفاده دستورالعملهای BLD وBST با نام SREG6
H: Half Carry Flag, SREG5
S : بیت علامت یا Signed tests Instruction Set, SREG4
V : سرریزنما برای مکمل دو یا Two's Complement Overflow Indicator, SREG3
N : بیت منفی یا Negative Flag, SREG2
Z : بیت صفر یا Zero Flag, SREG1
C : Carry Flag, SREG0

32 آدرس اول حافظه یعنی (0x0000 تا 0x001f ) متعلق به ثباتهای r0 تا r31 هستند.البته در برخی MCU (MicroController Unit) ها برای ثباتها از فضای حافظه ی داده استفاده می شود.
آدرسهای ( 0x0020 تا 0x005f ) از حافظه ی داده در دسترس آدرسهای ورودی/خروجی (0x00 تا 0x3f ) است.
از آدرس 0x0060 حافظه ی داده به بعد فقط شامل حافظه استاتیک است یعنی SRAM .


حافظه داده و ثباتهای AVR
دو ثبات برای واحد ریاضی منطقی ALU
تعداد زیادی از دستورالعملهای ALU شامل دو ثبات هستند یکی مقصد یا Destination(Rd) و یکی منبع یا Source(Rr) که نحوه کدگشایی دستورالعمل را در زیر می بینید:
بیتهایی که در آن حرف i قرار گرفته دستورالعملند و حرف d بیتهای مقصد هستند و حرف r بیتهای منبع هستند ثبات منبع از بهم پیوستن بیتهای (r9 : r3 : r2 : r1 : r0) و ثبات مقصد از بهم پیوستن بیتهای (d8 : d7 : d6 : d5 : d4)مشخص می شوند همچنین بیتهای باقی مانده
(i15 : i14 : i13 : i12 : i11 : i10) خود دستورالعمل را مشخص می کنند.
به عنوان مثال حاصل جمع r17 و r2 که همان Add r17 , r2 است به صورت زیر کدگشایی یا Encode می شود:
0000110100010010
که در این صورت خروجی AVR-OBJDUMP از این قرار استHex :
0: 12 0d add r17, r2
توجه داشته باشید که یک کلمه ی 16 بیتی از هشت بیت کم ارزش آن در حافظه ذخیره می شود.
Immediate ALU Encoding
کدگشایی به روش فوری به شکل قالب زیر صورت می گیرد:
ثباتهای R16 تا R31 توسط چهار بیت نوع d قابل دسترسی هستند.بیتهای نوع I شامل Opcode هستند و هشت بیت نوع k شامل داده های فوری می شوند که از این هشت بیت ، چهار بیت با ارزش بالا یا High nybble آن عبارت است از (k12 , k11 , k10 , k9) و همچنین چهار بیت با ارزش پایین یا Low nybble آن برابر است با
(k3 , k2 , k1 , k0.)
به عنوان مثال دستور العمل LDI r27, 0xac به صورت زیر کدگشایی خواهد شد:
avr-objdump:
0: bc ea ldi r27, 0xAC
Opcode در این مثال برابر است با 1110 که معادل است با 0xe HEX
دستورالعملهای پرشی
میکروهای AVR می توانند به اندازه63+k<>64- کلمه از محل دستورالعمل جاری با حفظ وابستگی به یکی از هشت بیت ثبات پرچم پرش نمایند به جدول زیر توجه فرمایید
دستورالعملهای انتقال داده:
خواص AVR
دارای بهترین MCU برای حافظه فلش در جهان ! (MCU: Master Control Unit)
دارای سیستمی با بهترین هماهنگی
دارای بالاترین کارایی و اجرا در CPU (یک دستورالعمل در هر سیکل کلاک)
دارای کدهایی با کوچکترین سایز
دارای حافظه خود برنامه ریز
دارای واسطه JTAG که با IEEE 1149.1 سازگار است
(IEEE: Institute of Electrical and Electronics Engineers.)
دارای سخت افزار ضرب کننده روی خود
دارای بهترین ابزارها برای پیشرفت و ترقی
دارای حالات زیادی برای ترفیع دادن یا Upgrade
Jtag
Jtag استانداردری است که توسط شرکتهای تولیدکنندهpcb وic تهیه وتولیدگردیده وازسال1990 به عنوان استانداردieee باشماره ieee1194.1-1990 به ثبت رسیدحال این استانداردسخت افزارونرافزارموردنیازبرای فعال کردن قابلیت تست وارتباط بادنیای خارج ازic .میکروکنترلرهاراارایه کرده است وبه یادداشته باشیم درسال1993 باشمارهieee1194.1a-1993 ودرسال1995 باشمارهieee1194.1b-1995 تجدیدنظروترمیم نهایی شده است
معماریjtag
هرابزاری اگربخواهدباjtag سازگارباشدبایددارای پین های زیرباشد
1 –tck (test clock input)این clock ورودی حتمابایدجداازclock سیستم باشد
2 –tdi (test data in)این پورت دیتابه همراه ابزارسازگارباجی تگ واردخواهدشد
3 –tdo (test data out) به همراه این پورت ابزارسازگارباجی تگ خارج می شود
4 –tms (test mode select)این پورت حالتهای مختلف تست رابه انجام می رساند(توجه داشته باشید
4 پین ذکرشده برای هرارتباطی بایدوجودداشته باشدهرچنوکه یک پین پنجم دیگری نیزوجودداردکه کاملااختیاری است
5 –trst (test reset input) حال اینکه این پورت نیزراه اندازی غیرهمزمانtap controller رابرای شمافراهم خواهم نمود(tap controllerدسترسی شمارابه بسیاری ازتوابع داخلی تحت استانداردجی تگ رابرای شمافراهم خواهدکرد).
خانواده های محصولات AVR
Tiny AVRمیکروکنترلری با اهداف کلی و با بیش از 4 کیلو بایت حافظه فلش و 128 بایت حافظه استاتیک و قابل برنامه ریزی است.(منظور از حافظه استاتیک SRAM و حافظه قابل برنامه ریزی EEPROM است.)Mega AVR
این نوع میکروها قابلیت خود برنامه ریزی دارند و می توان آنها را بدون استفاده از مدارات اضافی برنامه ریزی کرد همچنین بیش از 256K بایت حافظه فلش و 4K بایت حافظه استاتیک و قابل برنامه ریزی دارند.LCD AVR
این نوع میکرو دارای درایور برای نمایشگر LCD با قابلیت کنترل اتوماتیک تباین و مقایسه تصویر می باشد.باعث تمدید عمر باتری می شود و در حالت فعال دارای توان مصرفی پایینی است.AVR های مدل Tiny
به خود اجازه ندهید که نام آن شما را گول بزند... میکروهای مدل tiny توانایی های عظیمی دارند.به خاطر کوچک بودن و داشتن MCU بسیار پر قدرت به اینگونه میکروها نیاز فراوانی هست آنها به هیچ منطق خارجی نیاز نداشته و به همراه یک مجتمع مبدل آنالوگ به دیجیتال و یک حافظه قابل برنامه ریزی EEPROM قابلیتهای خود را ثابت می کنند.
نکات کلیدی و سودمند مدل Tiny
آنها به منظور انجام یک عملیات ساده بهینه سازی شده و در ساخت وسایلی که به میکروهای کوچک احتیاج است کاربرد فراوان دارند.
کارایی عظیم آنها برای ارزش و بهای وسایل موثر است.
AVR های مدل Mega
اگر شما به میکرویی احتیاج دارید که دارای سرعت و کارایی بالا باشد و توانایی اجرای حجم زیادی از کد برنامه را داشته و بتواند داده های زیادی را سروسامان دهد باید از AVR های مدل Mega استفاده کنید آنها به ازای هر یک مگا هرتز سرعت ، توانایی اجرای یک میلیون دستورالعمل در هر یک ثانیه را دارند همچنین قابل برنامه ریزی و بروزرسانی کدها با سرعت و امنیت بسیار بالایی هستند.
نکات کلیدی و سودمند مدل Mega
حافظه سریع از نوع فلش با عملکرد خود برنامه ریز و بلوکه ی بوت (Boot Block)
دقت بسیار بالای 8-کانال در تبدیل آنالوگ به دیجیتال 10 بیتی
USART و SPI و TWI بر طبق واسطه های سریال
واسطه ی JTAG بر طبق IEEE 1149.1
مدل LCDآنها با بالاترین یکپارچگی و انعطاف پذیری ممکن طراحی شده اند و با داشتن درایور LCD و کنترلر اتوماتیک وضوح تصویر ،بهترین واسطه را با انسان دارند و دارای توان مصرفی پایین و کارایی بالایی هستند.اولین عضو این خانواده 100 سگمنت داشت و دارای یک UART و SPI به منظور ارتباط به صورت سریال بود.نکات کلیدی وسودمند مدل LCD
کارایی فوق العاده با سرعت یک میلیون دستورالعمل در ثانیه به ازای یک مگاهرتز
واسطه ها برای ارتباط با انسان: وقفه های صفحه کلید و درایور نمایشگر LCD
آنها این اجازه را به طراح سیستم می دهند که توان مصرفی را در برابر سرعت پردازش تا جایی که امکان دارد بهینه کند.
منبع:signals.ir
×××اگر دانش در سياره ثريا هم باشد، مردانی از پارس به آن دست خواهند یافت×××