تبلیغات
بچه های برق دانشگاه آزاد کازرون - میكرو كنترلر AVR
قالب وبلاگ قالب وبلاگ

بچه های برق دانشگاه آزاد کازرون
 

آپلود عکس رایگان و دائمی
 

اشتراک و ارسال مطلب به:

نوشته شده در تاریخ پنجشنبه 20 بهمن 1390 توسط مجتبی جباری

میكرو كنترلر AVR

ویژگیها
* قابلیت دوباره برنامه ریزی كردن بدون احتیاج به اجزای خارجی
* 128 بایت كوچك كه به صورت فلش سكتور بندی شده اند
* داشتن مقدار متغیر در سایز بلوكه ی بوت (Boot Block)
* خواندن به هنگام نوشتن
* بسیار آسان برای استفاده
* كاهش یافتن زمان برنامه ریزی
* كنترل كردن برنامه ریزی به صورت سخت افزاری

راههای مختلف برای عمل برنامه ریزی:

موازی یا Parallel :

* یكی از سریعترین روشهای برنامه ریزی
* سازگار با برنامه نویس های(programmers) اصلی


خود برنامه ریزی توسط هر اتصال فیزیكی:

* برنامه ریزی توسط هر نوع واسطه ای از قبیل TWI و SPI و غیره
* دارا بودن امنیت صد درصد در بروزرسانی و كدكردن

ISP:

* واسطه سه سیمی محلی برای بروزرسانی سریع
* آسان و موثر در استفاده



واسطه JTAG :

* واسطه ای كه تسلیم قانون IEEE 1149.1 است و می تواند به صورت NVM برنامه ریزی كند یعنی هنگام قطع جریان برق داده ها از بین نروند.استفاده از فیوزها و بیتهای قفل.
* بیشتر برای دیباگ كردن آنچیپ و به منظور تست استفاده می شود


مقایسه avr با 8051


AVR از معماری RISC با تعداد دستورالعمل بالا بهره میبره كه دربین میكروها كم نظیر هست. اكثر دستورالعمل های آن باوجود زیاد بودن تعداد دستورالعملها در یك سیكل انجام میشه.

این میكرو از مدهای كاهش توان به خوبی بهره برده و تایید كننده آن زیاد بودن مدهای كاهش توان آن و استفاده از تقسیم كلاك به صورت نرم افزاری است كه در كمتر میكرویی دیده میشه.

AVR حتی برعكس میكروهای دیگه هیچ تقسیم كلاكی انجام نمیده(مثلا 8051 كلاك رو بر 12 و PIC كه یه میكرو قدرتمند هست كلاك رو بر 4 تقسیم میكنه). این امر كه AVR كلاك رو تقسیم نمیكنه موجب كاهش مصرف انژی و افزایش MIPS شده.

تكنولوژی بكار رفته در AVR موجب شده كه حتی میتوان از آن در محیط های صنعتی و پر نویز براحتی از آن استفاده كرد(به گفته خود ATMEL والا هنوز خودم یه تست دقیق انجام ندادم ولی اون رو با یه فیبر یه رو و با یه كابل LCD تقریبا 20 سانتی و یا استفاده از باتری ماشین در كنار شمع پیكان غیر انژكتوری تست كردم ولی فقط در فاصله تقریبا 5-6 سانتی از اون صفحه LCD قاتی میكرد ولی نمیدونم میكرو هم ریست میشد یا نه .
در ضمن قسمت تغذیه فقط از یك 7805 تشكیل شده بود. و این آزمایش هم برای خودم و هم برای چند تا از دوستانم كه كارهای صنعتی انجام میدادن شگفت آور بود). اما به دلیل اینكه هنوز هیچ كسی اون رو تابه حال در محیط صنعتی تست نكرده و به دلیل اطمینان بالای PIC هیچ كسی دوست نداره اعتبار خودش رو به خطر بندازه.
یه جا یه مهندسه میگفت توی یه محط صنعتی كه حتی كامپیوتر ریست میكرده PIC به خوبی كار خودشو انجام میداده!!!!!!!!!!

