حامی فایل

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

حامی فایل

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

دانلود مقاله اشنایی با میکرو کنترلر های AVR

اختصاصی از حامی فایل دانلود مقاله اشنایی با میکرو کنترلر های AVR دانلود با لینک مستقیم و پر سرعت .

 

 

مقدمه:
آشنایی با میکرو کنترلرهای :AVR

 

میکرو کنترلر : به آی سی هایی که قابل برنامه ریزی می باشد و عملکرد آنها از قبل تعیین شده میکروکنترلرگویند میکرو کنترل ها دارای ورودی - خروجی و قدرت پردازش می باشد.
بخشهای مختلف میکروکنترلر :
میکروکنترلر ها از بخشهای زیر تشکیل شده اند
Cpu واحد پردازش
Alu واحد محاسبات
I /O ورودی ها و خروجی ها
Ram حافظه اصلی میکرو
Rom حافظه ای که برنامه روی آن ذخیره می گردد
Timer برای کنترل زمان ها
و . . .

 

یک میکروکنترلر چگونه برنامه ریزی میشود: میکرو کنترلر ها دارای کامپایلرهای خاصی می باشد که با زبان های Assembly basic, c می توان برای آنها برنامه نوشت سپس برنامه نوشته شده را توسط دستگاهی به نام programmer که در این دستگاه ای سی قرار می گیرد و توسط یک کابل به یکی از در گاه های کامپیوتر وصل می شود برنامه نوشته شده روی آی سی انتقال پیدا میکند و در Rom ذخیره می شود .

 

 

 

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

 

