مشاهده پست های بی پاسخ | مشاهده موضوعهای فعال تاریخ امروز دوشنبه 22 اکتبر, 2018 6:36 pm



پاسخ به موضوع  [ 48 پست ]  برو به صفحه قبلی  1, 2, 3, 4, 5, 6, 7 ... 10  بعدی
 آموزش میکروکنترلرهای AVR گام به گام 
نویسنده پیام
آواتار کاربر

عضو: پنجشنبه 07 فوریه, 2008 6:01 pm
پست ها: 39
پست قسمت ششم: ادامه منوهای محیط Condvisison AVR :
Codewizrd :
با انتخاب این گزینه برنامه codwizard اجرا می شود به مرور با آن آشنا خواهید شد .
ضمیمه:
6quzxz.gif

Debugger :
با انتخاب این گزینه در صورتی که قبلا آدرس برنامه AVRStudio را برای آن مشخص کرده باشید این نرم افزار اجرا می شود که از ان برای شبیه سازی برنامه استفاده می گردد .
Terminal:
با اجرای این گزینه برنامه Terminal اجرا می شود . از این برنامه در ارتباط سریال برای مشاهده کد های رسیده از میکرو برای کامپیوتر و فرستادن کد از کامپیوتر برای میکرو استفاده می گردد.
chip programmer :
با انتخاب این گزینه برنامه chip programmer باز می شود که به کمک آن می توانید تراشه را برنامه ریزی کنید و یا اطلاعات موجود بر روی آن را بخوانید .
Configure:
با انتخاب این گزینه پنجره configure Tools باز می شود که به کمک آن کاربرمی تواند برنامه های خود را به منوی Tools اضافه کند و یا برنامه هایی را حذف نماید .
منوی settings :
General :
با انتخاب این گزینه می توانید نمایش نقش قسمتهای مختلف در پنجره اصلی را فعال یا غیر فعال کنید .
Editor:
با انتخاب این گزینه پنجره Editor setting باز می شود که به کمک آن می توانید تنظیمات مربوطه به ویرایشگر ، از ق بیل رنگ پیش زمینه ، کلمات کلیدی ، رشته ها، توضیحات و .. را تنظیم کرد .
Assembler :
با انتخاب این گزینه مشخص کنید که در هنگام بروز خطا از اسمبلر ، یکی از فایلهای با پسوند Lst یا nsm باز می شوند .
Programmer :
با انتخاب این گزینه پنجره programmer setting باز می شود که باید در آن در قسمت AVR chip programmer Type عبارت Kanda systems STK200+and STK300 را انتخاب کنید و سپس در قسمت EPTI ,printer port را انتخاب کنید . علاوه بر این در کامپیوترهای بسیار سریع در صورت بروز مشکل باید گزینه Delay Multiplier را هم افزایش دهید .
Terminal :
با انتخاب این گزینه Terminal setting باز می شود که در ان می توانید پورت COM متصل به میکرو ، سرعت ارسال و دیگر تنظیمات مربوط به ارتباط سریال را انجام دهید .
معرفی پنجره Configure project :
پنجره configure proect از سه بخش Aficr make ,C Compiler ,Files تشکیل شده است به کمک لبه Files می توانید فایلهای Souree جدید را به پروژه خودتان اضافه کنید . در این صورت اولین فایل Souree اضافه شده عنوان فایل اصلی پروژه در نظر گرفته خواهد شد . علاوه بر این میتوانید فایلهایی را از پروژه خود حذف کنید .
لبه C Compiler به تنظیمان کامپایلر مربوط می گردد در این صفحه باید نوع میکرو کنترلر AVR کریستال مورد استفاده مشخص شود لازم به ذکر است که در صورتی که اندازه فرکانس کریستال به درستی انتخاب نشود ، در صورت استفاده از توابع تولید تأخید آنها به درستی کار نخواهند کرد . علاوه بر این در قسمت Code Generation علاوه برتنظیم نوع میکرو و فرکانس کریستال مورد استفاده می توان مدل ، حافظه چگونگی بهینه سازی کد های برنامه ( بر اساس کمترین اندازه و یا بیشترین سرعت ). میزان حافظه Boot Loader فرمت قابل قبول دستورات sscaf ,sprintf تعیین قسمتهای مختلف موجود در حافظه SRAM را نیز مشخص نمود که بعد ا بیشتر با آنها می شوید .
در قسمتGlobally # define میتوانید ماکرو هایی را تعریف کنید که در تمام فایلهای پروژه قابل استفاده می باشند . این عمل معادل قرار دادن آن ماکرو ها با دستور #define در ابتدای هرفایل پروژه است .
به کمک قسمت paths می توانید مسیرهای اضافی جدیدی را برای فایلهای سر آمد و فایلهای کتابخانه ای مشخص کنید .
در لبه After make با انتخاب گزینه program the chip پارامترهای دیگر به صفحه اضافه می شوند در این صورت می توانید پس از انجام عمل کامپایل و سپس ساخت فایل hex در صورت متصل بودن کابل ISP آن را مستقیما بر روی تراشه AVR برنامه ریزی کنید و. علاوه بر این می توانید فیوز بیتها ممکن است میابل باشند تا عمل برنامه ریزی تراشه را به کمک نرم افزاری دیگری ( مثل pony prog) انجام دهید . در این صورت به جای انتخاب گزینه گزینه را انتخاب کنید . سپس لازم است تا مسیر برنامه مورد نظرتان را مشخص کنید . در این صورت هر بار انتخاب گزینه Make از منوی project در صورت عدم بروز خطا برنامه مورد نظرتان اجرا خواهد شد و می توانید از طریق آن میکرو را برنامه ریزی کنید .