در ضمن AVR مجهز به آخرین امكانات مثل تایمر واچ داگ و برون اوت دیتكتور و مبدل های ADC و PWM است.
یكی از مهمترین بخشی كه كمتر در هر میكرویی دیده میشه مقایسه كننده آنالوگ با گین 1 و 10 و 200 و .. است كه بسته به میكرو فرق میكنه.

این مقایسه كننده میتونه تو ورودی مبدل ADC قرار بگیره . این بخش برای بعضی طراحان خیلی مهمه و اونا رو مجذوب خودش كرده.


خانواده میكروكنترلرهای AVR شامل طیف گسترده ای از آی سی ها است كه از 8 پایه شروع و به 64 پایه ختم می شود. اما در بین این طیف گسترده تعدادی استفاده عمومی تری دارند مانند ATMEGA32 . كه در تمام مثالهای آورده شده از این آی سی استفاده شده است .

برنامه ای كه برای میكروكنترلر در كامپیوتر نوشته میشود وقتی كه برای استفاده در آی سی ریخته میشود ( توسط پروگرامر مخصوص آن خانواده ) در مكانی از آن آی سی ذخیره خواهد شد بنام ROM . حال در ATMEGA32 مقدار این حافظه به 32KB ( 32 كیلوبایت ) میرسد .

در این آی سی مكانی برای ذخیره موقت اطلاعات یا همان RAM هم وجود دارد كه مقدارش 2KB است .
در RAM اطلاعات فقط تا زمانی كه انرژی الكتریكی موجود باشد خواهد ماند و با قطع باتری اطلاعات از دست خواهند رفت . به همین منظور در ATMEGA32 مكانی برای ذخیره اطلاعات وجود دارد كه با قطع انرژی از دست نخواهند رفت . به این نوع حافظه ها EEPROM گفته میشود كه در این آی سی مقدارش 1KB است و تا 100,000 بار میتواند پر و خالی شود .
نرم افزار مورد نیاز برای برنامه نویسی :

LCD :
در كل دو نوع LCD وجود دارد . یكی از آنها را LCD كاركتری گویند كه فقط قابلیت نمایش حروف و اعداد و كاركترهایی همچون ؟ و ! و غیره را دارد و نوع دیگر LCD گرافیكی است كه قابلیتهای LCD گرافیكی بعلاوه ی نمایش تصویر در آن جمع شده اند . هدف ما در اینجا كار با LCD كاركتری خواهد بود .

معرفی LCD كاركتری :
LCD های كاركتری خود به چند نوع دیگر از لحاظ اندازه تقسیم بندی میشوند . كه از LCD هایی با 1 سطر و 1 ستون آغاز میشوند تا اندازهایی مثل 4 سطر و 40 ستون كه البته تمام آنها از 16پایه تشكیل شده اند.


برای راه اندازی LCD توسط AVR نیازی به دانستن جزئیات طرز كار LCD نیست . برای كار با LCD علاوه بر پایه های تغذیه و CONTRAST ( تنظیم روشنایی ) كه باید مانند شكل مداری پایین بایاس شوند نیاز به 6 پایه ی دیگر است كه عبارتند از پایه های :
RS , E , DB4 , DB5 , DB6 , DB7 .

تحلیل برنامه :

1:برای تعیین نوع LCD از كلمات كلیدی Config و بعد از آن Lcd استفاده شده و آنها را مساوی نوع LCD مورد استفاده قرار میدهیم كه در اینجا نوع مورد استفاده دارای 2 سطر و 16 ستون میباشد. پس بصورت زیر خواهیم نوشت :
Config Lcd = 16*2

2: در مرحله ی بعد ترتیب وصل كردن پایه ها را معرفی خواهیم كرد و برای اینكار پایه هایی از LCD را كه برای راه اندازی آن استفاده میشود و قبلا نیز گفته شده بود را مساوی پایه هایی از میكروكنترلر قرار میدهیم كه میخواهیم به آنها وصل شود و البته این نوع راه اندازی توسط AVR را كه تنها با شش پایه صورت میگیرد را نوع راه اندازی PIN میگویند . پس طبق سخت افزار نشان داده شده بصورت زیر خواهیم نوشت :
Config Lcdpin = pin , Rs = porta.0 , e = porta.1 , db4 = porta.2 , db5 = porta.3 , db6 = porta.4 , db7 = porta.5
( به علامت , بین بخشها دقت كنید . )

