آژانس هواپیماییexchanging

آموزش AVR

شروع موضوع توسط R.Shams ‏2 ژانویه 2008 در انجمن برق و الکترونیک

  1. R.Shams

    R.Shams Guest

    تاریخ عضویت:
    ‏7 ژانویه 2006
    نوشته ها:
    209
    تشکر شده:
    9
    محل سکونت:
    Tehran (S/h/i/r/a/z)
    سلام به تمامی دوستان عزیز

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

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

    از دوستان تقاضا دارم که در این مورد همراهی نمایند. تا هم این تاپیک پربار باشد و از همه مهمتر قابل استفاده.

    با آرزوی موفقیت برای تمامی دوستان
    R.Shams
     
  2. R.Shams

    R.Shams Guest

    تاریخ عضویت:
    ‏7 ژانویه 2006
    نوشته ها:
    209
    تشکر شده:
    9
    محل سکونت:
    Tehran (S/h/i/r/a/z)
    انواع کامپایلر

    هر کسی که ابتدا میخواد برنامه بنویسه در انتخاب کامپایلر همش با خودش و دیگران درگیره. انتخاب کامپایلر خیلی آسونه. ما خودمون سخت میگیریم. هدف یاد گرفتن اصول برنامه نویسی هست. وقتی برنامه نویس شدید اینو درک میکنید.

    خب AVR هم مثل تمام میکروکنترها چندین کامپایلر داره. میتونین خودتون دربارشون تحقیق کنین. اینجا فرصت معرفی همه اونا نیست. چون این تاپیک برای افراد مبتدی درست شده ساده ترین و جذاب ترین کامپایلر AVR که همون bascom هست رو براتون توضیح میدم. اما در حدی که راه بیفتین. بقیه کار به همت خودتون برمیگرده.

    برای شروع ابتدا یه پروگرامر STK200/300 درست کنید. نقشه اون توی کتاب علی کاهه است. به خوبی جواب میده.
    فقط چند تا نکته رو رعایت کنید:
    1. بهتره که بافر رو توی همون قاب DB25 جاسازی کنید. در اینصورت کابلتون نویز نمیگیره و میتونین کابل بلندتری هم استفاده کنین.
    2. برای لحیم کاری از روغن لحیم اصلا استفاده نکنید. در غیر اینصورت ممکنه مدارتون درست کار نکنه.
    3. انتهای کالتونو محکم کاری کنین. حالا یا یه کانکتوری یا یه چیز دیگه. چون بر اثر استفاده مکرر سیماش قطع نشه.

    یه سری قطعات هم تهیه کنید تا در حین کار به مشکل برخورد نکنید:
    محور آموزش میکرو ATMEGA16 است. چون هم پورتهاش بیشتره. هم پوتاش کامله و اینکه پینهای یک پورت کنار هم هست. در مورد RAM هم به مشکل برخورد نمیکنین.
    کریستال 4 , 12 , 24 , ... از هر کدوم پند تایی بگیرین لازم میشه.
    خازنهای تغذیه 1000 و 47 و 4.7 و 1
    خازن عدسی 100 نانو - 27 پیکو
    7805
    lcd 16*2
    میکروسوئیچ
    برد بورد
    led
    1n4007
    پل دیود
    مقاومت 1k - 10k -4.7k -330 -470 -2.2k

    اگه پول تو دست و بالتون هست میکرو و lcd رو یدکی داشته باشین. همیشه یکی دو تا اضافه داشته باشین.
    قطعات دیگه مثل بیزر و اسپیکر و ترانزیستور مثبت و منفی هم داشته باشین. لازم میشه
    ترانزیستور 2n2222 - 2n3906 - 2n3904
    گیره سوسماری - سیم اافشان - سیم مفتولی برای برد بورد و ....

    البته همه واسه خریدن زرنگ هستن خوب که خریدن میندازنشون گوشه اتاق. منم از این کارا زیاد کردم
    خب فعلا تا همینجا بسه واسه امروز.
    برید پولاتونو خرج کنین (از طرف کاسبهای بازار !!!!!!)
     
  3. R.Shams

    R.Shams Guest

    تاریخ عضویت:
    ‏7 ژانویه 2006
    نوشته ها:
    209
    تشکر شده:
    9
    محل سکونت:
    Tehran (S/h/i/r/a/z)
    خب حالا میریم سر کار عملی با میکروکنترولر و میبینید که کار کردن با میکرو کار بشدت آسونی هست.

    همه میکروکنترولرها برای اجرای دستورات نیاز به یک مدار اولیه دارند که به اون مینیمم سیستم میگن. مثلا برای AVR یه مدار تغدیه فقط نیاز هست. مدار اسیلاتور هم که داخل خود میکرو هست. در برخی میکروکنترولرها مثل 8051 و برخی از PIC ها باید از اسیلاتور خارجی استفاده کرد. پینهای پروگرامر هم رو وصل کنید.

    میتونید این مینیمم سیستم رو روی برد بورد ببندید و یا یه development board درست کنید تا برای همیشه مورد استفاده قرار بگیره. این development board یه بوردی هست که برنامه نویسان یا خودشون درست میکنن و یا آمادشو میخرن. این بورد برای انجام پروژه مثلا در مراحل یاد گیری و یا طراحی مدارات بکار میره. یه سری چیزهایی آماده روشون قرار داره. مثلا واسه lcd یه کانکتور داره که راحت lcd رو میزارین اونجا. مثلا تو اکثر پروژه ها lcd + میکرو سوئیچ + خروچی led و ... وجود دارند. حالا چرا یه بورد نسازیم که همیشه نخواهیم این مراحل تکراری رو انجام دهیم.
    خب حالا بگذریم بریم سر وقت کار خودمون.
    کاتالوگ avr رو باز کنید. منظورم همون atmega16 هست. اونو روی برد بورد بزارین. تمام گراندهای اونو به هم وصل کنین. VCC و AVCC رو هم به هم وصل کنین و بدین به 5 ولت تغذیه. مدار پروگرامر رو هم به میکرو ول کنید. به شما توصیه میکنم که از پروگرامر stk200/330 استفاده کنید. چون در حین انجام پروژه نیاز نیست اونو از مدارتون جدا کنین.
    حالا برنامه bscom رو باز کنین. یه فایل درست کنید با پسوند bas و اونو بوسیله bascom باز کنید. حالا دکمه f4 رو بزنید. برنامه پروگرامر باز میشه. باید میکروتونو اتوماتیک بشناسه. اونجا سه تا تب میبینید. تب اول فایل hex برنامه رو نشون میده. تب دوم فایل hex محتویات e2prom رو نشون میده و تب سوم وضعیت فیوز بیتها و لاک بیتها رو نشون میده.

    خب این کا را رو انجام بدین اگه تا اینجا مشکلی داشتین بگین.
    اینو هم بگم که ممکنه کامپایلر در مورد میکرو به شما اخطار بده که یا فایل bin یا hex ندارین و یا اینکه میکروتون با میکرو پیش فرض برنامه فرق میکنه. اما توجه نکنین. فقط تا این مرحله پروگرامر باید میکروتونو دیتکت کنه تا بریم سر بقیه مسائل. در ضمن یه دکمه تو همون برنامه پروگرامر سمت راست بالا کنار اسم میکرو هست. اگه اونو بزنین میکروتونو دیتکت میکنه. اونو هم میتونین برای تشخیص میکرو بکار ببرین. در ضمن تا میکروتون دیتکت نشه نمیتونین به فیوزبیتها و لاکبیتهای برنامه دسترسی پیدا کنین.