برای مشاهده تصاویر و دانلود فایل های ضمیمه ، لازم است در سایت ثبت نام کرده و با نام کاربری خود وارد شوید. در حال حاضر ثبت نام در سایت رایگان است.


آخرین بار توسط Ali Reza در پنجشنبه 28 فوریه, 2008 7:23 pm ویرایش شده است و در کل 1 بار ویرایش شده.



دوشنبه 25 فوریه, 2008 11:17 pm
مشخصات شخصی
آواتار کاربر

عضو: پنجشنبه 07 فوریه, 2008 6:01 pm
پست ها: 39
پست قسمت هفتم: ایجاد یک پروژه جدید
ایجاد یک پروژه جدید :
به طور کلی دو روش برای ایجاد یک پروژه وجود دارد ، که در این قسمت هردو روش را با پیاده سازی یک مثال واحد اجرا می کنیم و سپس چگونگی شبیه سازی و برنامه ریزی تراشه را نیز با هم مرور می نماییم . فرض کنید می خواهیم برنامه ای بنویسیم تِِا LED ِِِ include <mega16.h>موجود بر روی پایه ADCO)40)میکرو کنترلرATmega16را با فرکانس 1، HZ خاموش و روشن نمایید(شکل 7-1) در این صورت لازم است تا پایه 40 به مدت 0.5S روشن یک منظقی و به مدت 0.5S خاموش صفر منطقی باشد .
ضمیمه:
dn0h3n.gif