3: بعد از انجام كارهای بالا كه جزو بخش معرفی سخت افزار محسوب میشوند به سراغ برنامه اصلی میرویم كه كار آن نمایش متن روی LCD است و برای انجام اینكار از كلمه كلیدی LCD و در جلوی آن متنی كه باید نمایش داده شود استفاده میكنیم و باید توجه داشت كه متن را باید داخل كوتیشن قرار داد .

4: در انتهای برنامه نیز END را مینویسیم .

نحوه ی كامپایل برنامه و پروگرام كردن IC

كامپایل برنامه نوشته شده :
بعد از نوشتن برنامه باید آنرا كامپایل كرد تا اگر اشتباهی در تایپ كلمه ای وجود داشته باشد برای اصلاح آن اخطار داده شود و فایلهای از جمله فایل هگز كه برای پروگرام كردن نیاز است ابجاد گردند . برای كامپایل برنامه همانطور كه در تصویر بخش اول نمایش داده شده است باید از دكمه ی F7 استفاده كرد . با انجام اینكار برنامه ی ما كامپایل خواهد شد .
پروگرام كردن IC :
بعد از كامپایل برنامه نوبت به آن رسیده است كه با نحوه ریختن برنامه داخل IC یا باصطلاح پروگرام كردن آشنا شوید . پس نیاز است كه یك دستگاه پروگرامر مختص به خانواده AVR داشته باشید . برای پروگرام كردن میكروكنترلرهای خانواده AVR انواع مختلفی پروگرامر كه از استانداردهای خاصی پیروی میكنند وجود دارد كه مصرف عمومی تر را پروگرامهای نوع STK200/300 دارند كه البته دارای مدار بسیار ساده ایست و برای پروگرام كردن از كابل LPT ( پرینتر ) استفاده میكند و در بازار هم بیشتر این نوع پروگرامر یافت میشود .
هنگامیكه میخواهیم كار پروگرام كردن را شروع كنیم ابتدا باید پروگرامر را به كامپوتر وصل نموده و بعد از توسط محیطی از نرم افزار Bascom AVR نوع آنرا برای كامپیوتر معرفی كنیم ( اینكار فقط یكبار انجام شود كافیست ) . برای شناساندن پروگرامر به كامپیوتر از منوی Option گزینه Programmer را انتخاب میكنیم :

بعد از انتخاب این گزینه كادر نمایش داده شده كه در قسمت نمایش داده شده توسط خط قرمز نوع پروگرامر را انتخاب میكنیم :
بعد از انجام تنظیمات بالا میتوان آی سی را پروگرام كرد . به این صورت كه
گزینه Program را انتخا ب میكنیم . بعد از انتخاب این گزینه كادر زیر باز خواهد شد كه با كلیك روی آیكون مربوط آی سی پروگرام میشود .
همچنین دستگاههایی برای تست برنامه نوشته شده وجود دارند كه روی آنها تمام وسایل مورد نیاز مانند LCD و Keypad و ... قرار دارد و كاربرمیتواند با سیم بندی ای كه براحتی توسط كابلهای مخصوصی انجام میدهد پورتهای آی سی را به سخت افزارهای جانبی اتصال دهد و برنامه خود را مورد آزمایش قرار دهد . به این دستگاهها Emulator میگویند.
حال میخواهیم طرز نوشتن برنامه برای میكروكنترلرهای خانواده ی AVR را شروع كنیم . پس برای اینكار نیاز به یك نرم افزار داریم كه بتوانیم در آن برنامه ی خود را بنویسیم . یكی از نرم افزارهای قدرتمند برای انجام دادن اینكار نرم افزاریسیت بنام Bascom AVR . در این نرم افزار همانطور كه از نامش معلوم است برنامه باید بزبان Basic كه زبانی با سطح بالا (HLL) است نوشته شود . همچنین این نرم افزار دارای شبیه ساز داخلی برای تست كردن برنامه نوشته شده است كه یكی از ویژگیهای این نرم افزار میباشد .

