جلسه42
رباتیک والکترونیک روبواچ پیRoboHp
رباتیک والکترونیک

 به نام خدا
با عرض سلام خدمت دوستان عزيز
در مورد ميكروكنترلر‌هاي AVR در جلسات گذشته توضيحات مفصلي داده شده است و دوستان تا حد خوبي با اين خانواده از ميكروكنترلر‌ها آشنا شده‌اند، اما اين آشنايي براي انجام پروژه‌هاي حرفه‌اي‌تر كافي نيست و مطالب بسيار گسترده‌ي ديگري هم در مورد اين خانواده از ميكروكنترلرها وجود دارد كه هنوز مطرح نشده‌اند، ولي اهميت بسيار زيادي دارند. از اين رو ما سعي مي‌كنيم در خلل كار، مجدداً جلساتي را به مباحث مرتبط با AVR اختصاص دهيم تا خلأ موجود در اين بخش را به تدريج برطرف كنيم.
در اين جلسه به موضوع انواع حافظه در ميكروكنترلرهاي مي‌پردازيم.
با نحوه‌ي پروگرام كردن ميكرو كنترلر در جلسه‌ي 27 آشنا شديد. همان‌طور كه مي‌دانيد، اطلاعاتي كه در مرحله‌ي پروگرام كردن به ميكروكنترلر منتقل مي‌شود، با خاموش كردن سيستم(يعني قطع جريان برق ميكروكنترلر)، از بين نمي‌رود و نيازي نيست براي هر بار استفاده از ميكروكنترلر مجدداً آن را پروگرام كنيم، و تا زمانيكه برنامه‌ي پروگرام شده روي ميكروكنترلر توسط كاربر Erase نشود، آن برنامه پاك نخواهد شد. اين نوع حافظه را «حافظه‌ي غير فرّار» مي‌گوييم، در اين نوع حافظه اگر جريان برق قطع هم شود اطلاعات از بين نخواهند رفت. مثال ديگر اين نوع حافظه‌ها، هارد ديسك كامپيوتر‌هاي شخصي خانگيست.
نوع ديگر حافظه‌ها، حافظه‌هاي «فرّار» نام دارند، در اين نوع، با قطع جريان برق، اطلاعات هم از بين مي‌روند. مثال آن حافظه‌ي RAM در كامپيوتر‌هاي شخصي خانگيست.
در ميكروكنترلر‌هاي AVR چند  نوع حافظه وجود دارد كه در زير به اختصار در مورد هر يك آن‌ها توضيح مي‌دهيم.


حافظه‌ي FLASH  



اين حافظه در مرحله‌ي پروگرام كردن، و براي ذخيره‌ي برنامه‌ي كامپايل شده توسط كامپيوتر (فايل با پسوند hex.) در ميكروكنترلر مورد استفاده قرار مي‌گيرد. همان‌ط‌ور كه توضيح داده شد اين حافظه از نوع حافظه‌هاي غير فرّار است.


حافظه‌ي SRAM  



وقتي در برنامه‌هاي خود متغيري تعريف مي‌كنيم، در زمان اجراي آن توسط ميكروكنترلر، به‌طور معمول از حافظه‌ي SRAM استفاده مي‌شود. مثلاً وقتي در برنامه جمله‌ي زير را مي‌نويسيد:
int TEMP;


ميكروكنترلر براي ساختن اين متغير 2-بايتي، از حافظه‌ي SRAM استفاده مي‌كند.
حافظه‌ي SRAM از نوع حافظه‌هاي فرّار است و اطلاعاتي كه در آن ذخيره مي‌شوند، پس از خاموش شدن ربات و قطع جريان برق از ميكروكنترلر، همگي پاك مي‌شوند. اگر بخواهيم براي تعريف حافظه از فضاي ديگري به جز SRAM استفاده كنيم، بايد در الگوي تعريف متغير، تغيير كوچكي دهيم كه در ادامه شرح داده شده است.


حافظه‌ي EEPROM  



گاهي اوقات ما نياز داريم اطلاعاتي كه در متغير‌ها ذخيره شده‌اند با خاموش شدن ربات يا دستگاه پاك نشوند و براي استفاده در زمان‌هاي ديگر هم قابل استفاده باشند. براي اين منظور حافظه‌ي EEPROM تعبيه شده است. EEPROM جزو حافظه‌هاي غير فرّار است.
براي استفاده از اين حافظه بايد متغير‌ها را به گونه‌اي تعريف كنيد كه به جاي استفاده از SRAM از EEPROM استفاده كنند. براي اين منظور طبق الگوي زير عمل مي كنيم:
eeprom int  TEMP;


يعني پيش از تعريف متغير، كلمه‌ي كليدي «eeprom» را ذكر مي‌كنيم. اگر اين كار را نكنيم، متغير به صورت پيش فرض در حافظه‌ي SRAM تعريف مي‌شود.
براي مثال فرض كنيد ربات مين‌يابي داريم كه مختصات مين‌هاي كشف شده را در متغيرهايي از حافظه‌ي ميكروكنترلرش ذخيره كرده است. اگر اين متغير‌ها در SRAM باشند، زماني‌كه ربات خاموش شود اين اطلاعات پاك مي‌شوند و ديگر قابل بازبيني نيستند، در اين‌گونه موارد بهتر است اطلاعات در eeprom ذخيره شوند تا خيالمان از بابت ذخيره‌ي اين اطلاعات راحت باشد.


رجيسترها  



