رباتیک

این سایت برای علاقه مندان به ربات طراحی شده اما مطالب فوتبالی و سایر مطالب دیگر در آن دیده می شود،در کل سایت جالبیه!!!

آخرین نظرات
نویسندگان

۱۵ مطلب در مرداد ۱۳۹۳ ثبت شده است

میکروکنترلر PIC  چیست؟

عبارت PIC از سر کلمه های Programmable Interface Controller گرفته شده که به معنای کنترل کننده های ارتباطی برنامه پذیر است . این میکروکنترلرها ساخت کمپانی میکروچیپ (www.microchip.com) می باشند که در ادامه به طور مختصر بر روی آنها بحث خواهد شد .

میکروکنترلرهای سری 10 : این نوع تراشه ها از نوع 8 بیتی و 6 پایه هستند که دارای امکاناتی نظیر مقایسه کننده های داخلی ، مبدل آنالوگ به دیجیتال ، اسیلاتور داخلی و قابلیت غیر فعال کردن پایه ریست ، امکان پروگرام کردن در مدار و ... می باشند .

 

حافظه برنامهء این میکروکنترلرها با حجم 250W تا 500W و حافظه داده آنها بین 16 تا

 24 بایت (رم) طراحی شده است .

میکروکنترلرهای سری 12 : این نوع تراشه ها از نوع 8 بیتی و 8 پایه هستند که دارای امکانات بیشتری نسبت به سری 10 هستند . مبدل آنالوگ به دیجیتال ، مقایسه کننده داخلی ، تایمر WDT ، تایمر0 ، تایمر 1 با قابلیت استفاده از اسیلاتور LP خارجی ، اسلاتور داخلی ، غیر فعال کردن ریست ، امکان پروگرام کردن در مدار و ... از امکانات تراشه های سری 12 می باشد .

حافظه برنامه این تراشه به صورت فلش و PROM و با حجم 0.5Kw تا 2Kw و حافظه داده آنها شامل 16 تا 128 بایت حافظه EEPROM و 25 تا 128 بایت حافظه قابل دسترس می باشد .

میکروکنترلرهای سری 14 ، 16 ، 17 و 18 : تراشه های 8 بیتی و دارای امکاناتی نظیر مبدل آنالوگ به دیجیتال ، مبدل دیجیتال به انالوگ ، MSSP ، تایمر 0 ، تایمر 1 ، تایمر 2 ، تایمر 3 ، تایمر 4 ، CCP ، WDT ، مقایسه گرهای داخلی ، PSP ، USART ، USB ، رگلاتور ولتاژ داخلی ، اسیلاتور داخلی ، امکان غیر فعال کردن ریست ، منابع وقفه متعدد ، راه انداز داخلی سون سگمنت ، امکان به کار گیری بوت لودر ، حالت پروگرام کردن در مدار ، LIN ، CAN و ... هستند که هر تراشه با توجه به سری ساخت و همچنین برخی از مشخصات ، تعدادی از این امکانات را داراست (در رده بندی قدرت کاری ، ابتدا 18 ، سپس 17 ، 16 و 14 قرار دارند و به همین ترتیب امکانات داخلی نیز در سری 18 بیشتر است) .

تعداد پایه های تراشه ها نیز از 8 تا 100 پایه می باشد . حافظه برنامه تراشه ها نیز از 1KW تا حدود 32KW و در انواع فلش و ... قابل دسترس است . حافظه های رم و EEPROM نیز در رنج های مختلف برای هر تراشه های هر سری وجود دارد .

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

میکروکنترلرهای سری 24 : تراشه های 16 بیتی هستند که علاوه بر دارا بودن بسیاری از امکانات داخلی گفته شده ، از امکانات داخلی نظیر ماژول ساعت – تقویم ، حافظه برنامه با حجم بالا ، رجیسترهایی با امکان دوبل شدن (32 بیتی) و ... بهره می برند .

تراشه های سری DS : از نوع 16 بیتی و مخصوص پردازش دیجتال سیگنال ها (Digital Signal Processing) هستند که دارای قدرت فوق العاده و به همراه امکانات داخلی نظیر کانال های متعدد PWM هستند .

تراشه های سری rf : تراشه های 8 بیتی هستند که از از نظر امکانات همانند سری 12 می باشند ، با این تفاوت که به مجهز به ماژول فرستندهء UHF داخلی هستند که در فرکانس های 290 تا 930 مگاهرتز قابل دسترس هستند .

 

 