برای تولید یک پروژه جدید دو روش وجود دارد :
روش اول :
در این روش برای تولید یک پروژه جدید از منوی File را از گزینه New انتخاب کنید و یا دکمه Create New File را از نوار ابزار فشار دهید . سپس از پنجره ایجاد شده گزینه project را انتخاب کنید و دکمه ok را فشار دهید .
حالا پنجره دیگری باز می شود که می پرسد آیا قصد دارید تا از codewizard برای تولید پروژه جدید استفاده کنید . در این قسمت دکمه NO را فشاردهید .
با این کار پنجره Creat New project بازخواهد شد که باید نام پروژه مورد نظرتان را در آن وارد کرد . دراین قسمت کلمه Test را وارد کنید . در این صورت فایل پروژه با پسوند prj ذخیره خواد شد . در این لحظه پنجره configure project باز می شود . در این پنجره در قسمت C Compiler نوع تراشه و فرکانس کریستال را به ترتیب برابر 4m HZ .ATmega16انتخاب کنید و دکه OK را فشار دهید در این مرحله باید یک فابل منبع به پروژه اضافه کنید برای این منظور از منویFile گزینه New را انتخاب کنید و سپس ازپنجره باز شده گزینه Source را علامت بزنید . در این صورت فایلی با نام Untitled.c ظاهرمی شود .
کد های زیر را در آن وارد کنید و سپس به کمک گزینه Save as آن را با نام main.c ذخیره نمایید .
include <mega16.h>#
#include <delay.h>
/*This is a program that flashes the Led
on PORTA.0 every 0.5 seconds*/
main()
{
while(1) /*Loop forever*/
{
PORTA.0=1;
delay_ms(500);
PORTA.0=0;
delay_ms(500);
}
}
برای اضافه کردن این فایل به پروژه از منوی procet گزینه configure را انتخاب کنید . سپس در قسمت File main.c را به پروژه اضافه کنید .
در ادامه در پنجره configure project به لبه Afier Make بروید و گزینه program the chip را علامت بزنید و با تأیید تغییرات ایجاد شده صفحه را بینید و سپس از منوی project گزینه Make / را انتخاب کنید . در این صورت پروژه کامپایل می شود و در نهایت فایل hexنیز ساخته می گردد و پنجره ای بر روی صفحه ظاهر می گردد . این پنجره شامل سه قسمت است . در لبه compiler اطلاعاتی را در مورد تنظیمات کامپایلر و میزان حافظه اشغال شده توسط برنامه می بینید .
در لبه Assmbler اطلاعاتی را در مورد فایلهای تولید شده در این قسمت و میزان کد های تولید شده مشاهده می کنید و بالاخره در لبه programmer شمارنده ای را مشاهده می کنید که تعداد دفعات برنامه ریزی تراشه توسط Codevisionرا نشان می دهد . البته شما یم توانید این شمارنده را در صورت نیاز به کمک دکمهset counter صفر نمایید و یا مقدار آن را تغییر دهید .
برای برنامه ریزی تراشه در صورتی که حداقل مدار لازم برای راه اندازی میکرو را قبلا بسته باشید . ( شکل7-2) و کابل هم متصل باشد می توانید با فشار دادن دکمهprogram تراشه را برنامه ریزی کنید .
ضمیمه:
aub514.gif

شکل 7-2 : مدار لازم برای پروگرم کردن میکرو(stk 200)
پس از پایان یافتن برنامه ریزی تراشه ، بلافاصله اجرای کد های توسط میکرو آغاز می شود وLED شروع به چشمک زدن می کند .
روش دوم :
در این روش برای ایجاد پروژه جدید از برنامه code Wizard استفاده می شود . همان طور که قبلا گفته شد برنامه code Wizard امکان انجام تنظیمات اولیه به صورت گرافیکی را فراهم می کند . درعمل اصولا این روش به دلیل سادگی و تولید کد های برنامه به صورت خود کار بیشتر از روش اول استفاده می شود . بنابراین در ادامه سعی می کنیم تا به توضیح قسمتهای مهم آن بپردازیم .
در ابتدا باید از منوی Tools گزینه code Wizard را انتخاب کنید و یا دکمه code Wizardدر نوار ابزار را فشار دهید . با این کارپنجره ای مشابه شکل 7-3 باز می شود .
ضمیمه:
dm7l3n.jpg

