تکنولوزی 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

تکنولوزی 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