4- برتری های PIC


1- قابلیت برنامه نویسی با زبان سطح بالا که مشکلات کار با زبان ماشین یا اسمبلی را ندارد. به راحتی با زبان برنامه نویسی مشابه Basic می توان PIC را برنامه ریزی کرد.
2- سرعت اجرای بالای برنامه ها، زیرا برنامه ها به زبان ماشین در PIC بارگذاری شده اند و با سرعت بالایی اجرا می شوند.
3- سادگی و قیمت مناسب

 

 

5- مشخصات سخت افزاری


ما در اینجا بیشترPIC 16f84 را مورد بررسی قرار می دهیم که دارای 18 پایه می باشد و کاربرد وسیعی را دارد و 13 پایه به عنوان ورودی و خروجی در اختیار ما می گذارد.این تراشه دارای دو پورت A(5 pin) و B(8 pin) می باشد که بر حسب نیاز می توان آن ها را خروجی یا ورودی تعریف کرد. هر کدام از پایه ها بر حسب شماره در زیر معرفی شده اند:


17- بیت اول پورت A : RA0
18- بیت دوم پورت A : RA1
1- بیت سوم پورت A : RA2
2- بیت چهارم پورت A : RA3
3- بیت پنجم پورت A : RA4
6- بیت اول پورت B : RB0
7- بیت دوم پورت B : RB1
8- بیت سوم پورت B : RB2
9- بیت چهارم پورت B : RB3
10- بیت پنجم پورت B : RB4
11- بیت ششم پورت B : RB5
12- بیت هفتم پورت B : RB6
13- بیت هشتم پورت B : RB7


4- MCLR برای Reset کردن بوده و در حالت عادی عکس می باشد یعنی باید به منبع ولتاژ وصل باشد.
5- vss (GND)
14-vdd (VCC)
15 و 16- برای اتصال به یک نوسان ساز(مانند کریستال)

 

 

ساختار حافظه
میکروکنترلرهای PIC از نظر نوع حافظه به 4 دسته تقسیم می شوند :
1- دارای حافظه از نوع Flash هستند : آی سی هایی که دارای حرف F هستند مانند 16F84
2- دارای حافظه از نوع EPROM هستند : آی سی هایی که دارای حرف C یا CE هستند مانند 16C84 -16CE625
3-دارای حافظه از نوع ROM هستند :آی سی هایی که دارای حرف CR هستند مانند 16CR84
4-دارای حافظه از نوع EEPROM هستند .
همچنین آی سی هایی که دارای حرف L هستند دارای رنج ولتاژ گسترده ای هستند .

  • علی رضا ثریاخواه

میکروکنترلر ARM چیست؟

این قطعات پردازنده ای هستند ، از نوع 32 بیتی و دارای معماری RISC هستند و سرعت نسبتا بالایی هم دارند (کلاک از 300 تا 2000 مگاهرتز)و مجهز به برخی امکانات داخلی (adc و dac و تایمر وکانتر و pwm و rtc و i2c و spi و dmaو ...)وحافظه کش هستند . قابلیت ها و باس های استانداردی که برای این پروسسورها در نظر گرفته شده به همراه سرعت بالا ، حافظه کش مناسب ، مقایسه گرهای داخلی ، تایمرهای 16 بیتی برای پیاده سازی RTC و ... ، باعث شده که عملکرد این تراشه ها نسبت به انواع دیگر پروسسورهای هم تراز ، دارای کیفیت و قدرت بالاتری باشه .





چرا قبلا از این پردازنده استفاده نمیشده ، ایا به تازگی وارد بازار شدند؟


این پردازنده قبلا توسط شرکت arm تولید میشده که این شرکت هم به قیمت بالا این پردازنده رو به مشتریان خاص میفروخته ، اما از اوایل سال 2002 به بعد این شرکت مجوز ساخت این پردازنده رو به شرکتی های همچون ATMEL و
Luminary Micro و شرکت philips و چند تا شرکت دیگه میده .
شرکت های فوق با اضافه کردن امکاناتی مثل انواع مبدل ها (دیجتال به انالوگ و ....)، انواع رابط ها (بلوتوث ، usb )و... این پردازنده رو به یک پردازنده عمومی تبدیل میکنند و اون رو به بازار جهانی عرضه میکنن.