شکل 7-3:CODEWIZARD
در این پنجره ابتدا در لبهchip در قسمت chip نوع تراشه را برابر ATmega16 انتخاب کنید. سپس در قسمت clock فرکانس کریستال متصل به AVR را برابر 4MHZ قرار دهید . در ادامه به لبه ports بروید و در قسمت port A درقسمت Bit 0 با کلیک برروی in به out تغیر دهید .با این کار تنظیمات اولیه پروژه به پایان می رسد . در این مرحله باید فایلهای پروژه را ایجاد کنید . برای این منظور در پنجره code Wizard AVR از منوی File گزینه را انتخاب کنید . در این مرحله پنجره ای باز می شود و از شما می خواهد تا نامی را برای فایل اصلی پروژه انتخاب کنید . در این مرحله در پنجرهFile Name نام را انتخاب کنید و دکمه را فشار دهید در ادامه گنجره دیگری باز می شود و از شما می خواهد نامی را برای فایل پروژه انتخاب و آن را ذخیره کنید .با نام گذاری فایل با نام Test به مرحله بعدی بروید . در این قسمت پنجره دیگری باز می شود که نامی را برای فایل پروژه مربوط به تنظیمات code Wizard در خواست می کند وبا ذخیره سازی آن پنجره code Wizardبسته می شود و. فایل اصلی source باز می گردد .
محتویات این فایل مشابه کدهای زیر است:
/*********************************************
This program was produced by the
CodeWizardAVR V1.23.8c Professional
Automatic Program Generator
© Copyright 1998-2003 HP InfoTech s.r.l.
http://www.hpinfotech.ro
e-mail:office@hpinfotech.ro
Project :
Version :
Date : 11/14/2005
Author : ali reza raei
Company :
Comments:
Chip type : ATmega16
Program type : Application
Clock frequency : 4.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 256
*********************************************/
#include <mega16.h>
// Declare your global variables here
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func0=Out Func1=In Func2=In Func3=In Func4=In Func5=In Func6=In Func7=In
// State0=0 State1=T State2=T State3=T State4=T State5=T State6=T State7=T
PORTA=0x00;
DDRA=0x01;
// Port B initialization
// Func0=In Func1=In Func2=In Func3=In Func4=In Func5=In Func6=In Func7=In
// State0=T State1=T State2=T State3=T State4=T State5=T State6=T State7=T
PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func0=In Func1=In Func2=In Func3=In Func4=In Func5=In Func6=In Func7=In
// State0=T State1=T State2=T State3=T State4=T State5=T State6=T State7=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func0=In Func1=In Func2=In Func3=In Func4=In Func5=In Func6=In Func7=In
// State0=T State1=T State2=T State3=T State4=T State5=T State6=T State7=T
PORTD=0x00;
DDRD=0x00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
// Analog Comparator Output: Off
ACSR=0x80;
SFIOR=0x00;

while (1)
{
// Place your code here

};
}
توضیحاتی راجع به نسخه مورد استفاده codevision نام پروژه ، تاریخ تولید ، نویسنده ، کمپانی ، نوع تراشه ، نوع برنامه و نوع حافظه.
فایلهای سر آمد header مورد استفاده .
تعیین چگونگی اتصال LCD و یا تراشه های SPI , I2C به میکرو کنترلر و فایلهای سر آمد مربوط به آنها در صورت نیاز .
4- روتین های مربوط به وقفه های فعال شده در داخل code Wizard در صورت وجود .
5- عبارت //Delare your global variables here برای تعریف متغیر های سراسری در صورت نیاز .
شروع تابع main تابع اصلی برنامه
7- عبارت//Delare your global variables hereبرای تعریف متغیر های محلی در صورت نیاز
8- تنظیمات اولیه مربوط به پورتها ، تایمرها ، ارتباط سریال ، وقفه های خارجی ، ADC مقایسه کننده ، آنالوگ watchdog
9- شروع حلقه while(1) که دستورات موجود در این حلقه همواره اجرا می شود .
10- عبارت //place your code here برای نوشتن کد در داخل حلقه ، در صورت نیاز .
پس ازتولید کد ها با code Wizard لازم است تا کد های خود را به فایل اصلی اضافه کنید . برای این منظور در ابتدای برنامه بعد از دستور #invlude <mega16.h> دستور #invlude <delay.h> را اضافه کنید . سپس در داخل حلقه while(1) بعد عبارت place you’re here دستورات زیر را اضافه کنید .
PoRTA.0=1;
Delay –ms(500);
PORTA.0=0;
Delay –ms(500) ;
حالا از منوی progect گزینه confifure را انتخاب کنید و در لبه After Make گزینه program the chip را علامت یزنید و دکمه ok را فشار دهید . دراین قسمت برنامه کامل شده است و می توانید از منوی project گزینه Meke را انتخاب و تراشه را برنامه ریزی کنید .
در صورتی که بخواهید تا قبل از برنامه ریزی تراشه از صحت عمکلرد ـآن اطمینان حاصل کنید باید برنامه را به کمک نرم افزار AVR stdio شبیه سازی کنید . پس از انجام عمل کامپایل و اسمبل کردنب رنامه condevision یک فایل object با پسوند coff تولید می کند . به کمک نسخه AVR studio یا نسخه های بعد از آن امکان شبیه سازی این فایل فراهم شده است .
برای اجرای این نرم افزار در صورتی که قبلا مسیر نصب آن را در نوی settins قسمت Debugger تنظیم کرده باشید می توانید از منوی Tools Debugger را انتخاب کنید و یا در نوار ابزار دکمه Run the debugger را فشار دهید . با اجرای پنجره نرم افزار AVRStudio پنجره welcome to AVRstudio باز می شود در این پنجره دکمه open را فشار دهید و فایل object مورد نظر را باز کنید .
در این قسمت لازم است تا روش شبیه سازی و نوع تراشه را مشخص کنید برای این منظور در قسمت AVR simulator ,Dbug platform و درقسمت ATmega16 ,Device را انتخاب کنید و دکمه Finish را فشار دهید . در این مرحله AVRStudio فایل مورد نظر را باز می کند و برای اجرای شبیه سازی آماده می شود حالا می توانید با قرار دادن نقاط شکست (Break poins) درقسمکتهای مورد نظر برنامه و مشاهده رجیسترهای مختلف در پنجره workspace و تغییر آنها از صحت برنامه خود مطمئن شود .


برای مشاهده تصاویر و دانلود فایل های ضمیمه ، لازم است در سایت ثبت نام کرده و با نام کاربری خود وارد شوید. در حال حاضر ثبت نام در سایت رایگان است.


پنجشنبه 28 فوریه, 2008 7:22 pm
مشخصات شخصی
آواتار کاربر

عضو: پنجشنبه 07 فوریه, 2008 6:01 pm
پست ها: 39
پست قسمت هشتم:ساختار داخلی و کلاک در AVR
در این قسمت در بخش اول ساختار اصلی AVR به صورت کلی همراه باALU ،رجیستر وضعیت، اشاره گر پشته و چگونگی اجرای دستورات و انواع حافظه میکرو کنترلهای AVR مورد بحث قرار می گیرند وسپس در بخش دوم کلاک سیستم مربوط به میکرو کنترلر ATmega16 بررسی می شود .
ساختار :
در این بخش ساختار اصلی AVR (شکل 8-1 )به صورت کلی موجود بحث قرار می گیرد . وظیفه اصلی CPU اطمینان از اجرای صحیح برنامه می باشد .
CPU باید بتواند به حافظه های دسترسی داشته باشد و محاسبات را انجام دهد . وسایل جانبی را کنترل کند و وقفه ها را هم به طور صحیحی رهبری نماید .
ضمیمه:
5l1hl0.gif

شکل 4-1:ساختار میکروکنترلر AVR
AVR برای افزایش کارایی از ساختار Harvard با حافظه ها و باسهای جدا گانه برای داده و برنامه استفاده می کند . دستورات در حافظه برنامه با یک سطح pipelining اجرا می شوند. یعنی زمانی که یک دستور در حال اجرا می باشد . دستور بعد از حافظه برنامه خوانده می شود . با این روش در هرسیکل کلاک یک دستور اجرا می گردد .
AVR ها 32 رجیستر 8 بیتی همه منظوره را هم شامل می شوند که تنها در یک سیکل کلاک در دسترس قرار می گیرند . در این صورتALU می تواند عملیات ها را در یک سیکل کلاک انجام دهد . در یک عملیات معممولی ALU ، دو عملوند از دو رجیستر خارج میشوند و بعد از اجرای عملیات نتیجه به یکی از آن رجیستر ها باز می گردد . شش عدد از 32 رجیستر می تواند به صورت اشاره گرهای غیر مستقیم به آدرسها دهی فضا داده به کار روند . این رجیسترها ی 16 بیتی X، Z,Y هستند که بعد ا توضیح داده می شوند .
ALU :
ALU در AVR به صورت مستقیم با تمام 32 رجیستر همه منظوره ارتباط دارد . عملیانهای ریاضی این قسمت در یک سیکل کلاک اجرا می شوند . عملیات های ALU به سه قسمت اصلی اعمال ریاضی منطقی و بیتی تقسیم می گردند . علاوه بر این در بعضی از انواع پیشرفته ALU, AVR به یک ضرب کننده با قابلیت ضرب اعداد بدون علامت علامت دار و نیز اعداد اعشاری مجهز شده است .
رجیستر وضعیت (Status Register) :
این رجیستراطلاعاتی را در مورد نتایج آخرین دستور محاسباتی اجرا شده در بر دارد . به کمک این اطلاعات با اجرای دستورات شرطی می توان نحوه اجرا ی برنامه را تغییر داد.
ضمیمه:
345csus.gif