تحلیل برنامه

حال به توضیح تك به تك قسمتها میپردازیم :

1:در قسمت معرفی آی سی از كلمه كلیدی $Regfile برای معرفی استفاده شده است . این دستور به این صورت است كه باید بعد ازآن كلمه معرف آی سی مورد استفاده را در جلوی آن وارد كنیم . البته برای هر آی سی كلمه ی مخصوصی وجود دارد كه برای ATMEGA32 باید كلمه ی M32def.dat را تایپ كرد . البته باید توجه داشت كه این كلمه باید داخل یك جفت كوتیشن ( گ Shift ) قرار گیرد :
$Regfile = "M32def.dat"

2: در قسمت بعدی كه تعیین فركانس كاری است كلمه كلیدی $Crystal باید نوشته شود و آنرا باید مساوی با فركانس كار بر حسب هرتز قرار داد :
$Crystal = 1000000

3: حال به بخش معرفی سخت افزار رسیدیم . در این برنامه چون پورت B باید بتواند جریان بیرون دهد و سخت افزار خارجی ای كه همان LED است را روشن كند بعنوان خروجی تعریف میشود . همیشه برای معرفی سخت افزار از كلمه كلیدی Config اسفاده میشود . پس برای خروجی كردن پورت B مینویسیم :
Config Portb = output

4: چون در این برنامه نیازی به تعریف متغیری نبود به بخش برنامه اصلی میرویم و در این قسمت عددی را به پورت B خواهیم فرستاد تا طبق آن LED ها روشن شوند . البته ذكر این نكته لازم است كه اگر بخواهیم عددی را در مبنای دودویی بنویسیم ابتدا باید &B را نوشته و بعد ععد مورد نظر را تایپ كنیم و همینطور برای نوشتن در مبنای هگز كه &H تایپ میشود و اگر هیچكدام از كلمات ذكر شده را ننویسیم عدد در مبنای دسیمال محسوب میشود .

5: در آخر برنامه نیز از كلمه كلیدی END برای مشخص نمودن پایان برنامه استفاده شده است .

مقایسه ما با تمام میكروهای 8 بیتی هست یعنی در مجموع میشه گفت AVR یه رقیب قدرتمند برای بقیه میكروهای قوی است و یه انقلاب بزرگ هم به شمار میره. هنوز هیچ میكرویی به سرعت بالای AVR در محاسبات دست پیدانكرده .در ضمن AVR قادره كه محاسبات 16 بیتی رو هم انجام بده. شهار ATMEL هم اینكه شما پول یه میكرو 8 بیتی رو میدید ولی میتونید از قایلیتهای یك میكرو 16 بیتی استفاده كنید.




طبقه بندی: مقالات برق، 
.: Weblog Themes By Pichak :.


شرکت کوشا الکام پارس نماینده رسمی اینترنت پرسرعت شاتل در کازرون * سرعت فوق العاده * ادرس:چهار راه بانک ملی مجتمع تجاری کوثر واحد 1 * تلفن:11-2219410

اللّهُمَّ كُنْ لِوَلِیِّكَ الْحُجَّةِ بْنِ الْحَسَنِ صَلَواتُكَ عَلَیْهِ وَعَلى آبائِهِ فی هذِهِ السّاعَةِ وَفی كُلِّ ساعَةٍ وَلِیّاً وَحافِظاً وَقائِدا ‏وَناصِراً وَدَلیلاً وَعَیْناً حَتّى تُسْكِنَهُ أَرْضَك َطَوْعاً وَتُمَتِّعَهُ فیها طَویلاً

Google

در این وبلاگ
در كل اینترنت

دریافت کد قلب دنبال موس
تمامی حقوق این وبلاگ محفوظ است
قالب وبلاگقالب وبلاگ
تحلیل آمار سایت و وبلاگ