برای برنامه نویسی این پردازنده ها از چه زبان و کامپایلری استفاده میشه ؟


برای برنامه نویسی این پردازنده از زبان های c و بیسیک و اسمبلی استفاده میشه .
کلیه کامپایلر های زبان اسمبلی برای این پردازنده رایگان هستند و شما میتونید از لینک های زیر اونا رو دانلود کنید:


http://www.spjsystems.com/traininga.htm
http://www.heyrick.co.uk/assembler
http://www.riscworld.co


برای زبان های c مثل خود c و c++ کامپایلر های متعددی ارائه شده که کی از این کامپایلر ها کامپایلر keil uvision هست که در اون میشه به زبان های اسمبلی و c و c++ برنامه نوشت .
نسخه رایگان این کامپایلر در لینک زیر موجود است:


http://www.keil.com/download/docs/324.asp


برای زبان بیسیک نیز کامپایلر بسکام arm وجود داره که هنوز در دسترس عموم قرار نگرفته تا کرک بشه.


ایا این پردازنده cpu هستند یا مانند میکرو کنترلر ها میباشند ، یعنی در در داخل خود ram و i/o و.. دارند یا نه ما خودمان باید این امکانات را بهش اضافه کنیم ؟

این پردازنده در نمونه های گوناگونی ارایه شده است مثلا مدل LPC2138 دارای 512 کیلو حافظه فلش ، 32 کیلو حافظه رم ، مبدل آنالوگ به دیجیتال ، مبدل دیجیتال به آنالوگ و ... میباشد
یا مدل at76c551 ساخت شرکت اتمل دارای امکانتی همچون بلوتوث ، ارتباط usb و... هست
یا مدل arm7tdmi فقط یک پردازنده است که روی خود فقط خطوط i/o دارد و باید برای ان مانند یک میکرو پروسوسر واحد های rom و ram و کانتر و... تعبیه کرد
این پردازنده در مدل های وسیع ساخته میشوند (بسیار گسترده تر از avr و pic و.. ) و دست شما برای انتخاب باز است برای اطلاعات بیشتر در مورد هر پردازنده به شرکت سازنده مراجعه کنید :


http://www.us.design-reuse.com/articles/...13742.html
http://www.arm.com/products/CPUs
http://www.atmel.com

ایا برای شبیه سازی این میکرو پروسسور ها نرم افزاری وجود دارد ، قیمت انها در چه حدی است ؟


خود نرم افزار kiel دارای قسمت شبیه ساز میباشد ، به علاوه نرم افزار قدرتمند پروتوس نیز از این پروسسور ها پشتیبانی میکند

قیمت این پروسسور ها بسته به امکانات از 5 تا 500 هزار تومان متغییر است،
مثلا قیمت lpc2300 نه هزار تومان است ، این پروسسور دارای امکانات زیر میباشد:
فرکانس کاری 72 مگاهرتز
512 کیلو حافظه فلش قابل برنامه ریزی
8 کیلو sram برای cpu و 16 کیلو برای شبکه و 8 کیلو هم برای usb
قابلیت اتصال به usb و شبکه lan و...
قابلیت اتصال کارت mmc و sd و...
پشتیبانی از usb 2.0
پورت های spi و i2c و ...
70 تا پایه ورودی و خروجی
6 تا adc ده بیتی
چند تا dac 10 بیتی (توی دیتا شیت تعداد نزده)
5 عدد تایمر و کانتر که میتونن از بیرون تحریک بشن و ...
rtc
ولتاژ تغذیه 3.3 تا 3.6 ولت
نوسان ساز داخلی کریستالی از 1 تا 24 مگاهرتز
و کلی امکانات دیگه که توی دیتا شیت این پروسسور موجود هست.




ایا کتاب و منبع فارسی یا انگلیسی برای یاد گیری این پروسسور میشناسید ؟

منبع انگلیسی :
help نرم افزار و سایت های زیر:


http://www.arm.com/documentation/books.html


کتاب به زبان اسمبلی:


http://www.arm.com/miscPDFs/9658.pdf

 

  • علی رضا ثریاخواه

میکرو کنترلر AVR چیست؟

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

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

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

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

درگاهها ورودی / خروجی (I/O )به سیگنال های دیجیتال بیرونی امکان می دهند که با میکرو کنترلر ارتباط پیدا کند. درگاههای I/O معمولاً به صورت گروههای ۸ بیتی دسته بندی می شوند و به هر گروه نیز نام خاصی اطلاق می شود. به عنوان مثال ، میکروکنترلر ۸۰۵۱ دارای ۴ درگاه ورودی / خروجی ۸ بیت می باشد که P۳, P۲, P۱, P۰ نامیده می شوند. در تعدادی از میکرو کنترلر ها ، جهت خطوط درگاه I/O قابل برنامه ریزی می باشد. لذا بیت های مختلف یک درگاه را می توان به صورت ورودی یا خروجی برنامه ریزی نمود. در برخی دیگر از میکروکنترلرها (از جمله میکروکنترلرهای ۸۰۵۱) درگاههای I/O به صورت دو طرفه می باشند. هر خط از درگاه I/O این گونه میکرو کنترلرها را می توان به صورت ورودی و یا خروجی مورد استفاده قرار داد . معمولاً ، این گونه خطوط خروجی ، به همراه مقاومتهای بالا کش بیرونی به کار برده می شوند.

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

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

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

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

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

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

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

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

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


* این میکروها تا مقدار ۱.۸ ولت قابل تغذیه هستند که این امر باعث طولانی تر شدن عمر باتری می شود.


* در میکروهای با توان پایین ، عملیات شبیه حالت Standby است یعنی میکرو می تواند تمام اعمال داخلی و جنبی را متوقف کند و کریستال خارجی را به همان وضعیت شش کلاک در هر چرخه رها کند!

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

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


* بسیار آسان برای استفاده

 
  * کاهش یافتن زمان برنامه ریزی


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

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

موازی یا Parallel :

یکی از سریعترین روشهای برنامه ریزی


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

 

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

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

 

ISP:

·        واسطه سه سیمی محلی برای بروزرسانی سریع


* آسان و موثر در استفاده

 

واسطه JTAG :

·   واسطه ای که تسلیم قانون IEEE ۱۱۴۹.۱ است و می تواند به صورت NVM برنامه ریزی کند یعنی هنگام قطع جریان برق داده ها از بین نروند.استفاده از فیوزها و بیتهای قفل.

·       
* بیشتر برای دیباگ کردن آنچیپ و به منظور تست استفاده می شود


مقایسه avr با ۸۰۵۱


مقایسه ما با تمام میکروهای ۸ بیتی هست یعنی در مجموع میشه گفت AVR یه رقیب قدرتمند برای بقیه میکروهای قوی است و یه انقلاب بزرگ هم به شمار میره. هنوز هیچ میکرویی به سرعت بالای AVR در محاسبات دست پیدانکرده .در ضمن AVR قادره که محاسبات ۱۶ بیتی رو هم انجام بده. شهار ATMEL هم اینکه شما پول یه میکرو ۸ بیتی رو میدید ولی میتونید از قایلیتهای یک میکرو ۱۶ بیتی استفاده کنید.
AVR از معماری RISC با تعداد دستورالعمل بالا بهره میبره که دربین میکروها کم نظیر هست. اکثر دستورالعمل های آن باوجود زیاد بودن تعداد دستورالعملها در یک سیکل انجام میشه.


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


AVR حتی برعکس میکروهای دیگه هیچ تقسیم کلاکی انجام نمیده(مثلا ۸۰۵۱ کلاک رو بر ۱۲ و PIC که یه میکرو قدرتمند هست کلاک رو بر ۴ تقسیم میکنه). این امر که AVR کلاک رو تقسیم نمیکنه موجب کاهش مصرف انژی و افزایش MIPS شده.

تکنولوژی بکار رفته در AVR موجب شده که حتی میتوان از آن در محیط های صنعتی و پر نویز براحتی از آن استفاده کرد(به گفته خود ATMEL والا هنوز خودم یه تست دقیق انجام ندادم ولی اون رو با یه فیبر یه رو و با یه کابل LCD تقریبا ۲۰ سانتی و یا استفاده از باتری ماشین در کنار شمع پیکان غیر انژکتوری تست کردم ولی فقط در فاصله تقریبا ۵-۶ سانتی از اون صفحه LCD قاتی میکرد ولی نمیدونم میکرو هم ریست میشد یا نه .در ضمن قسمت تغذیه فقط از یک ۷۸۰۵ تشکیل شده بود. و این آزمایش هم برای خودم و هم برای چند تا از دوستانم که کارهای صنعتی انجام میدادن شگفت آور بود). اما به دلیل اینکه هنوز هیچ کسی اون رو تابه حال در محیط صنعتی تست نکرده و به دلیل اطمینان بالای PIC هیچ کسی دوست نداره اعتبار خودش رو به خطر بندازه.


یه جا یه مهندسه میگفت توی یه محط صنعتی که حتی کامپیوتر ریست میکرده PIC به خوبی کار خودشو انجام میداده!!!!!!!!!!

در ضمن AVR مجهز به آخرین امکانات مثل تایمر واچ داگ و برون اوت دیتکتور و مبدل های ADC و PWM است.


یکی از مهمترین بخشی که کمتر در هر میکرویی دیده میشه مقایسه کننده آنالوگ با گین ۱ و ۱۰ و ۲۰۰ و .. است که بسته به میکرو فرق میکنه.


این مقایسه کننده میتونه تو ورودی مبدل ADC قرار بگیره . این بخش برای بعضی طراحان خیلی مهمه و اونا رو مجذوب خودش کرده.


خانواده میکروکنترلرهای AVR شامل طیف گسترده ای از آی سی ها است که از ۸ پایه شروع و به ۶۴ پایه ختم می شود. اما در بین این طیف گسترده تعدادی استفاده عمومی تری دارند مانند ATMEGA۳۲ . که در تمام مثالهای آورده شده از این آی سی استفاده شده است .

مشخصات سخت افزاری ATMEGA۳۲ :

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

ATMEGA۳۲ در سه نوع بسته بندی PDIP با ۴۰ پایه و TQFP با ۴۴پایه و MLF با ۴۴ پایه ساخته میشود که در بازار ایران بیشتر نوع PDIP موجود میباشد .

ATMRGA۳۲ دارای چهار پورت ۸بیتی ( ۱ بایتی ) دارد که علاوه بر اینکه بعنوان یک پورت معمولی میتوانند باشند کارهای دیگری نیز انجام میدهند . بطور مثال PORTA میتواند بعنوان ورودی ADC (تبدیل ولتاژ آنالوگ به کد دیجیتال ) استفاده شود که این خاصیت های مختلف پورت در برنامه ای که نوشته میشود تعیین خواهد شد .


ولتاژ مصرفی این آی سی از ۴.۵ V تا ۵.۵V میتواند باشد .
فرکانس کار هم تا ۱۶MHz میتواند انتخاب شود که تا ۸MHz نیازی به کریستال خارجی نیست و در داخل خود آی سی میتواند تامین شود . فرکانس کار از جمله مواردی است که باید در برنامه تعیین شود . لازم به ذکر است که این فرکانس بدون هیچ تقسیمی به CPU داده میشود . بنابراین این خانواده از میکروکنترلرها سرعت بیشتری نسبت خانواده های دیگر دارند .


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

 

 


پایه های ۱۲ , ۱۳ نیز برای استفاده از کریستال خارجی تعبیه شده است


ساختار داخلی ATMGA۳۲ :


برنامه ای که برای میکروکنترلر در کامپیوتر نوشته میشود وقتی که برای استفاده در آی سی ریخته میشود ( توسط پروگرامر مخصوص آن خانواده ) در مکانی از آن آی سی ذخیره خواهد شد بنام ROM . حال در ATMEGA۳۲ مقدار این حافظه به ۳۲KB ( ۳۲ کیلوبایت ) میرسد .
در این آی سی مکانی برای ذخیره موقت اطلاعات یا همان RAM هم وجود دارد که مقدارش ۲KB است .


در RAM اطلاعات فقط تا زمانی که انرژی الکتریکی موجود باشد خواهد ماند و با قطع باتری اطلاعات از دست خواهند رفت . به همین منظور در ATMEGA۳۲ مکانی برای ذخیره اطلاعات وجود دارد که با قطع انرژی از دست نخواهند رفت . به این نوع حافظه ها EEPROM گفته میشود که در این آی سی مقدارش ۱KB است و تا ۱۰۰,۰۰۰ بار میتواند پر و خالی شود .

نرم افزار


نرم افزار مورد نیاز برای برنامه نویسی :


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

تحلیل برنامه

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

۱:در قسمت معرفی آی سی از کلمه کلیدی $Regfile برای معرفی استفاده شده است . این دستور به این صورت است که باید بعد ازآن کلمه معرف آی سی مورد استفاده را در جلوی آن وارد کنیم . البته برای هر آی سی کلمه ی مخصوصی وجود دارد که برای ATMEGA۳۲ باید کلمه ی M۳۲def.dat را تایپ کرد . البته باید توجه داشت که این کلمه باید داخل یک جفت کوتیشن ( گ + Shift ) قرار گیرد :


$Regfile = “M۳۲def.dat”

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

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


Config Portb = output

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

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

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

معرفی LCD کارکتری :


LCD های کارکتری خود به چند نوع دیگر از لحاظ اندازه تقسیم بندی میشوند . که از LCD هایی با ۱ سطر و ۱ ستون آغاز میشوند تا اندازهایی مثل ۴ سطر و ۴۰ ستون که البته تمام آنها از ۱۶پایه تشکیل شده اند.

 


برای راه اندازی LCD توسط AVR نیازی به دانستن جزئیات طرز کار LCD نیست . برای کار با LCD علاوه بر پایه های تغذیه و CONTRAST ( تنظیم روشنایی ) که باید مانند شکل مداری پایین بایاس شوند نیاز به ۶ پایه ی دیگر است که عبارتند از پایه های :


RS , E , DB۴ , DB۵ , DB۶ , DB۷ .

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

۱:برای تعیین نوع LCD از کلمات کلیدی Config و بعد از آن Lcd استفاده شده و آنها را مساوی نوع LCD مورد استفاده قرار میدهیم که در اینجا نوع مورد استفاده دارای ۲ سطر و ۱۶ ستون میباشد. پس بصورت زیر خواهیم نوشت :


Config Lcd = ۱۶*۲

۲: در مرحله ی بعد ترتیب وصل کردن پایه ها را معرفی خواهیم کرد و برای اینکار پایه هایی از LCD را که برای راه اندازی آن استفاده میشود و قبلا نیز گفته شده بود را مساوی پایه هایی از میکروکنترلر قرار میدهیم که میخواهیم به آنها وصل شود و البته این نوع راه اندازی توسط AVR را که تنها با شش پایه صورت میگیرد را نوع راه اندازی PIN میگویند . پس طبق سخت افزار نشان داده شده بصورت زیر خواهیم نوشت :
Config Lcdpin = pin , Rs = porta.۰ , e = porta.۱ , db۴ = porta.۲ , db۵ = porta.۳ , db۶ = porta.۴ , db۷ = porta.۵
( به علامت , بین بخشها دقت کنید . )

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

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

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

کامپایل برنامه نوشته شده :


بعد از نوشتن برنامه باید آنرا کامپایل کرد تا اگر اشتباهی در تایپ کلمه ای وجود داشته باشد برای اصلاح آن اخطار داده شود و فایلهای از جمله فایل هگز که برای پروگرام کردن نیاز است ابجاد گردند . برای کامپایل برنامه همانطور که در تصویر بخش اول نمایش داده شده است باید از دکمه ی F۷ استفاده کرد . با انجام اینکار برنامه ی ما کامپایل خواهد شد .
پروگرام کردن IC :


بعد از کامپایل برنامه نوبت به آن رسیده است که با نحوه ریختن برنامه داخل IC یا باصطلاح پروگرام کردن آشنا شوید . پس نیاز است که یک دستگاه پروگرامر مختص به خانواده AVR داشته باشید . برای پروگرام کردن میکروکنترلرهای خانواده AVR انواع مختلفی پروگرامر که از استانداردهای خاصی پیروی میکنند وجود دارد که مصرف عمومی تر را پروگرامهای نوع STK۲۰۰/۳۰۰ دارند که البته دارای مدار بسیار ساده ایست و برای پروگرام کردن از کابل LPT ( پرینتر ) استفاده میکند و در بازار هم بیشتر این نوع پروگرامر یافت میشود .


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

بعد از انتخاب این گزینه کادر نمایش داده شده که در قسمت نمایش داده شده توسط خط قرمز نوع پروگرامر را انتخاب میکنیم :


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

  • علی رضا ثریاخواه

اِی‌وی‌آر (به انگلیسی: AVR)، خانواده‌ای از ریزکنترل‌گرهای جدید است که شرکت اتمل، آن را روانهٔ بازار الکترونیک کرده است. این ریزکنترل‌گرهای هشت بیتی به خاطر دارا بودن قابلیت برنامه‌نویسی توسط کامپایلر زبان‌های برنامه نویسی سطح بالا، مورد توجه قرار می‌گیرند. این ریزکنترل‌گرها از معماری ریسک برخوردارند. همچنین شرکت اتمل کوشیده‌است تا با استفاده از معماری پیشرفته و دستورهای بهینه، حجم کد تولید شده را پایین آورده و سرعت اجرای برنامه را بالا ببرد. یکی از مشخصات این نوع ریزکنترل‌گرها دارا بودن ۳۲ ثبات همه منظوره است. همچنین در این ریزکنترل‌گرها، از حافظه‌های کم مصرف و غیر فرار فلش و ای‌ای‌پی‌رام استفاده می‌شود.

کامپایلرهایی به زبان بیسیک و C که زبان‌هایی پرکاربردی در دنیا محسوب می‌شوند: برای این نوع ریزکنترل‌گرها طراحی شده‌است.البته در حال حاضر استفاده از کامپایلر بسکام BAScom که نسبت به زبان c بسیار راحت تر و سریع تر عمل می کند جایگزین زبان c شده است . همچنین زبان اسمبلی را نیز می‌توان برای برنامه‌نویسی به کار برد. برای نمونه کامپایلر بسکام با زبان بیسیک برای برنامه‌نویسی این نوع از ریزکنترل‌گرها می‌تواند به کار رود. همچنین نرم‌افزار CodeVision، برای برنامه‌نویسی به زبان C ( سازگار با این ریزکنترل‌گرها) بسیار رایج است(البته این برنامه بیشتر میان کاربران ایرانی رواج دارد، در میان کاربرهای خارجی کمتر دیده شده و بیشتر از برنامه ی رسمی شرکت Atmel استفاده می شود).

Atmel AVR ATmega8 PDIP

  • علی رضا ثریاخواه

تقویت‌کننده عملیاتی


چند نوع مختلف ای سی تقویت کننده عملیاتی

ایده به کارگیری تقویت کننده‌های عملیاتی یا آپ امپ (به انگلیسی: op-amp یا Operational amplifier) اولین بار در دهه ۱۹۴۰ میلادی و در مدار کامپیوترهای آنالوگ مطرح شد. در این کاربرد با قرار دادن عناصر مختلف بین سرهای ورودی و خروجی تقوکننده عملیاتی مدارهای مختلف با کارایی‌های متفاوت طراحی می‌شد. با گسترش دامنه کاربرد الکترونیک، استفاده از تقویت کننده عملیاتی نیز توسعه فراوان یافت. در سال ۱۹۶۰ میلادی اولین بار تقویت کننده عملیاتی به صورت مدار مجتمع طراحی و ساخته شد و با حجم، وزن و قیمت به مراتب کمتر به بازار مصرف ارائه گردید. پیشرفت فناوری و مطرح شدن نیازهای متنوع تر و تخصصی تر، زمینه را برای عرضه تقویت کننده‌های عملیاتی خاص فراهم نمود. تقویت کننده عملیاتی در واقع یک تقویت کننده ولتاژ با بهره ولتاژ بسیار بالاست و معمولاً دارای یک سر خروجی و دو سر ورودی است که سرهای ورودی به صورت تفاضلی عمل می‌کنند. به عبارت دیگر این تقویت کننده اختلاف ولتاژ بین ورودی را تقویت می‌کند. یکی از دو سر، ورودی منفی (-) یا معکوس کننده نام دارد، زیرا تقویت کننده برای ورودی‌های اعمال شده به این سر دارای بهره منفی خواهد بود. سر دیگر ورودی مثبت (+) یا غیر معکوس کننده‌است و سیگنال‌های ورودی به این سر، در خروجی با بهره مثبت ظاهر می‌شوند. این تقویت کننده دارای مقاومت خروجی بسیار کوچک (حدود چند اهم) بوده و از مقاومت ورودی بسیار بزرگی (بیش از چند صد کیلو اهم) برخورداراست. چون تقویت کننده عملیاتی یک قطعه فعال است برای تأمین انرژی مصرفی و بایاس ترانزیستورهای داخلی خود به تغذیه DC نیاز دارد.

نماد تقویت کننده عملیاتی

  • علی رضا ثریاخواه