بیت( 7)I(Global interrupt Enable) فعال سازی عمومی وقفه :
برای فعال سازی و قفه های این بیت باید یک شود . علاوه بر این باید هریک از وقفه ها توسط رجیسترها کنترلی خاصی به صورت جدا گانه فعال گردند . اگر این بیت صفر شود . دیگر هیچ یک از وقفه ها فعال نمی شوند .این بیت با رخ دادن هریک از وقفه ها و ورود به رویتن وقفه ،به صورت سخت افزاری پاک شده ودر انتهای روتین دوباره یک می شود . علاوه بر این می توان در زبان اسمبلی به کمک دستورات SEI , CLI این بیت را به ترتیب یک یا صفر نمود . این دستورات در زبان C به صورت زیر استفاده می گردند:
فعال سازی عمومی وقفه: asm# ("sei")i
غیرفعال سازی عمومی وقفه: asm# ("cli")i
بیت T-6 (Bit copy Storage) :
می توانیم از بیت T به عنوان مبدأ و یا مقصد یک عملیات بیتی استفاده کنیم .
بیت (Half carry flag)H-5 :
این بیت وجود Haif carryدر بعضی از عملیات های ریاضی را نشان می دهد .
بیت (sign Bit)s-4 بیت علامت :
این بیت همیشه برابر با S = N XOR V است .
بیت V-3 پرچم سر ریز مکمل 2 :
از این بیت در محاسبات مربوط به اعداد مکمل 2 استفاده می شود .
بیت (Negative fiag) :
این بیت یک نتیجه صفر در یک عملیات محاسباتی یا منطقی را نشان می دهد .
بیت c-0 پرچم (Carry) :
این بیت وجود یک carry در عملیات محاسباتی یا منطقی را نشان می دهد .


برای مشاهده تصاویر و دانلود فایل های ضمیمه ، لازم است در سایت ثبت نام کرده و با نام کاربری خود وارد شوید. در حال حاضر ثبت نام در سایت رایگان است.


جمعه 07 مارس, 2008 12:02 am
مشخصات شخصی
آواتار کاربر

عضو: پنجشنبه 07 فوریه, 2008 6:01 pm
پست ها: 39
پست قسمت نهم:ادامه ساختار داخلی و انواع حافظه در میکروکنترلرAVR
ادامه بررسی رجیسترها در ATmega16:
رجیسترهای همه منظوره (General purpose Registers) :
رجیسترهایی که برای اجرای بهینه مجموعه دستورات AVR طراحی شده اند .
اکثر دستورات AVR مستقیما به تمامی رجیسترهای دسترسی دارند و در یک سیکل کلاک اجرا می شود . همان طور که در شکل 9-1می بینید ، هریک از رجیسترهای همه منظوره به یک آدرس در فضای حافظه ها نیز تعلق دارد . در حقیقت این رجیسترها در 32 محل اول حافظه داده ها ( در SRAM) قرار دارند . ساختار حافظه ، انعظاف پذیری زیادی را در دسترسی به این رجیسترها ایجاد می کند .
ضمیمه:
jikxmx.gif