در مورد رجيستر‌ها در جلسه‌ي 24 توضيحاتي داده شده است. رجيسترها هم جزو متغير‌هاي فرّار هستند و با قطع جريان برق پاك مي‌شوند. مهم‌ترين مزيت رجيسترها نسبت به SRAM سرعت بالاي آن‌ها به‌خاطر نزديك بودن به واحد پردازش‌گر مركزي است. و مهم‌ترين محدوديت‌ آن‌ها هم كم بودن تعداد آن‌هاست.  نيازي نيست كه ما در برنامه‌هاي خود مستقيماً از رجيستر‌ها استفاد كنيم، اما خود ميكروكنترلر براي اجراي برنامه‌هاي خود مكرراً از آن‌ها استفاده مي‌كند.
مطالب مطرح شده مختصر و اجمالي هستند، ولي اين مطالب براي رفع نياز دوستان و انجام پروژه‌هاي مختلف كفايت مي‌كنند و نياز به بررسي تخصصي‌تر روي اين مبحث نيست. توضيحات بيشتر در اين باب، نياز به مقدمات علمي و تخصصي بيشتري دارد كه در اين‌جا مجال مطرح كردن تمام اين مطالب نيست.
منتظر سوالات، نظرها و پيشنهادهاي دوستان خوبم هستم.

 



 

به نام خدا

با سلام خدمت همه‌ي دوستان عزيزم

ابتدا بايد يك نكته رو از مطالب جلسه‌ي پيش گوش زد كنم، براي بستن مدار Reset و همچنين كرستال خارجي، در ATMEGA16L هيچ الزامي وجود ندارد و صرفاً براي دقت بيشتر مي‌باشند.
در ضمن ياد آوري مي‌كنم كه ميكروكنترلر‌هاي ATMEGA16L و ATMEGA16 تفاوت خاصي در ترتيب پايه‌ها و كارايي با يكديگر ندارند. مهمترين تفاوت اين 2 آي سي در فركانس كاري اين 2 آي سي است كه ATMEGA16L نمي‌تواند با فركانس بيش از 8 مگاهرتز كار كند.
خوب، همانطور كه قول داده بوديم، قراره اين جلسه ساخت يك پروگرامر بسازيم كه بتوانيم به وسيله‌ي آن، برنامه‌هايي كه در كامپيوتر مي‌نويسيم را به ميكروكنترلر منتقل كنيم.

براي پروگرام كردن ميكروكنترلر‌هاي خانواده‌ي AVR روش‌ها و پورتكول‌هاي متعددي وجود دارد. يكي از معروفترين و پركاربردترين پروتكول‌هاي موجود، STK200300 نام دارد كه ما در اين جلسه سعي مي‌كنيم نحوه‌ي استفاده از اين پروتكول را آموزش دهيم.

همانطور كه گفته شد، ميكروكنترلرهاي خانواده‌ي AVR اين قابليت را دارند كه مي‌توان آن‌ها را مستقيماً به وسيله‌ي يك كابل 5 رشته به كامپيوتر متصل نموده و پروگرام كرد، و در نتيجه، نيازي به يك دستگاه مجزا براي پروگرام كردن ندارند. اين روش پروگرام كردن STK200/300 نام دارد. اين روش، به خاطر عدم نياز به هرگونه مدار جانبي و سهولت كار با آن، از محبوبيت زيادي در بين كاربران حرفه‌اي برخوردار است.

اولين نكته اين است كه اگر كامپيوتر شما پورت LPT(موازي) نداشته باشد، شما نمي توانيد به اين روش(يعني فقط با يك كابل 5 رشته‌ي ساده) ميكروكنترلر خود را پروگرام كنيد و بايد از مدارهاي پروگرامر USB استفاده كنيد. با استفاده از پروگرامر‌هاي USB، شما مي‌توانيد با استفاده از درگاه USB هم ميكروكنترلر خود را پروگرام كنيد. ساختن اين پروگرامرها كار ساده‌اي نيست، اما انواع مختلف آن‌ها در بازار موجود است كه بين 20 تا 200 هزار تومان هم قيمت دارند.

براي ديدن پورت يا درگاه LPT (موازي) ، به پشت كيس كامپيوتر خود نگاه كنيد.

 

 




ادامه مطلب ...


به نام خدا

با عرض سلام خدمت همه‌ي دوستان عزيز

اين جلسه همانطور كه قبلاً گفته بوديم، سعي مي‌كنيم كمي از مقدمات سخت افزاري و مدار‌هاي راه اندازي ميكروكنترلرهاي AVR صحبت كنيم تا دوستان بتوانند به تدريج كار عملي با Atmega16 را شروع كنند.

در شكل زير شماي كلي ATMEGA16 آورده شده است



ادامه مطلب ...


صفحه قبل 1 صفحه بعد

درباره سایت


به فروشگاه رباتیک والکترونیک RoboHpخوش آمدید
پيوندها

تبادل لینک هوشمند
برای تبادل لینک  ابتدا ما را با عنوان فروشگاه رباتیک و آدرس robohp.LXB.ir لینک نمایید سپس مشخصات لینک خود را در زیر نوشته . در صورت وجود لینک ما در سایت شما لینکتان به طور خودکار در سایت ما قرار میگیرد.





نويسندگان


ورود اعضا:

نام :
وب :
پیام :
2+2=:
(Refresh)

خبرنامه وب سایت:





آمار وب سایت:  

بازدید امروز : 8
بازدید دیروز : 35
بازدید هفته : 139
بازدید ماه : 136
بازدید کل : 130488
تعداد مطالب : 164
تعداد نظرات : 20
تعداد آنلاین : 1


IS
Google

در اين سایت
در كل اينترنت

تولید ملی حمایت از کار و سرمایه ایرانی