تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 6 از 21 اولاول ... 234567891016 ... آخرآخر
نمايش نتايج 51 به 60 از 210

نام تاپيک: ◄◄ تاپيك ويژه ميكرو كنترلر AVR [سوالات در اين تاپيك]

  1. #51
    Banned
    تاريخ عضويت
    Jun 2004
    محل سكونت
    كرج
    پست ها
    248

    پيش فرض

    سلام دوست من .

    تاپيك مخصوص ميكرو 8051 هم داشتيم ، ميتونستي اونجا درخواست بديد .

    متوجه نشدم كه منظورت از سطح بالا چه نوع مداري بود . تو چه رنجي شما پروژه ميخواهيد . من در اولين فرصت همينجا واستون آپلود ميكنم . ( البته 2 تا به قول خودتون سطح بالا )

    منتظر باشيد .
    Last edited by jnicou; 10-01-2009 at 23:54.

  2. #52
    Banned
    تاريخ عضويت
    Jun 2004
    محل سكونت
    كرج
    پست ها
    248

    پيش فرض

    كتابخانه ي MMC براي ميكرو AVR به زبان C

    دانلود:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  3. #53
    Banned
    تاريخ عضويت
    Jun 2004
    محل سكونت
    كرج
    پست ها
    248

    پيش فرض

    آشنایی با AVR

    ميكروكنترلرها به عنوان يك ابزارقدرتمند نزد مهندسان برق وكامپيوتر شناخته شده اند با توجه به كاربرد روز افزون ميكروكنترلرها در صنعت , شركت هاي سازنده زيادي اقدام به توليد آنها مي نمايند .
    ميكروكنترلرهاي AVR ساخت شركت ATMEL از جمله معروف ترين و پركاربردترين ميكروكنترلرهاي موجود در بازار ايران مي باشند.تنوع اين ميكركنترلرها به مهندس طراح اين امكان را مي دهد كه براي هر پروژه از ميكركنترلر بهينه آن استفاده كند . به دليل مقبوليت اين ميكروكنترلرها شركت هاي زيادي اقدام به نوشتن نرم افزارهايي نموده اند كه امكان برنامه نويسي با زبان هاي سطح بالا را براي كاربر فراهم مي كنند .
    ميكرو كنترلرهاي AVR به دسته هاي TINY و AT90S و ATMEGA تقسيم مي شوند . از اين ميان ميكروكنترلرهاي نوع سوم قدرتمندتر و پركاربردتر هستند.با توجه به اينكه نوشتن برنامه به زبان اسمبلي بسيار زمان بر و دشوار است, زبانهاي سطح بالا در اين زمينه كمك بسيار زيادي كرده اند .
    زبان برنامه نويسي BASIC و C بيشترين استفاده در برنامه نويسي ميكروها دارند. ولي در اكثر كاربردها كدهاي بيشتري را نسبت به زبان برنامه نويسي اسمبلي توليد مي كنند. ATMEL ايجاد تحولي در معماري , جهت كاهش كد به مقدار مينيمم درك كرد كه نتيجه اين تحول ميكروكنترلرهاي AVR هستند كه علاوه بر كاهش و بهينه سازي مقدار كدها به طور واقع عمليات را تنها در كلاك سيكل توسط معماري RISC انجام مي دهد .هدف ATMEL طراحي معماري بود كه هم براي زبان اسمبلي وهم زبانهاي HLL‌ مفيد باشد .
    AVR ها به عنوان ميكروهاي RISC با دستورات فراوان طراحي شده اند كه باعث مي شود حجم كد توليد شده كم و سرعت بالا تري به دست آيد .

    ميكروكنترلرها :

    1-0) تفاوت ميكروكنترلر و ميكروپروسسور :

    ميكروپرسسورها بر خلاف ميكرو كنترلرها فاقد RAM و ROM و پورتهاي I/O در درون خود تراشه هستند بنابراين براي اينكه بتوان سيستمي مبتني بر ميكروپرسسور را طراحي كنيم بايد RAM و ROM و پورتهاي I/O و تايمرها به آن اضافه شود. با توجه به اينكه طراح مي تواند روي مقدار RAM و ROM و پورتهاي I/O اعمال نظر نمايد , اين سيستم ها انعطاف پذيري بشتري دارند. وبه آنها سيستمهاي چند منظوره مي گويند.
    ميكروكنترلرها شامل يك CPU به همراه مقدار ثابتي از RAM , ROM , پورتهاي I/O وتايمر هستند كه همگي اين اجزا در يك تراشه جاي داده شده اند و طراح سيستم نمي تواند يك حافظه , I/O يا تايمر را بدون گسترش لازم از بيرون اضافه كند بنابراين ميكروكنترلرها انعطاف پذيري ميكروپرسسورها را ندارند .

    1-1) كاربرد ميكروكنترلرها :

    با توجه به آنچه كه گفته شد ميكروكنترلرها براي كاربردهايي كه در آنها مشكل قيمت و حجم سيستم وجود دارد , مناسب است زيرا اضافه كردن حافظه , پورت I/O تايمرها و مدار واسط لازم به ميكرپرسسور سبب افزايش قيمت وحجم سيستم مي گردد. اما در ميكروكنترلر اين مشكل وجود ندارد. ميكروكنترلرها به طور گستردهاي در توليد سيستمهاي تك منظوره به كار مي روند. منظور از سيستم تك منظوره سيستمي است كه از ميكروكنترلر يا ميكرپروسسور فقط براي يك كار استفاده مي كند.مانند پردازنده درون يك موس كه تنها به منظور يافتن مكان اشاره گر موس و ارسال آن به PC برنامه ريزي شده است. اين سيستم ها در مقابل سيستمهاي چند منظوره قرار مي گيرند. كه نمونه بارز آن يك PC است كه مي تواند براي كاربردهاي متعدد و گوناگوني همچون واژه پردازي , بازي هاي ويدئويي , سرويس شبكه و ... مورد استفاده قرار گيرد. اين توانايي PC در اجراي كارهاي گوناگون به دليل وجود سيستم عاملي است كه نرم افزار كاربردي را در RAM بار مي كند تا PC بتواند آن را اجرا كند. اما در يك سيستم تك منظوره تنها يك نرم افزار كاربردي موجود است كه معمولا درROM نوشته مي شود. چند نمونه از وسايلي كه در ساخت آنها از ميكروكنترلرها استفاده شده است , عبارت اند از : كنترل از راه دور تلويزيون , تلفن , دوربين فيلمبرداري , فاكس , چاپگر , دستگاه فتوكپي ,سيستم هاي حفاظتي , دزد گير و سيستم هاي كنترل صنعتي.
    به طور كلي مي توان كاربرد ميكروكنترلرها را در طراحي مدارهاي كنترل و اتوما سيون خلاصه كرد .

    1-2) ويژگي هاي اصلي يك ميكروكنترلر :

    با توجه به گستردگي ميكروكنترلرها و شركتهاي سازنده آنها چگونگي انتخاب يك ميكروكنترلر براي كاربردي خاص , از اهميت فراواني برخوردار است.بطور كلي ابتدا بايد نيازهاي سيستم و هزينه آنرا كاملا مشخص كنيم تا به كمك آنها بتوانيم انتخابي بهينه انجام دهيم. براي انتخاب يك ميكروكنترلر بايد موارد زير را در نظر بگيريم :
    1- تعداد بيتهاي باس داده ميكروكنترلر كه مي تواند 8 , 16 ,‌ 32 بيت باشد.
    2- بيشترين سرعت ميكروكنترلر.
    3- توان مصرفي ميكروكنترلر.
    4- نوع بسته بندي ميكروكنترلر (DIP , QFP , MLF , PLCC و...)
    5- مقدار حافظه RAM و ROM‌ موجود در تراشه وقابل اضافه شدن به آن.
    6- امكاناتي كه كاربر را در كار با ميكروكنترلر ياري مي نمايد , مانند اسمبلر در دسترس , عيب ياب , كامپايلر زبانهاي سطح بالا ( C و BASIC و ... ) , امولاتور وشبيه ساز.
    7- قيمت ميكروكنترلر و در دسترس بودن آن .

    1-3) ميكروكنترلر هاي AVR‌ :

    در مباحث بالا با ميكروكنترلرها آشنا شديم حال در اين بخش ميكروكنترلرهاي 8 بيتي شركت ATMEL‌ را كه از ساختار RISC بهره مي برند معرفي مي كنيم . اما پيش از آن تفاوت هاي ساختار RISC وساختار CISC را بيان مي كنيم .

    1-4) ساختار RISC :

    تا اوايل دهه 1980 , كليه پردازنده ها از ساختار CISC‌ استفاده مي كردند. در اين ساختار چندصد دستور طراحي شده بود كه اين دستورها كليه عمليات ممكن راپوشش ميداد.اين روش طراحي پردستور مشكلاتي همانند تعداد زياد ترانزستورها , پيچيدگي طراحي و ساخت مدار, زمان بري عمليات و گران بودن تراشه را به همراه داشت0 به همين دليل در اوايل دهه 80 ساختار جديدي به نام RISC ابداع شد . برخي از ويژگي هاي ساختار RISC از اين قرارند :
    1- اندازه دستورها در RISC بر خلاف CISC ثابت است و اين امر كمك مي كند كه CPU‌ سريعتر دستور ها را ديكد نمايد .

    2- RISC از روش STORE/LODE استفاده مي كند. در اين روش انتقال داده فقط از حافظه به رجيستر( LODE ) واز رجيستر به حافظه( STORE ) انجام مي شود و انتقال مستقيم از رجيستر به رجيستر و از حافظه به حافظه ممكن نيست .
    3- تعداد رجسترها در RISC زياد است . همه پردازنده ها 32 رجستر 32 بيتي دارند
    4- در RISC تعداد دستور ها كم است و فقط دستورهاي پايه موجود است و برنامه نويس و كامپايلر بايد دستورهاي ديگر را با اين دستور هاي پايه بسازند. كم بودن تعداد دستورها باعث دشواري برنامه نويسي به زبان اسمبلي ( نسبت به پردازنده هاي CISC ) مي شود. بنابراين از RISC در محيط هاي برنامه نويسي به زبانهاي سطح بالا مثل C استفاده مي شود. كم بودن تعداد دستورها همچنين سبب مي شود كه برنامه بزرگ شود و حافظه بيشتري را اشغال كند .
    5- برتري اصلي RISC‌ در اين است كه 95 درصد دستورهاي آن يك كلاك و بقيه فقط دو كلاك زمان مي برند كه اين امر باعث افزايش سرعت مي شود.ضمن اينكه در تعداد ترانزيستورها به دليل سادگي مدار صرفه جويي مي گردد.
    6- بر خلاف پردازنده هاي CISC كه باس آدرس و داده در آن مشترك است , در پردازنده هاي RISC‌ اين باس ها جدا جدا هستند :
    الف) براي ورود و خروج داده (OPERAND) به CPU‌.
    ب) براي دستيابي و آدرس دهي داده ( OPERAND ).
    ج) براي حمل .OPECODE
    پ) براي دستيابي و آدرس دهي OPECODE. به اين روش ساختار HAVARD گويند .
    7- چون CISC‌ تعداد زيادي دستور دارد روش هاي فراواني هم براي آدرس دهي دارد كه اجراي اين روش ها به وسيله ريز دستورهايي انجام مي شود . پياده سازي اين ريز دستورها در CPU بيش از %60 ترانزيستورها را مصرف مي كند حال آنكه در RISC‌ ريز دستورها با استفاده از روش Harvard توسط كمتر از 10% ترانزيستورها پياده سازي مي شود.
    به طور كلي پردازنده هايي كه از ساختار RISC ريز دستورها بهره مند هستند در اكثر زمينه ها بر پردازنده هاي CISC برتري دارند اما مشكل RISC اين است كه برنامه هاي MSDOS بر روي آن اجرا نمي شود , بنابراين از پردازنده هاي CISC براي ساخت PC استفاده مي شود. نمونه هايي از پردازنده هايي با ساختار CISC عبارتند از:
    ميكروپروسسورهاي 80X86 ساخت INTEL‌ و 68X0‌ ساخت Apple Mclntosh‌ . ميكروكنترلر 8051 هم از ساختار CISC استفاده مي كند .

    ويژ گي هاي ميكروكنتركرهاي AVR‌ :
    1- ميكروكتنرلرهاي AVR از يك ساختار RISC‌ استفاده مي كنند. دستورها در اين ميكروكتنرلرها به گونه اي طراحي شده است كه حجم برنامه كوچك شود حتي اگر به زبان اسمبلي ساخته شده باشد. ساختار RISC با دستورهاي فراوان در اين ميكروكتنرلرها باعث كم شدن حجم برنامه و بالا رفتن سرعت مي شود. AVR داراي مجموعه دستورات فراوان با 32 رجيستر عمومي است كه همه آنها با ALU‌ در ارتباط هستند كه سبب مي شود دو رجيستر مستقل در يك دستور به طول يك كلاك در دسترسي باشند. اين ساختار منجر به بهينه سازي كد و ده برابر سريعتر شدن آن نسبت به CISC مي شود.
    2- ساختار بهينه I/O در اين ميكروكتنرلرها باعث كاهش نياز به افزودن اجزاي خارجي مي شود .
    3- ميكروكتنرلرهاي AVR ‌ داراي اسيلاتور داخلي , تايمر , UART و SPI درون تراشه هستند .
    4- اين ميكروكتنرلرها داراي مقاومت UP – PULL دروني هستند .
    5- AVR از تكنولوژي حافظهVOLATILE – NONوDENSITY HIGH برخوردار است.
    6- ميكروكتنرلرهاي AVR داراي مبدل A/D‌ , مقايسه كننده آنالوگ , تايمر WATCHDOG و قابليت مدولاسيون عرض پالس هستند .
    7- حافظه هاي FLASH و EEPROM در اين ميكروكتنرلرها , قابليت برنامه ريزي شدن در داخل مدار را دارند(ISP ) .
    8- حافظه FLASH از دو روش در داخل مدار , برنامه ريزي مي گردد. يكي , توسط PROGRAMMER حافظه VOLATILE - NON و از طريق رابطه سريال SPI و ديگري به وسيله اجراي BOOT PROGRAM مي تواند از هر مدار واسطي براي ريختن برنامه بر روي حافظه FLASH استفاده كند .
    9- ساختار ميكروكتنرلرهاي AVR به گونه اي طراحي شده است كه هم براي زبان اسمبلي وهم زبانهاي سطح بالا مفيد باشد. بنابراين مي توان از زبانهاي سطح بالايي مثل C و BASIC هم در برنامه ريزي اين ميكروكتنرلرها استفاده كرد كه اين امر برنامه نويسي را براي كاربران آسان مي كند .

  4. #54
    Banned
    تاريخ عضويت
    Jun 2004
    محل سكونت
    كرج
    پست ها
    248

    پيش فرض

    AVR
    ساده ترين معماري ميكرو كنترلر، متشكل از يك ريز پردازنده، حافظه و درگاه ورودي/خروجي است. ريز پردازنده نيز متشكل از واحد پردازش مركز (CPU) و واحد كنترل (CU)است.

    CPU درواقع مغز يك ريز پردازنده است و محلي است كه در آنجا تمام عمليات رياضي و منطقي ،انجام مي شود. واحد كنترل ، عمليات داخلي ريز پردازنده را كنترل مي كند و سيگنال هاي كنترلي را به ساير بخشهاي ريز پردازنده ارسال مي كند تا دستورالعمل ها ي مورد نظر انجام شوند.

    حافظه بخش خيلي مهم از يك سيستم ميكرو كامپيوتري است. ما مي توانيم بر اساس به كارگيري حافظه، آن را به دو گروه دسته بندي كنيم: حافظه برنامه و حافظه داده . حافظه برنامه ، تمام كد برنامه را ذخيره مي كند. اين حافظه معمولاً از نوع حافظه فقط خواندني (ROM) مي باشد. انواع ديگري از حافظه ها نظير EPROM و حافظه هاي فلش EEPROM براي كاربردهايي كه حجم توليد پاييني دارند و همچنين هنگام پياده سازي برنامه به كار مي روند . حافظه داده از نوع حافظه خواندن / نوشتن (RAM) مي باشد . در كاربردهاي پيچيده كه به حجم بالايي از حافظه RAM نياز داريم ، امكان اضافه كردن تراشه هاي حافظه بيروني به اغلب ميكرو كنترلر ها وجود دارد.

    درگاهها ورودي / خروجي (I/O )به سيگنال هاي ديجيتال بيروني امكان مي دهند كه با ميكرو كنترلر ارتباط پيدا كند. درگاههاي I/O معمولاً به صورت گروههاي 8 بيتي دسته بندي مي شوند و به هر گروه نيز نام خاصي اطلاق مي شود. به عنوان مثال ، ميكروكنترلر 8051 داراي 4 درگاه ورودي / خروجي 8 بيت مي باشد كه P3, P2, P1, P0 ناميده مي شوند. در تعدادي از ميكرو كنترلر ها ، جهت خطوط درگاه I/O قابل برنامه ريزي مي باشد. لذا بيت هاي مختلف يك درگاه را مي توان به صورت ورودي يا خروجي برنامه ريزي نمود. در برخي ديگر از ميكروكنترلرها (از جمله ميكروكنترلرهاي 8051) درگاههاي I/O به صورت دو طرفه مي باشند. هر خط از درگاه I/O اين گونه ميكرو كنترلرها را مي توان به صورت ورودي و يا خروجي مورد استفاده قرار داد . معمولاً ، اين گونه خطوط خروجي ، به همراه مقاومتهاي بالا كش بيروني به كار برده مي شوند.








    میکرو کنترلر AVR به منظور اجرای دستورالعملهای قدرتمند در یک سیکل کلاک(ساعت) به اندازه کافی سریع است و می تواند برای شما آزادی عملی را که احتیاج دارید به منظور بهینه سازی توان مصرفی فراهم کند.

    میکروکنترلر AVR بر مبنای معماری RISC(کاهش مجموعه ی دستورالعملهای کامپیوتر) پایه گذاری شده و مجموعه ای از دستورالعملها را که با 32 ثبات کار میکنند ترکیب می کند.

    به کارگرفتن حافظه از نوع Flash که AVR ها به طور یکسان از آن بهره می برند از جمله مزایای آنها است.

    یک میکرو AVR می تواند با استفاده از یک منبع تغذیه 2.7 تا 5.5 ولتی از طریق شش پین ساده در عرض چند ثانیه برنامه ریزی شود یا Program شود.

    میکروهای AVR در هرجا که باشند با 1.8 ولت تا 5.5 ولت تغذیه می شوند البته با انواع توان پایین (Low Power)که موجودند.

    راه حلهایی که AVR پیش پای شما می گذارد، برای یافتن نیازهای شما مناسب است:

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



    توان مصرفی پایین:

    * توان مصرفی پایین آنها برای استفاده بهینه از باتری و همچنین کاربرد میکرو در وسایل سیار و سفری طراحی شده که میکروهای جدید AVR با توان مصرفی کم از شش روش اضافی در مقدار توان مصرفی ، برای انجام عملیات بهره می برند.
    * این میکروها تا مقدار 1.8 ولت قابل تغذیه هستند که این امر باعث طولانی تر شدن عمر باتری می شود.
    * در میکروهای با توان پایین ، عملیات شبیه حالت Standby است یعنی میکرو می تواند تمام اعمال داخلی و جنبی را متوقف کند و کریستال خارجی را به همان وضعیت شش کلاک در هر چرخه رها کند!

    نکات کلیدی و سودمند حافظه ی فلش خود برنامه ریز:

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

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

    موازی یا Parallel :

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



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

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



    ISP:

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



    واسطه JTAG :

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

  5. #55
    Banned
    تاريخ عضويت
    Jun 2004
    محل سكونت
    كرج
    پست ها
    248

    پيش فرض

    مقايسه avr با 8051

    مقایسه ما با تمام میکروهای 8 بیتی هست یعنی در مجموع میشه گفت AVR یه رقیب قدرتمند برای بقیه میکروهای قوی است و یه انقلاب بزرگ هم به شمار میره. هنوز هیچ میکرویی به سرعت بالای AVR در محاسبات دست پیدانکرده .در ضمن AVR قادره که محاسبات 16 بیتی رو هم انجام بده. شهار ATMEL هم اینکه شما پول یه میکرو 8 بیتی رو میدید ولی میتونید از قایلیتهای یک میکرو 16 بیتی استفاده کنید.
    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 قرار بگیره . این بخش برای بعضی طراحان خیلی مهمه و اونا رو مجذوب خودش کرده.

  6. #56
    Banned
    تاريخ عضويت
    Jun 2004
    محل سكونت
    كرج
    پست ها
    248

    پيش فرض

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

    مشخصات سخت افزاری ATMEGA32 :

    شکل ظاهری و پایه ها:

    ATMEGA32 در سه نوع بسته بندی PDIP با 40 پایه و TQFP با 44پایه و MLF با 44 پایه ساخته میشود که در بازار ایران بیشتر نوع PDIP موجود میباشد .

    ATMRGA32 دارای چهار پورت 8بیتی ( 1 بایتی ) دارد که علاوه بر اینکه بعنوان یک پورت معمولی میتوانند باشند کارهای دیگری نیز انجام میدهند . بطور مثال PORTA میتواند بعنوان ورودی ADC (تبدیل ولتاژ آنالوگ به کد دیجیتال ) استفاده شود که این خاصیت های مختلف پورت در برنامه ای که نوشته میشود تعیین خواهد شد .
    ولتاژ مصرفی این آی سی از 4.5 V تا 5.5V میتواند باشد .
    فرکانس کار هم تا 16MHz میتواند انتخاب شود که تا 8MHz نیازی به کریستال خارجی نیست و در داخل خود آی سی میتواند تامین شود . فرکانس کار از جمله مواردی است که باید در برنامه تعیین شود . لازم به ذکر است که این فرکانس بدون هیچ تقسیمی به CPU داده میشود . بنابراین این خانواده از میکروکنترلرها سرعت بیشتری نسبت خانواده های دیگر دارند .
    پایه ی شماره 9 نیز ریست سخت افزاری میباشد و برای عملکرد عادی آی سی نباید به جایی وصل شود و برای ریست کردن نیز باید به زمین وصل میشود .
    پایه های 12 , 13 نیز برای استفاده از کریستال خارجی تعبیه شده است .


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

  7. #57
    Banned
    تاريخ عضويت
    Jun 2004
    محل سكونت
    كرج
    پست ها
    248

    پيش فرض

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

    تحلیل برنامه

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

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

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

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

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

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

    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 .

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

    ۱:برای تعیین نوع LCD از کلمات کلیدی Config و بعد از آن Lcd استفاده شده و آنها را مساوی نوع LCD مورد استفاده قرار میدهیم که در اینجا نوع مورد استفاده دارای 2 سطر و 16 ستون میباشد. پس بصورت زیر خواهیم نوشت :
    Config Lcd = 16*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
    ( به علامت , بین بخشها دقت کنید . )

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

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

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

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

    بعد از انتخاب این گزینه کادر نمایش داده شده که در قسمت نمایش داده شده توسط خط قرمز نوع پروگرامر را انتخاب میکنیم :
    بعد از انجام تنظیمات بالا میتوان آی سی را پروگرام کرد . به این صورت که
    گزینه Program را انتخا ب میکنیم . بعد از انتخاب این گزینه کادر زیر باز خواهد شد که با کلیک روی آیکون مربوط آی سی پروگرام میشود .
    همچنین دستگاههایی برای تست برنامه نوشته شده وجود دارند که روی آنها تمام وسایل مورد نیاز مانند LCD و Keypad و ... قرار دارد و کاربرمیتواند با سیم بندی ای که براحتی توسط کابلهای مخصوصی انجام میدهد پورتهای آی سی را به سخت افزارهای جانبی اتصال دهد و برنامه خود را مورد آزمایش قرار دهد . به این دستگاهها Emulator میگویند.

  8. این کاربر از jnicou بخاطر این مطلب مفید تشکر کرده است


  9. #58
    آخر فروم باز shahshahani's Avatar
    تاريخ عضويت
    Sep 2007
    محل سكونت
    طهران / Tehran
    پست ها
    2,781

    پيش فرض

    سلام
    من کتابخانه ی AVR-DOS.lib رو میخواستم.
    انگار پولیه...
    کسی از دوستان نداره؟
    ممنون.

  10. #59
    اگه نباشه جاش خالی می مونه babak_beiknejat's Avatar
    تاريخ عضويت
    Sep 2006
    پست ها
    298

    پيش فرض

    حقيقتش من چند پروژه با Avr مخصوصا ATmega32 به زبان C با كامپايلر Codevision انجام دادم و قصد دارم اين ميكرو كنتلر پر قدرت رو براي دوستاني كه علاقه دارند ، با ارائه مثال از پايه معرفي كنم.
    اما اولش بايد بدونم كه چقدر اين موضوع طرفدار داره .
    لطفا نظرتون رو براي شروع اين مبحث اعلام كنيد.

  11. این کاربر از babak_beiknejat بخاطر این مطلب مفید تشکر کرده است


  12. #60
    Banned
    تاريخ عضويت
    Jul 2005
    محل سكونت
    كـرج
    پست ها
    162

    پيش فرض

    اگه پروژه هاي بدرد بخور و سطح بالايي داري كه واقعا ممنون ميشيم اگه بزاري .

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •