تبلیغات

به نام خدا

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

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

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


پایه‌ی 10: تغذیه‌ی آی سی است و باید به 5ولت متصل گردد. ولتاژ تغذیه برای میكروكنترلر‌های Atmega16، بین 5.5_4.5 ولت باید باشد، و برای Atmega16L، بین 5.5_2.7 ولت است.

پایه‌های 11 و 31: این 2 پایه GND هستند و باید به قطب – منبع تغذیه متصل شوند.

پایه‌ی 30: این پایه، تغذیه‌ی مبدل آنالوگ به دیجیتال است(ADC) و اگر بخواهیم از این امكان میكروكنترلرهای AVR استفاده كنیم، باید این پایه را به همان 5ولت منبع تغذیه متصل كنیم.

پایه‌ی 32: این پایه نیز مربوط به همان امكان تبدیل آنالوگ به دیجیتال است، در مورد آن در جلسات آینده توضیح خواهیم داد. وقتی از این امكان استفاده نمی‌كنیم، نیازی نیست این پایه به جایی متصل باشد.

مدار پایه‌ی Reset:
این پایه برای Reset كردن آی سی به كار می رود. Reset شدن میكروكنترلر مثل Reset شدن كامپیوتر است و باعث می‌شود كه آی سی همه‌ی برنامه‌های خود را دوباره از اول اجرا كند.

این پایه باید در حالت عادی 1 منطقی باشد و هرگاه بخواهیم آی‌سی را Reset كنیم، باید آنرا 0 منطقی كنیم(حداقل 16 میلی ثانیه) و سپس 1 منطقی كنیم.

برای این پایه، می‌توان مدار زیر را بست.



در این مدار، پایه‌ی Reset به وسیله‌ی یك مقاومت 10 كیلواهمی به VCC وصل شده است، و هر گاه كلید را فشار دهیم، پایه مستقیماً به GND وصل می‌شود و آی سی Reset می‌شود.


اسیلاتور خارجی:
میكروكنترلر هم مثل كامپیوتر شما یك فركانسِ كاری دارد، مثلاً وقتی می‌گویید CPU كامپیوتر شما 2.5 گیگا هرتز است، در حقیقت شما فركانس كاری پردازنده‌ی كامپیوتر خود را گفته‌اید.

برای تولید این فركانس، ما نیاز به یك نوسان ساز یا اسیلاتور داریم. این قطعه در اصطلاح تجاری به كریستال معروف است.



یكی از مزیت‌های Atmega16 این است كه یك نوسان ساز در داخل خود میكروكنترلر تعبیه شده است و نیازی نیست شما از این كریستال‌ها استفاده كنید.

اما در Atmega16 این نوسان ساز دقت خوبی ندارد و برای كارهایی كه نیاز به دقت بالا دارند(بعداً در این مورد توضیح خواهیم داد)، باید از كریستال یا نوسان ساز خارجی استفاده كرد. اما فعلاً برای كار ما نیازی به كریستال خارجی نیست.

پایه‌های 12 و 13 برای این منظور در نظر گرفته شده‌اند. برای اتصال كریستال به آی‌سی باید مدار زیر را كه شامل 2 عدد خازن عدسی 30 پیكوفاراد است به این 2 پایه متصل كنید.



دقت كنید كه پایه‌های كریستال تفاوتی با هم ندارند و در نتیجه فرقی نمی‌كند از كدام طرف در مدار قرار گیرد.(مثل LED مثبت و منفی ندارد)

برای میكروكنترلرهای ATMEGA16L، حداكثر از اسیلاتورهای 8 مگا هرتز می‌توان استفاده نمود، اما برای ATMEGA16 می‌توان از 12 یا 16 مگاهرتز هم استفاده نمود.

یكی دیگر از ویژگی‌های میكروكنترلر‌های AVR این است كه برای پروگرام كردن آن‌ها نیازی به دستگاه‌پروگرامر نیست، و فقط با یك كابل ساده‌ی 5 رشته می‌توان آن‌ها را به سادگی توسط كامپیوتر پروگرام كرد.

 

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

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

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

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

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



این درگاه، درگاه ارتباط موازی(Parallel) یا LPT نام دارد و یكی از رایج‌ترین كاربردهای آن برای ارتباط با پرینتر است. البته اكثر پرینترهای امروزی از طریق درگاه USB با كامپیوتر ارتباط برقرار می‌كنند.

درگاه LPT دارای 25 پایه است كه به شكل زیر شماره گذاری می‌شوند.



برای ساختن این پروگرامر ساده، شما احتیاج به نیم متر كابل فِلَت 5 رشته و یك عدد سوكت نَری LPT دارید. البته الزامی در استفاده از این نوع كابل نیست و می‌توان از هر كابل 5 رشته‌ی دیگری برای این منظور اسفاده كرد.



سوكت نَری LPT.

كابل فلت نیز در شكل زیر نشان داده شده است.



شما باید این 5 رشته را به پایه‌های شماره‌ی 6و7و9و10و24‌ از این سوكت لحیم كنید.

حالا می‌توانید به وسیله‌ی این 5 سیم میكروكنترلر خود را پروگرام كنید. كافیست این سیم‌ها را به ترتیب زیر به پایه‌های میكروكنترلر وصل كنید.

سیمی كه به پایه‌ی شماره‌ی 6 سوكت متصل شده است، باید به پایه‌ی SCK در میكروكنترلر شما وصل شود. در  SCK, ATmega16 پایه‌ی شماره‌ی 8 است.

پایه‌ی شماره‌ی 7 سوكت، باید به پایه‌ی MOSI در میكروكنترلر وصل شود. در MOSI ,ATmega16 پایه‌ی شماره‌ی 6 است.

پایه‌ی شماره‌ی 9 سوكت، باید به پایه‌ی Reset در میكروكنترلر وصل شود. در ATmega16 Reset پایه‌ی شماره‌ی 9 است.

پایه‌ی شماره‌ی 10  سوكت، باید به پایه‌ی MISO در میكروكنترلر وصل شود. درMISO,ATmega16 پایه‌ی شماره‌ی 7 است.

و در نهایت، پایه‌‌های شماره‌ی 18تا 25 نیز، باید به GND یا همان زمین در میكروكنترلر وصل شود. پایه‌ی 11و 31 در ATmega16L ، - یاهمان GND است.بهتر است برای اتصال این پایه‌ به میكروكنترلر، از یك مقاومت 1 كیلو اهم استفاده كنید.

در ضمن دقت كنید، كه اگر طول سیم بیش از نیم متر باشد، ممكن است در پروگرام كردن دچار مشكل شوید، به همین خاطر بهتر است تا جای ممكن طول سیم را كوتاه انتخاب كنید.

جلسه‌ی آینده در مورد نحوه‌ی انجام تنظیمات مربوط به پروگرامر را در CodeVision نیز توضیح خواهیم داد.

منتظر سولات و نظرات دوستان خوبم هستم