هویه وسیله‌ای است که برای ذوب لحیم و اتصال قطعات به یکدگیر به کار می‌رود. هویه‌ها را می‌توان به دو دسته‌ی اصلی تقسیم کرد، هویه‌های چکشی (غیرالکتریکی) و هویه‌های الکتریکی. با توجه به نقطه‌ی اتصال و اندازه‌ی آن باید هویه مناسب که بتواند دمای لازم را ایجاد کند انتخاب نمود.

هویه تفنگی
  • علی رضا ثریاخواه

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


  • علی رضا ثریاخواه

رله نوعی کلید الکتریکی سریع یا بی‌درنگ است که با هدایت یک مدار الکتریکی دیگر باز و بسته می‌شود. روش کنترل باز و بسته شدن این کلید الکتریکی به صورتهای مختلف مکانیکی، حرارتی، مغناطیسی، الکترو استاتیک و... می‌باشد. رله را ژوزف هانری در سال ۱۸۳۵ میلادی اختراع کرد.

از آنجا که رله می‌تواند جریانی قوی‌تر از جریان ورودی را هدایت کند، به معنی وسیع‌تر می‌توان آن را نوعی تقویت کننده نیز دانست.

در گذشته رله‌ها معمولاً با سیم‌پیچ ساخته می‌شد و از جریان برق برای تولید میدان مغناطیسی و باز و بسته کردن مدار سود می‌برد. امروزه بسیاری از رله‌ها به صورت حالت جامد ساخته می‌شوند و اجزای متحرک ندارند.

سازوکار قطع و وصل توسط مدار الکتریکی یک رله

  • علی رضا ثریاخواه

آرمیچر (به انگلیسی: Armature) آن بخش از موتور الکتریکی است که به آن ولتاژ ورودی اعمال می‌شود یا آن بخش از ژنراتور است که در آن ولتاژ خروجی ایجاد می‌شود. با توجه به طراحی ماشین، هر کدام از بخشهای چرخان یا ایستان می‌توانند به عنوان آرمیچر باشند.

هر چه تعداد حلقه‌های کلاف دینام (آرمیچر) بیشتر باشد و نیز هر چه خطوط قوای مغناطیسی آهنربای آن (یا بالشتک‌ها) قوی‌تر باشد و یا بالاخره هر چه سرعت گردش آرمیچر زیادتر باشد در نتیجه ولتاژ خروجی دینام بیشتر خواهد شد. سه عیب عمده در آرمیچرها اتصال کوتاه، اتصال سیم پیچ آرمیچر به بدنه و باز بودن مدار آرمیچر (قطع بودن سیم‌ها) است.

سیم‌پیچی آرمیچر

سیم‌پیچی آرمیچر مبتنی بر اصول فنی خاص است که بسته به نیاز کلاف‌ها می‌توانند بطور سری یا موازی یا ترکیبی از این دو به همدیگر وصل می‌شوند. در صورتی‌که کلاف‌ها با هم سری شوند نیرومحرکه کلاف‌ها با هم جمع می‌شوند و ولتاژ دهی آرمیچر افزایش می‌یابد. (سیم پیچی موجی)

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


یک آرمیچر دی‌سی.
  • علی رضا ثریاخواه

فیبر آزمایش یا بردبورد (Breadboard) وسیله‌ای است که در چیدمان اولیه و آزمایشی یک مدار کمک می‌کند. بیشتر افرادی که در زمینه پروژه‌های الکترونیک کار می‌کنند ابتدا مدار خود را بر روی بردبورد می‌بندند و پس از جواب گرفتن آنرا بر روی مدارت چاپی یا فیبر‌های سوراخ‌دار مسی پیاده می‌کنند.


کارکرد بردبورد

لایه‌های داخلی بردبورد از نوارهای فلزی (معمولا مسی) تشکیل شده است که در لایه زیرین بدون هیچ اتصالی با یکدیگر در پایین بورد قرار دارند و توسط شکاف‌های پلاستیکی این لایه‌های فلزی تا بالای بورد هدایت شده‌اند و این امکان را می‌دهد تا قطعات الکترونیکی به یکدیگر وصل شوند. برای استفاده از برد بورد کافیست پایه‌های قطعات را درون شکاف مورد نطر فرو برده شود.
هر سیم که وارد این حفره‌ها می‌شود گره (Node) نامیده می‌شودو هر گره را نقطه مدار (Point) می نامند که باعث متصل شدن دو قطعه به یکدیگر شده است.

  • علی رضا ثریاخواه