بهره های کلیدی AVR :
دارای بهترین MCU برای حافظه فلش در جهان ! (MCU: Master Control Unit)
دارای سیستمی با بهترین هماهنگی
دارای بالاترین کارایی و اجرا در CPU (یک دستورالعمل در هر سیکل کلاک(
دارای کدهایی با کوچکترین سایز
دارای حافظه خود برنامه ریز
دارای واسطه JTAG که با IEEE 1149.1 سازگار است
(IEEE: Institute of Electrical and Electronics Engineers.)
دارای سخت افزار ضرب کننده روی خود
دارای بهترین ابزارها برای پیشرفت و ترقی
دارای حالات زیادی برای ترفیع دادن یا Upgrade
واژگان کلیدی AVR :
میکرو کنترلر AVR به منظور اجرای دستورالعملهای قدرتمند در یک سیکل کلاک(ساعت) به اندازه کافی سریع است و می تواند برای شما آزادی عملی را که احتیاج دارید به منظور بهینه سازی توان مصرفی فراهم کند. میکروکنترلر AVR بر مبنای معماری RISC (کاهش مجموعه ی دستورالعملهای کامپیوتر) پایه گذاری شده و مجموعه ای از دستورالعملها را که با 32 ثبات کار میکنند ترکیب می کند.
به کارگرفتن حافظه از نوع Flash که AVR ها به طور یکسان از آن بهره می برند از جمله مزایای آنها است. یک میکرو AVR می تواند با استفاده از یک منبع تغذیه 2.7 تا 5.5 ولتی از طریق شش پین ساده در عرض چند ثانیه برنامه ریزی شود یا Program شود. میکروهای AVR در هرجا که باشند با 1.8 ولت تا 5.5 ولت تغذیه می شوند البته با انواع توان پایین Low Powerکه موجودند.
راه حلهایی که AVR پیش پای شما می گذارد، برای یافتن نیازهای شما مناسب است:
با داشتن تنوعی باور نکردنی و اختیارات فراوان در کارایی محصولات AVR، آنها به عنوان محصولاتی که همیشه در رقابت ها پیروز هستند شناخته شدند.در همه محصولات AVR مجموعه ی دستورالعملها و معماری یکسان هستند بنابراین زمانی که حجم کدهای دستورالعمل شما که قرار است در میکرو دانلود شود به دلایلی افزایش یابد یعنی بیشتر از گنجایش میکرویی که شما در نظر گرفته اید شود می توانید از همان کدها استفاده کنید و در عوض آن را در یک میکروی با گنجایش بالاتر دانلود کنید.

 

خانواده های محصولات AVR :
Tiny AVR:
میکروهای مدل tiny توانایی های عظیمی دارند.به خاطر کوچک بودن و داشتن MCU بسیار پر قدرت به اینگونه میکروها نیاز فراوانی هست آنها به هیچ منطق خارجی نیاز نداشته و به همراه یک IC مبدل آنالوگ به دیجیتال و یک حافظه قابل برنامه ریزی EEPROM قابلیتهای خود را ثابت می کنند.
میکروکنترلری با اهداف کلی و با بیش از 4 کیلو بایت حافظه فلش و 128 بایت حافظه استاتیک و قابل برنامه ریزی است.(منظور از حافظه استاتیک SRAM و حافظه قابل برنامه ریزی EEPROM است).
نکات کلیدی و سودمند مدل Tiny :
• آنها به منظور انجام یک عملیات ساده بهینه سازی شده و در ساخت وسایلی که به میکروهای کوچک احتیاج است کاربرد فراوان دارند.
• کارایی عظیم آنها برای ارزش و بهای وسایل موثر است.

 

 

 

Mega AVR:
اگر شما به میکرویی احتیاج دارید که دارای سرعت و کارایی بالا باشد و توانایی اجرای حجم زیادی از کد برنامه را داشته و بتواند داده های زیادی را سروسامان دهد باید از AVR های مدل Mega استفاده کنید آنها به ازای هر یک مگا هرتز سرعت ، توانایی اجرای یک میلیون دستورالعمل در هر یک ثانیه را دارند همچنین قابل برنامه ریزی و بروزرسانی کدها با سرعت و امنیت بسیار بالایی هستند. این نوع میکروها قابلیت خود برنامه ریزی دارند و می توان آنها را بدون استفاده از مدارات اضافی برنامه ریزی کرد همچنین بیش از 256 کیلو بایت حافظه فلش و 4 کیلوبایت حافظه استاتیک و قابل برنامه ریزی دارند.
نکات کلیدی و سودمند مدل :Mega
• حافظه سریع از نوع فلش با عملکرد خود برنامه ریز و بلوکه ی بوت (Boot Block)
• دقت بسیار بالای 8-کانال در تبدیل آنالوگ به دیجیتال 10 بیتی
• USART و SPI و TWI بر طبق واسطه های سریال
• واسطه ی JTAG بر طبق IEEE 1149.1
TWI: Two Wire Interface is a byte oriented interface
USART: Universal Serial Asynchronous Receiver/Transmitter
SPI: Serial Peripheral Interface
JTAG available only on devices with 16KB Flash and up
واسط JTAG فقط در میکروهای با بیش از 16 کیلوبایت حافظه فلش موجود است.

 

 

 

 

 


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

 


میکرو کنترلر 8051:
اگربخواهیم به صورت کلی سیر پیشرفت این نوع میکروکنترلر را در نظر بگیریم اولین میکروکنترلر هایی که ساخته شد با جدیدترین میکروکنترلرهای 8051 که الان تولید می شود با توجه به پیشرفت شگفت که صنایع دیگر در دنیا دارند پیشرفت زیادی نکرده اند به طور مثال AT89S5X که میکروکنترلر 8051 ساخت جدید ATMEL است نسبت به مدل های اولیه 8051 پیشرفت آنچنانی ندارد . امکانات این میکرو نسبت به AVR و PIC قابل مقایسه نیست . به صورتی که که همین مدل جدید 8051 تقریبا حافظه ای برابر یک صدم (0.001 ) میکروکنترلر های AVR را دارد و سرعتش 4 برابر کمتر از میکروکنترلر های PIC و 12 بار کمتر از میکروکنترلر های AVR است . از لحاظ امکانات دیگر هم چنین ضعفی احساس میشود. اما برای کارهای ساده تر که پیچیدگی زیادی در آن نباشد به خاطر قیمت بسیار پایینی که این میکروکنترلر دارد بسیار مناسب است . قیمت مدل جدید AT89S5X حدود 1000 تومان است که قیمت بسیار مناسبی است.
این میکرو کنترلر از زبان اسمبلی و C پشتیبانی میکند که زبان برنامه نویسی اصلی آن اسمبلی است که واقعا نوشتن با این زبان برنامه نویسی نسبت به زبان های برنامه نویسی دیگر هم مشکل تر و هم طولانی تر است. در کل این میکروکنترلر امروزه دیگر توانای رقابت با AVR و PIC رو ندارد و امروزه رقابت اصلی بین این دو میکروکنترلر است .

 

میکروکنترلرPIC :
این خانواده از نظر امکانات مانند AVR میباشد و در کل صنعتی تر است . میکروکنترلر خیلی قوی است که بر اساس بعضی آمار ها بیشترین کاربر را به خود اختصاص داده است البته در ایران این آمار به نفع AVR است. این میکروکنترلر ساخت شرکت میکرو چیپ است که PIC رو در مدل های خیلی زیادی با امکانات مختلف برای کارهای مختلف میسازد . این میکروکنترلر با مدل های مختلفPIC16XXX و PIC12XXXX که به جای X دوم از چپ به راست حروف C ,X,E,F قرار میگیرد که هر کدام مفهوم خاصی دارد که X های بعدی هم اعدادی هستنند که نشان دهنده مدل های مختلف هستنند .
میکروکنترلرAVR:
این خانواده از میکرو کنترلرها تمامی امکانات 8051 را دارا می باشد و امکاناتی چون ADC مبدل آنالوگ به دیجیتال نوسان ساز داخلی و قدرت و سرعت بیشتر و( – EEPROM حافظه) از جمله مزایای این خانواده می باشد.
.اول از همه سرعت این میکروکنترلر بسیار بالاست و دستوراتی که به آن داده می شود را در یک سیکل کلاک انجام میدهد در صورتی که این سیکل کلاک برای 8051 باید تقسیم بر12شودو برای PIC باید تقسیم بر 4 بنابراین AVR سریعترین میکروکنترلر موجود در بازار است . AVR از زبان های برنامه نویسی سطح بالا یا به اصطلاح (HIGH LEVEL LANGUAGE) HLLپشتیبانی می کند که باعث تولید کدهای بیشتری می شود که در کل برنامه نوشته شده نسبت به برنامه هایی که برای 8051 و PIC نوشته می شود کوتاهتر است. امکانات جانبی این میکروکنترلر بسیار مناسب است و شما را از خرید بعضی لوازم جانبی مانند چیپ های آنالوگ به دیجیتال (ADC) , مقایسه گر آنالوگ و... راحت میکند.
در ضمن AVR از بسیاری از استاندارد های ارتباطی مانند SPI,UART,12C,JTAG پشتیبانی میکند که به راحتی میتوان این میکروکنترلر را با میکروکنترلر دیگر یا به وسایل دیگر به راحتی وصل کرد. قیمت این میکروکنترلر هم به نسبت امکانات فراوانی که داره بسیار پایین است به طوری که یک میکروکنترلر AVR تقریبا پیشرفته رو با قیمت حول و حوش 3 تا 4 هزار تومان خرید .
شرکت 5 Atmel میکروکنترلر 8 بیتی AVR جدید با توان مصرفی بسیار پایین برای استفاده در مدارات با تعداد کدهای بالا و اینترفیسینگ زیاد عرضه نموده است.
این میکروکنترلر ها با نام های ATmega640، ATmega1280، ATmega2560، ATmega1281، ATmega2561 عرضه شده است و دارای 64 تا 256 کیلو بایت flash و 8 کیلو بایت RAM به صورت داخلی می باشد.
این میکروهای جدید مدارات جانبی میکروها را با توجه به مدارات داخلی خود کاهش داده است که از آن جمله می توان به وجود یک اسیلاتور RC 8مگا هرتزی در داخل خود که باعث حذف اسیلاتور خارجی گشته است را نام برد؛ از دیگر قابلیت های جالب این میکرو مصرف بسیار پایین آن می باشد این میکرو که با 1.5 ولت کار می کند در حالت power down تنها 100 نانو آمپر مصرف می کند که باعث افزایش عمر باتری خواهد شد..مدل 100 پین این میکرو ها داراری 4 کانال UART و 16 عدد A/D می باشد.

 

فیوز بیت ها، منابع کلاک وReset

 

فیوز بیت ها
فیوز بیت ها قسمتی از حافظه ی میکروکنترلرAVRهستند که امکاناتی را در اختیار کاربر قرار می دهند و باErase شدن میکرو مقدار آن ها تغییر نمی کند. یک به معنی غیر فعال بودن و صفر فعال بودن هر بیت می باشد. قطعه ی mega 16 دارای 2 بایت فیوز بیت طبق جدول زیر می باشد:

 

 

 

 

 

:BOOTRSTانتخاب برداری است BOOT که در حالت پیش فرض برنامه ریزی نشده است و آدرس
برداری است0000 است و در صورت برنامه ریزی آدرس بردار Resetطبق جدول زیر تعیین می
شود) براساس(BOOTSZ [1,0]

:BODEN این بیت فعال ساز Brown-out Detector بوده و در صورت پروگرام شدن مطابق وضعیت جدول زیر سطح ولتاژ Brown-out تعیین می شود.

 

 

 

 

 


منابع کلاک
همانطور که در دیاگرام زیر دیده می شود، این منابع شامل: اسیلاتور RC کالیبره شده، اسیلاتور کریستالی فرکانس پایین، اسیلاتور کریستالی، کلاک خارجی، اسیلاتور RC خارجی و اسیلاتور تایمر/کانتر می باشند.

 

انتخاب منبع کلاک بوسیله ی فیوزبیت های CKSEL بوده و مطابق جدول زیر می باشد. مقدار پیش فرض بیت های , CKSEL یک بوده و در نتیجه منبع پیش فرض، اسیلاتور RC داخلی می باشد.

 

 

 

کلاک خارجی : برای راه اندازی وسیله بوسیله ی منبع کلاک خارجی باید مطابق شکل زیر یک پالس به پین XTAL1 اعمال می شود.برای قرار گرفتن در این وضعیت باید تمام بیت های CKSEL پروگرام شده (صفر شوند (و کاربر می تواند با پروگرام کردن فیوزبیت CKOPTیک خازن داخلی به ظرفیت 36 پیکوفاراد را بین ورودی وزمین قرار دهد.

 

اسیلاتور RCکالیبره شده ی داخلی: این منبع در فرکانس های 1و2و4و8 مگاهرتز موجود می باشد و مقدار آن در دمای 25 درجه و ولتاژ 5 ولت کالیبره شده است که در این وضعیت ممکن است تا 3 درصد در کلاک ایجاد شده وجود داشته باشد . فرکانس نوسان بوسیله ی فیوزبیت های CKSEL تعیین شده و مطابق جدول زیر می باشد. در این وضعیت CKOPT نباید پروگرام شود.

 

 

 


اسیلاتور RC خارجی :
در کاربردهایی که دقت کلاک اهمیت زیادی ندارد می توان از این منبع استفاده کرد .پیکربندی مطابق شکل زیر بوده و فرکانس نوسان از رابطه ی بدست می آید . حداقل مقدار Cبرابر22 پیکوفاراد بوده و در صورتی که CKOPT پروگرام شود می توان مقدار 36 پیکوفاراد را نیز لحاظ نمود.

 

 

 

این منبع نوسان می تواند در چهار MODEکاری عمل کند که هر کدام برای یک بازه ی فرکانسی بهینه شده است و بوسیله ی فیوزبیت های CKSEL مطابق جدول زیر انتخاب می شود.

 

 

 

اسیلاتور کریستالی فرکانس پایین: این منبع کلاک می تواند کریستال های فرکانس پایین مثل کریستال ساعت با فرکانس 32768 هرتز باشد با دادن مقدار 1001 به فیوزبیت های CKSEL. منبع کلاک کریستال خارجی فرکانس پایین انتخاب شده و در این وضعیت پیکربندی مطابق شکل زیر می باشد. در صورت پروگرام نمودن CKOPT می توان از خازن خارجی صرفنظر نمود.

 

 

 

کریستال کوارتز یا رزوناتور سرامیکی : پبن های XTAL1 و XTAL2 به ترتیب ورودی و خروجی یک تقویت کننده ی وارونگر هستند که می توانند به عنوان یک اسیلاتورOn-chip مطابق شکل زیر پیکربندی شوند.

 


• به جای کریستال کوارتز می توان از رزوناتور سرامیکی استفاده نمود که از دوام بیشتری در مقابل ضربه بر خوردار است و زمان STARTUP کمتری نیز دارد و البته نسبت به کریستال کوارتز دقت کمتری داشته و پایداری دمایی آن نیز کمتر است.
• در این وضعیت خازن های 36 پیکو فاراد حذف شده و عملکرد فیوزبیت CKOPT نیز تغییر می کند . بدین ترتیب که با پروگرام شدن این بیت دامنه ی خروجی تقویت کننده ی وارونگر افزایش یافته و می توان از پین XTAL2 به عنوان کلاک برای یک وسیله ی دیگر استفاده نمود. همچنین با فعال کردن CKOPT در محیط های نویزی عملکرد اسیلاتور بهبود می یابد.
• چنانچه از رزوناتور استفاده می شود برای فرکانس های بالاتر از 8 مگاهرتز باید CKOPT پروگرام شود.اسیلاتور می تواند در سه وضعیت متفاوت نوسان کند که هرکدام برای یک محدوده ی فرکانسی بهینه شده است و آن را می توان با فیوز بیت های CKSEL مطابق جدول زیر انتخاب نمود.

 


با هر یک از منابع کلاک انتخاب شده بوسیله ی فیوزبیت های ,CKSELدو بیت به نام های [1,0] SUT نیز وجود دارد که از طریق آن می توان حداکثر زمان Start-up منبع کلاک را به میکرو اعلام نمود . مقدار این بیت ها به طور پیش فرض ماکزیمم زمان Start-up را در نظر می گیرد و در صورتی که نیاز است مقدار آن را تغییر دهید مطابق جداول مربوطه در فصل System Clock and Clock Options در Datatsheet عمل کنید.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

منابع RESET
با Reset شدن میکروکنترلر، تمام رجیسترهای I/O به مقدار اولیه شان تغییر می کنند و CPU شروع به اجرای دستورالعمل ها از بردار Reset خواهد کرد. در قطعه ی 5 Mega 16 منبع Reset وجود دارد که عبارتند از:

 


1. Power-on Reset
2. External Reset
3. Brown-out Reset
4. Watchdog Reset
5. JTAG AVR Reset

 


منطق Reset مطابق دیاگرام زیر می باشد:

 

 

 

مشخصات هر یک از منابع Reset را در جدول زیر مشاهده می کنید:

 

 

 


Power-on Reset .1 : زمانی فعال خواهد که ولتاژ Vcc کمتر از حد تعیین شده باشد. این منبع تضمین می کند که وسیله در زمان راه اندازی Reset می شود . با رسیدن ولتاژ به حد آستانه ، شمارنده ی تاخیر راه اندازی شده که تعیین می کند چه مدت وسیله در وضعیت Reset بماند . دیاگرام زمانی زیر شرایطی را نشان می دهد که پین RESET به Vcc وصل شده است. (و یا آزاد باشد چون این پین از داخل Pull-up شده است).

 



و نمودار زیر شرایطی است که سطح منطقی پین Reset تابع Vcc نمی باشد:

 

 

 

External Reset .2: این Reset بوسیله ی یک پالس با سطح صفر منطقی روی پین Reset ایجاد شده و حداقل عرض آن 1,5 میکرو ثانیه می باشد . با رسیدن ولتاژ این پین به مقدار آستانه در لبه بالا رونده، شمارنده ی تاخیر شروع به کار کرده و پس از اتمام زمان Time-out میکروکنترلر کار خود را شروع خواهد کرد.

 

 

 

Brown-out Detection .3: قطعه ی ATMega 16 دارای یک مدار Brown-out Detection داخلی بوده که پیوسته مقدار ولتاژ Vcc را با یک مقدار ثابت مقایسه می کند . این مقدار ثابت برابر 2,7 ولت بوده و در صورتی که فیوزبیت BODLEVEL پروگرام شود به 4,0 ولت افزایش می یابد . با کمتر شدن ولتاژ تغذیه از این مقدار ثا بت میکروکنترلر وارد حالت Reset شده و با عادی شدن ولتاژ ، پس از اتمام تاخیر به وضعیت عادی باز می گردد .
برای حفاظت در برابر Spike مقدار آستانه دارای پسماند بوده و در نتیجه دارای دو مقدار مثبت و منفی می باشد که با توجه به مقادیر موجود در جدول از رابطه ی و بدست می آید.
مدار Brown-out Detection در حالت عادی غیر فعال بوده و برای راه اندازی آن باید فیوزبیت BODEN پروگرام (صفر) شود.

 

 

 

Watchdog Reset .4 : با اتمام زمان تایمر Watchdog ،تایمر یک پالس به عرض یک سیکل ایجاد خواهد کرد . در لبه ی پایین رونده ی این پالس، تایمر تاخیر شروع به شمارش زمان تاخیر کرده و پس ازاتمام آن میکروکنترلر کار عادی خود را ادامه خواهد داد.

 

 

 

 

 

 

 

MCU Control and Status Register

 

 

 

این رجیستر محتوی اطلاعاتی است که نشان می دهد کدامیک از منابع Reset باعث راه اندازی مجدد CPU شده است. نرم افزار پس از خواندن هر بیت باید با نوشتن صفر بر روی آن، پرچم را پاک کند تا در صورت Reset مجدد، وقوع آن قابل تشخیص باشد.

 


Bit 0 – PORF: Power-on Reset Flag
Bit 1 – EXTRF: External Reset Flag
Bit 2 – BORF: Brown-out Reset Flag
Bit 3 – WDRF: Watchdog Reset Flag
Bit 4 – JTRF: JTAG Reset Flag

 

SPI Bus

 

SPI که یک استاندارد سریال سنکرون می باشد سرنام Serial Peripheral Interface بوده و بوسیله شرکت موتورولا طراحی شده است . این استاندارد به لحاظ پشتیبانی از سرعت های بالا نه تنها در کاربردهای اندازه گیری بلکه در مواردی نظیر انتقال حجم بالای اطلاعات ، پردازش سیگنال دیجیتال، کانال های ارتباطی و ... نیز مورد استفاده واقع می شود . سرعت چند مگابیت بر ثانیه به راحتی توسط SPI قابل دسترسی است و در نتیجه امکان انتقال صوت فشرده نشده و تصویر فشرده شده وجود خواهد داشت.
در زیر لیست برخی از وسایل SPI آورده شده است:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


نحوه عملکرد SPI
این استاندارد برای ایجاد یک ارتباط به چهار خط ارتباطی نیاز دارد:

 

 

 

همانطور که ملاحظه می شود این چهار خط ,SCK ,MOSI ,MISO SS بوده که به ترتیب خط کلاک، ,Master out slave in ,Master in slave out ,Slave Select می باشند . نحوه ی تعامل Master و Slave در شکل زیر نشان داده شده است:

 

 

 

سیستم شامل دو Shift Register و یک مولد کلاک می باشد. Master با صفر کردن خط SS از slave مورد نظر ، چرخه ی ارتباطی را آماده می کند.Master و Slave داده ی مورد نظر برای ارسال را در Shift Register قرار داده و Master با ایجاد کلاک در خط SCK مبادله ی داده را آغاز می کند . اطلاعات از پین MOSI در Master خارج شده و وارد پین MOSI درSlave می شود . در طرف Slave نیز داده از پین MISO خارج شده و وارد MISO از Master می شود . بعد از اتمام ارسال یک ,Packet مجددا خط SS توسط Master یک شده و بدین ترتیب Slave با Master سنکرون می شود.

 

رجیسترهای SPI
ماژول SPI دارای سه رجیستر ,SPDR,SPSR وSPCR بوده که به ترتیب رجیسترهای داده، وضعیت و کنترل می باشند.

 

SPI Data Register

 

 

 

نوشتن بر روی این رجیستر شروع انتقال داده را موجب خواهد شد و خواندن آن موجب خواندن داده ی موجود در بافر دریافت خواهد شد.

 

SPI Status Register

 

 

 

:Double SPI Speed Bit با نوشتن یک بر روی این بیت در صورتیکه ماژول SPI در وضعیت Master باشد فرکانس کلاک موجود روی پین SCK دو برابر خواهد شد.

 

:Write COLlision Flagاین پرچم زمانی یک خواهد شد که در حین انتقال یک بایت بر روی رجیستر SPDR مقداری نوشته شود. با اولین خواندن رجیستر SPSR این بیت پاک می شود.
:SPI Interrupt Flag این بیت در دو حالت یک می شود: 1. با اتمام ارسال یک بایت این پرچم یک شده و در صورتی که بیت SPIE و فعال ساز عمومی وقفه ها یک باشند اتمام عملیات می تواند باعث ایجاد یک وقفه شود. 2. پین SS از خارج توسط یک وسیله ی دیگر زمین شود، این به معنای از دست د ادن حاکمت باس بوده و این وضعیت با یک شدن بیت SPIF اعلام می شود . با اجرای ISR یا خواندن رجیستر وضعیت این بیت پاک می شود.

 

SPI Control Register

 

 

 


:SPI Clock Rate Select 1 and 0 این دو بیت نرخ کلاک SCK را که Master ایجاد می کند مطابق جدول زیر تعیین می کنند.

 

 

 

Clock Phase و Clock Polarity : این دو بیت مطابق جدول زیر زمان بندی انتقال و دریافت داده روی باس SPI را تعیین می کنند:

 

 

 

 

 


Master/Slave Select: با یک کردن این بیت ماژول SPI در وضعیت Master قرار می گیرد.
:Data Order با یک بودن این بیت ابتدا MSB روی باس منتقل می شود و در صورت صفر بودن ابتدا LSB.
:SPI Enable بیت فعال ساز SPI
:SPI Interrupt Enable بیت فعال ساز وقفه ی SPI

 

نحوه ی انتقال داده در SPI
وقتی ماژولSPI به عنوان Master پیکربندی شده است خط SS را بصورت خودکار کنترل نمی کند و این وظیفه باید توسط نرم افزار، قبل از آغاز یک چرخه ی ارتباطی انجام شود . پس از صفر کردن ,SSنوشتن یک بایت در رجیستر داده (SPDR) باعث ایجاد کلاک توسط واحد تولید کلاک خواهد شد و با هر پالس ، داده ی موجود در Shift Register های Master و Slave یک بیت شیفت داده شده و پس از 8 پالس ساعت پرچم SPIF به نشانه ی اتمام ارسال یک می شود . پس از این Masterمی تواند برای ارسال بایت بعدی آن را در SPDR نوشته و یا به نشانه ی اتمام ارسال خط SS را یک نگاه دارد.

 

 

 

در نقطه ی مقابل زمانیکه ماژول SPI در نقش Slave پیکربندی شده است، مادامیکه خط SS یک است پین MISO در وضعیت tri-stated می باشد . در این شرایط ممکن است که رجیستر SPDR توسط Slave بروز شود اما تا زمانی که خط SS توسط Master صفر نشود انتقال انجام نخواهد شد . پس از Low شدن SS و اتمام دریافت یک بایت پرچم SPIF یک شده و در صورت یک بودن SPIF و بیت و ,I این رویداد می تواند باعث ایجاد وقفه شود . پس از این ممکن است Slave داده ی جدیدی را در SPDR قرار دهد منتها باید قبل از آن داده ی دریافتی را بخواند.

 

ارتباط شبکه ای در SPI
مطابق تصویر زیر با استفاده از پین SS می توان تعدادی Slave را کنترل نمود.Master باید تنها پین SS Slave, ای را که می خواهد با آن ارتباط برقرار کند صفر کند و بقیه را یک نگه دارد.

 

 

 

 

 

 

 

برنامه فرستنده:

 

'IN THE NAME OF GOD'
'NAME PROJECT:FERESTADAN ETELAAT BE VASILE 2 MICRO VA NAMAYESH ON ROYE LCD'
'DESIGN BY:hamed.moniri@Gmail.com'
'moarefi chip mored estefade'
$regfile = "M32def.dat"

 

 

فرمت این مقاله به صورت Word و با قابلیت ویرایش میباشد

تعداد صفحات این مقاله 41   صفحه

پس از پرداخت ، میتوانید مقاله را به صورت انلاین دانلود کنید


دانلود با لینک مستقیم


دانلود مقاله اشنایی با میکرو کنترلر های AVR
نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد