آموزش میکروکنترلر AVR
در سریجدید مجموعه مقالات باعنوان “آموزش میکروکنترلر AVR” قصد داریم میکروکنترلر AVR که طرفداران بسیاری دارد را آموزش دهیم. در مجموعه آموزش میکروکنترلر AVR با ما همراه باشید
در یک سیستم پردازنده حداقل اجزایی که وجود دارد شامل (CPU (central prossesing unit میشود، درواقع این پرازنده شبیه مغز انسان عمل میکند مغزی که هیچگونه اجزایجانبی برای مثال دست و پا ندارد و فقط محاسبات در درون آن انجام میشود. برای ارتباط با دنیای بیرون باید اجزای جانبی دیگری نیز وجودداشتهباشد، ازجمله پالس ساعت یا clock که از حداقل اجزایی است که CPU باید تحت فرماندهی آن قرار بگیرد. یعنی پالس ساعت به CPU فرمان میدهد و اعمال CPU هماهنگ با پالس ساعت انجام میشود. طبیعتاً هر آنچه پالس ساعت بالاتر باشد مقدار اعمال انجامشده توسط CPU در واحد زمان بیشتر است، اما این همهی مسئله نیست ممکناست میکروکنترلری با کلاک ۱MHZ بتواند عملیاتی را انجامدهد که یک میکروکنترلر با کلاک ۵MHZ نتواند همان عملیات را در یک زمانثابت انجامدهد. در ادامه به بررسی این عوامل میپردازیم. CPU برای ذخیره دستورالعملها نیازبه حافظهای دارد که پایدار و غیرفرار باشد(منظور از دستورالعملها دستورهای اولیهای هستند که توسط شرکت سازنده به CPU اعمال میشوند) یعنی با قطع تغذیه محتویات آن پاک نشود، که به آن حافظهی ROM گفته میشود. واحد محاسبه و منطقی در CPU وجود دارد که به آن ALU گفته میشود، برایمثال نتیجه یک دستورالعمل این است که دوعدد توسط ALU باهم جمعشوند یا کلاً هر عملی که در توان واحد ALU باشد. به پروسه خواندن دستورات و بدستآوردن آنها از محلی که نوشتهشدهاست FETCH و اجراکردن آنها EXECUTE گفته میشود. درواقع کارCPU ،FETCH و EXECUTE است و دائماً مشغول خواندن و اجراکردن دستورات است. باتوجهبه اینکه CPU چه امکانات و دستورالعملهایی دارد قدرت آن CPU مشخص میشود، یعنی در آن واحد میتواند روی چندبیت عملیات انجامدهد. بحث ما در حوزهی AVR برروی CPUهای ۸بیتی انجام میشود، یعنی در آن واحد روی ۸بیت میتواند عملیات انجامدهد، حال این ۸بیت میتواند بهصورت ۲عدد ۸بیتی در رجیسترهای داخلی باشد (منظوراز رجیسترهای داخلی حافظهای است که درکنار CPU برای انجام عملیات داخلی قرار دارد). در کنار CPU وROM و CLOCK ما نیازبه حافظهای داریم که بتواند نتیجه عملیات را بهصورت موقت ذخیرهکند که از آن بهصورت R0 تا R31 نام میبریم که شامل ۳۲محل در میکروکنترلر AVR است. طبیعتاً ممکناست به حافظه بیشتری از جنس RAM نیازداشتهباشیم. جنس حافظه ROM ،FLASH است و جنس حافظه RAM، SRAM است که از این حافظه برای ذخیرهسازی عملیات انجامشده استفاده میشود. در ضعیفترین عضو خانواده AVR، ATtiny11 اصلاً SRAM وجود ندارد که این میکروکنترلر در بازار موجود نیست. با مراجعهبه دیتاشیت میتوانید از ظرفیتهای دیگر میکروکنترلرها مطلع شوید.
یکیدیگر از اجزای جانبی موجود در کنار CPU حافظهی (EEPROM (electrically Erasable Programmable Read only Memory است. این حافظه معمولاً برای ذخیرهسازی اطلاعاتی است که توسط کاربر تولید میشود. برایمثال سیستم کنترلی را درنظر بگیرید که میخواهیم مقادیر یکسری پارامتر در آن نوشتهشود و در آن باقی بماند، یعنی با قطع برق آن اطلاعات پاک نشود. مقادیر خواندن و نوشتن آن در دیتاشیت موجود میباشد. CPU اگر نتواند با دنیای خارج از خود ارتباط برقرار کند مانند انسانی است که حواس پنجگانه خود را ازدست دادهاست و نمیتواند با دیگران ارتباط برقرار کند. برای همین کار، یک واحدی در CPU وجود دارد بهنام INPUT/OUTPUT ،که دریچهی بین دنیای بیرون و خود CPU است. که از آن بهعنوان GPIO یاد میشود. درنتیجه برنامهای که توسط برنامهنویس توسط هر زبانی نوشته میشود، توسط پروگرامر برروی حافظه FLASH میکروکنترلر، پروگرام میشود و نتیجه عملیات موقت درحین اجرای برنامه در SRAM ذخیره میشود. دیتاهایی که توسط برنامه تولید میشود و میخواهیم که یکبار ذخیرهشود و با قطعبرق پاک نشود در EEPROM ذخیره میشود که اینکار توسط CPU انجام میشود. همه این عملیات برای این است که بتوان ارتباط بین دنیای بیرون و CPU را ایجاد کرد. تصویر زیر نشاندهنده ارتباط بین CPU و واحدهای جانبی است:
03
در قسمت دوم آموزش میکروکنترلر AVR قصد داریم به موضوع کلاک میکروکنترلر و بلوک I/O بپردازیم. با ما همراه باشید.
منبع: سیسوگ