مقدمه

همونطور که پیش تر در پستی با گذاشتن مطالبی در حوضه میکروکنترلر AVR موافقت شد با این پست مطالب با این موضوع را شروع می کنم.

همون طور که قبلا هم نقل قول کردم میکروکنترلر ها در واقع دسته ای از تراشه های IC هستند که امکان برنامه نویسی و کنترل مدارات الکتریکی رو به ما می دهند. این تراشه ها درواقع چیزی شبیه به یک رایانه در ابعاد بسیار کوچک هستند که درون خود دارای بخش هایی مانند CPU, RAM, ROM و چند نوع حافظه هستند. این تراشه های از خانواده های مخلف و با معماری ها و ویژگی ها مختلفی هستند که به جرئت میشه گفته خانواده AVR بهترین و پرکاربرد ترین خانواده این دسته از تراشه ها هستند. در ادامه کمی بیشتر در مورد AVR ها آشنا خواهیم شد.

AVR-microcontrollers

انتخاب نام AVR

ظاهرا دلیل مشخصی وجود ندارد و به گفته شرکت Atmel که سازنده این میکروکنترلر هاست این فقط یک نام است، اما مطمئنا این نام را طراحان اولین نمونه از این میکرو ها انتخاب کردن که حتما دلیل خاصی داشته!

خانواده های محصولات AVR

  • TinyAVR: میکروکنترلری با اهداف کلی و با بیش از 4 کیلو بایت حافظه فلش و 128 بایت حافظه استاتیک و قابل برنامه ریزی است (پ.ن در آینده بیشتر به مطالبی مانند فرق انواع حافظه ها خواهیم پرداخت). منظور از حافظه استاتیک SRAM و قابل برنامه ریزی EEPROM هست. میکرو های این مدل توانایی های عظیمی در ابعاد کوچک دارند. آن ها به هیچ منطق خارجی نیازی نداشته و به همراه یک مجتمع مبدل آنالوگ به دیجیتال و یک حافظه قابل برنامه نویسی EEPROM قابلیت های خود را ثابت می کنندو از آن ها به منظور انجام عملیات ساده بهینه سازی شده و در ساخت وسایلی که به میکروهای کوچک احتیاج است کاربرد فراوان دارند.
  • MegaAVR: این نوع میکرو ها قابلیت خودبرنامه ریزی دارندو می توان آن ها را بدون مدار های اضافی برنامه ریزی کرد.و بیش از 256 کیلوبایت حافظه فلش و 4 کیلوبایت حافظه استاتیک و قابل برنامه ریزی دارند. اگر به میکرویی احتیاج دارید که دارای سرعت و کارایی بالا باشد و توانایی اجرای حجم زیادی از کد برنامه را داشته و بتواند داده های زیادی را سر و سامان دهد باید از این خانواده استفاده کنید. آن ها به اذای هر یک مگاهرتز سرعت توانایی اجرای یک میلیون دستور در یک ثانیه را دارند. همچنین دارای قابلیت برنامه ریزی و به روز رسانی کد ها با سرعت و امنیت بسیار بالایی می باشند و امکانات بسیار زیادی را در خود جا داده اند.
  • LCDAVR: این نوع میکرو ها بیشتر در ساخت LCD ها کاربرد دارندو تمام قابلیت های آن ها مربوط به این کار هستند. اصولا در حوضه کاری ما (برنامه نویسی و طراحی مدارات AVR) نیازی به کار با این دسته از میکرو ها نداریم و هر گاه نیاز به LCD داشتیم از مدار های کامل LCD با ویزگی های مورد نظر استفاده می کنیم.

برنامه نویسی AVR

زبان هایی که برای برنامه نویسی AVR از آن ها استفاده می کنیم شامل BASCOM (Basic for AVR)، C و Asembler هستند که پس از کامپایل شدن به طور کل توسط مداری هایی که به آن ها Programmer می گوییم به میکرو ها منتقل می شوند. البته مدار های آمده ای مانند Arduino بر پایه AVRها نیز هستند که به تازگی بسیار رایج شده اند و ماژول هایی مانند شبکه، سیم کارت، وایفای، بلوتوث و ... دارند که با سرهم کردن آن ها و کمی برنامه نویسی به زبان سی یا زبان اختصاصی آن ها مانند زبان Arduino چیز های جالبی می توان ساخت ولی این دسته مدار ها گران تر و اقلب برای کار های فوری و موقتی است.

برای شروع به چه چیز هایی نیاز دارید؟

برای شروع کار، به لطف نرم افزار های شبیه سازی از غبیل Proteus برای محیط ویندوز (برای محیط لینوکس جایگزینی مناسبی سراغ ندارم) نیاز چندانی به خرج کردن و خرید میکرو ها و پروگرامر ها نیست مگر آن که علاقه مند باشد یک مدار واقعی بسازید که نیازمند کار های عملی و توانایی  فنی در این حوضه است که می توانید کمی رو کمک من حساب کنید! (تخصص این وبلاگ در حوضه کامپیوتر و برنامه نویسی و حواشی آن است و به الکترونیک نپرداخته ولی خودم به طور شخصی تا آنجا که بتوانم و تجربه کم چند ساله ام در این حوضه پاسخگو باشد به شما کمک می کنم.)

 

 

در بخشی از نوشته های این مطلب از کتاب "آموزش کاربردی میکروکنترلر های AVR" تالیف مهندسین "محمد محمدی، مجتبی آخوندی و عباس سنجیده مطلق" از نشر "موسسه فرهنگی هنری سیمرغ" به صورت چکیده استفاده شدهاست.