رجیسترهای Z,Y,X :
رجیسترهای R31,R20 علاوه بر استفاده های همه منظوره وظیفه دیگری هم دارند . این رجیسرتها ، اشاره گر های 16 بیتی ، جهت آدرس دهی غیر مستقیم فضای داده هستند و به صورت شکل 9-2 تعریف می شوند :
ضمیمه:
6plruo.gif

اشاره گر پشته (stack pointer) :
اصولا از پشته برای ذخیره سازی موقت داده متغیر های محلی و آدرسهای بازگشت از روتینها ی وقفه و توابع استفاده می شود . محتوای این اشاره گر با ذخیره هر داده کاهش می یابد و پس از بازیابی داده افزایش پیدا می کند . این اشاره گر در AVRبه صورت دو رجیستر 8 بیتی در فضای I/O قرار دارد .
انواع حافظه در میکرو کنترلرهای AVR :
به طور کلی میکرو کنترلرهای AVR سه نوع حافظه مختلف دارند .
حافظه Flash :
این حافظه محل قرار گیری کد های برنامه است و به طور کلی به دو قسمت Boot , Application تقسیم می شود . قسمت Application برای برنامه ریزی تراشه ، مشابه ها با میکرو کنترلرهای دیگر مورد استفاده قرار می گیرند و و قسمت Boot که یکی از ویژگیهای جالب AVR نیز می باشد امکان برنامه ریزی AVR توسط خود آن را بدون نیاز به پرو گرامر فراهم می آورد .
حافظه SRAM :
این حافظه به سه قسمت مطابق شکل 9-3 تقسیم می شود .
تصویر
در ابتدای حافظه 32 رجیستر همه منظوره قرار دارند در ادامه هم رجیسترهای I/O قرار دارند که امکان کنترل با امکانات جانبی تراشه را فراهم می کنند . بعد از این دو قسمت نیز حافظه داده داخلی قرار دارد .
حافظه EEPROM :
این حافظه قابلیتهای ویژه را برای میکرو کنترلر فراهم می کند . میکرو کنترلر می تواند اطلاعاتی را بر روی این حافظه بنویسد . این اطلاعات با قطع برق یا قطع و لتاژ تغذییه میکرو از بین نمی رود و لذا می توانند با راه اندازی مجدد میکرو مورد استفاده قرار گیرند . امروزه اکثر وسایل اطراف ما از این قابلیت استفاده می کنند . برای مثال پرینتر شما همیشه تعداد بر گه های پرینت گرفته را در خود ذخیره می کند و در صورت نیاز آن را به اعلام می کند . کارت تلفن شما هم در حقیقت یک EEPROM است که میزان اعتبار موجود شما را نشان می دهد .


برای مشاهده تصاویر و دانلود فایل های ضمیمه ، لازم است در سایت ثبت نام کرده و با نام کاربری خود وارد شوید. در حال حاضر ثبت نام در سایت رایگان است.


دوشنبه 10 مارس, 2008 12:08 pm
مشخصات شخصی
آواتار کاربر

عضو: پنجشنبه 07 فوریه, 2008 6:01 pm
پست ها: 39
پست قسمت دهم:کلاک سیستم
در این بخش سیستم میکرو کنترلرATmega16 بررسی می شوند . دلیل انتخاب این میکروکنترلر وجود تمامی امکانات ذکر شده برای میکرو کنترلرهای AVR در این میکرو ، پر استفاده تر بودن نسبی آن نسبت به بقیه انواع AVR و تهیه آسان آن می باشد .
توزیع کلاک :
شکل زیر سیستم های کلاک اصلی در AVR و چگونگی گسترش آنها را نشان می دهد . لازم نیست تا در یک زمان تمامی کلاک ها فعال باشند . برای کاهش توان مصرف، کلاکهای ورودی مربوط به بخش هایی از آنها که استفاده نمی گردد ،می توانند به کمک مد های SIeep مختلف متوقف شوند .
ضمیمه:
aoq7gp.png

کلاک clkCPU)-CPU ):
این کلاک به بخشهایی می رود که به عملکرد هسته AVR مربوط می شوند . مثالهایی از این بخشها رجیسترهای همه منظوره رجیستر وضعیت و اشاره گر پشته هستند . توقف این کلاک باعث می شود که عملیات و محاسبات AVR انجام نگیرد .
کلاک CLKI/O-I/O :
این کلاک توسط بسیاری از از بخشهای I/O مثل تایمر / کانترها ، USART, SPI مورد استفاده قرار می گیرند .
کلاک CLKFLASH)-FLASH):
این کلاک عمل ارتباط با حافظه را کنترل می کند . معمولا این کلاک به صورت همزمان با کلاک CPU فعال است.
کلاک غیر همزمان CLKASY :
این کلاک امکان اتصال مستقیم یک کریستال ساعتی 32KHZ خارجی به تایمر / کانتر را فراهم می آورد . در این صورت می توان از تایمر / کانتر به عنوان یک (Real – Time clock)RTC حتی در زمانی که تراشه در یکی از مد های SIEEP است ، استفاده نمود .
کلاک CLKADC-ADC :
کلاک محدوده فرکانسی دقیقی را برای ADC فراهم می کند و. در این صورت می توان بر کاهش نویز از دیجیتال کلاکهای I/O , CPU را متوقف نمود و به این ترتیب نتایحج تبدیل ADC ( مبدل آنالو گ به دیجیتال) با دقت بیشتری حاصل می گردد .
تصویر
منابع کلاک :
میکرو دارای چهار منبع کلاک( جدول زیر) است که به کمک فیوز بیتهای موجود در حافپه Flash قابل تنظیم یم باشد . کلاک از منبع انتخاب شده به صورت ورودی به قسمت تولید کننده کلاک در AVR وارد می شود و از آنجا که به بخشهای مختلف می رود باید توجه داشت که برای تمامی فیوزها 1 به معنای بیت برنامه ریزی نشده و 0 به معنی بیت برنامه ریزی شده است .
تصویر
زمانی که CPU از حالت power-save,power-down خارج گردد . بسته به منبع کلاک انتخاب شده ، قبل شروع اجرای دستورات مدت زمانی برای اطمینان از پایداری عملکرد کریستال طول می کشد .. زمانی CPU از حالت Rest شروع به می کند . علاوه بر مورد قبلی یک تأخیر اضافی برای پایدار شدن سطح تغذیه نیز لازم است برای ایجاد این زمان بندی از سایلاتور watchdog استفاده می شود
منبع کلاک پیش فرض :
مبکرو با مقادیر پیش فرض SUT=10,, CKSEL =0001 طراحی می گردد . بنابراین منبع کلاک پیش فرض اسیلاتور RC داخلی IMHZ با بیشترین زمان شروع می باشد . این تنظیم اولیه امکان تغییر منبع کلاک را برای کاربران توسط پروگرامرهای موازی و یا ISP فراهم می کند .
در ادامه به توضیح منابع کلاک مختلف می پردازیم :


برای مشاهده تصاویر و دانلود فایل های ضمیمه ، لازم است در سایت ثبت نام کرده و با نام کاربری خود وارد شوید. در حال حاضر ثبت نام در سایت رایگان است.


یکشنبه 16 مارس, 2008 12:30 am
مشخصات شخصی
مشاهده پست های قبلی:  نمایش بر اساس  
پاسخ به موضوع   [ 48 پست ]  برو به صفحه قبلی  1, 2, 3, 4, 5, 6, 7 ... 10  بعدی

افراد آنلاین

کاربران حاضر در این تالار: - و 4 مهمان


شما نمی توانید در این تالار موضوع جدید باز کنید
شما نمی توانید در این تالار به موضوع ها پاسخ دهید
شما نمی توانید در این تالار پست های خود را ویرایش کنید
شما نمی توانید در این تالار پست های خود را حذف کنید
شما نمی توانید در این تالار ضمیمه ارسال کنید

جستجو برای:
پرش به:  
cron
استفاده و نقل از مباحث سایت، فقط با ذکر منبع و لینک سایت میکرورایانه مجاز است.
Copyright © 2006 - 2010 MicroRayaneh - Powered by phpBB © phpBB Group
Valid CSS2 Valid XHTML 1.0
طراحی سایت : میکرو رایانه