در اين بخش مي‌توانيد آموزش و مثال‌های مرتبط با میکروکنترلرهای AVR را مشاهده بفرمایید

مطالب برایتان مفید بود

عالی و ساده بود،ادامه دهید
15
79%
خوب و قابل فهم بود،ادامه دهید
4
21%
ساده و قابل فهم نبود.
0
بدون راي
تکراری و سخت بود.
0
بدون راي
 
کل آرا : 19
Colonel II

Colonel II



نماد کاربر
پست ها

6475

تشکر کرده: 1658 مرتبه
تشکر شده: 8028 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

آموزش میکروکنترولر AVR از ابتدا تا پیشرفته

توسط sinaset » چهارشنبه 23 دی 1394 09:28

بنام خداوند بخشنده و مهربان
با سلام خدمت همگی


آموزش میکروکنترولر AVR از ابتدا تا پیشرفته


صحبت آغازین(خارج از مبحث AVR)

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

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


نحویه آموزش ها و مبحث ها تاپیک

در این تاپیک سعی خواهد شد که،با تصاویر و عکس های متحرک و فیلم  + توضیحات ساده ذهن مخاطب را نسبت به میکروکنترولر AVR بازتر کند.

مبحث ها تا حد امکان در این تاپیک بیان میشود،اما بعضی مسائل بدلیل طولانی بودن را نمی توان به طور کامل در این تاپیک بیان کرد! برای همین در تاپیک های تخصصی آن ها را ادامه خواهیم داد(به عنوان مثال کار با واحد های USART یا TIMER ها یا ADC یا....)

زبان برنامه نویسی مورد استفاده در این تاپیک C (کدویژن) می باشد. و شبیه ساز مورد استفاده پرتئوس 8 می باشد.


فهرست موضوعات موجود در تاپیک:

صفحه اول:
(بطور کلی)میکروکنترولر چیست و چه کارهای می توان با ان انجام داد؟!
میکروکنترولر و میکروپروسسور چیست و تفاوتشان  باهم دیگر در چیست؟!(به زبان ساده)
چه شرکت های معتبر میکروکنترولر سازنده میکروکنترولر هستن؟!

میکروکنترولر AVR و ساختار داخلیش.
*آشنایی کوتاه با واحدهای درونی میکروکنترولر:
مرور کوتاه بر پردازش 8 بیتی میکروکنترولر

مروری کوتاه بر تفاوت 8 بیت و 16 بیت و 32 بیت
مروری کوتاه بر فرکانس در میکروکنترولر
مروری کوتاه بر محاسبات در میکروکنترولر

حافظه ها در میکروکنترولر
-ابتدا حافظه EEPROM (قسمت اول)
-حافظه EEPROM قسمت پایانی
-مفهوم BIT
-مفهوم Byte
-حافظه FLASH (یا Flash memory)

صفحه دوم:
حافظه RAM-قسمت اول
RAM -قسمت پایانی
حافظه رم STATIC
حافظه رم Dynamic
حافظه رم NV-Ram
آشنایی با IO (خروجی و ورودها)
آشنایی با بافر
آشنایی با Cpu قسمت اول
آشنایی با Cpu قسمت دوم
-واحد شمارنده برنامه، Program Counter
-واحد اشاره گر پشته Stack Pointer
-ریجستر دستورات instruction Register
-آشکار سازی دستورات Instruction Decoder
آشنایی با Cpu قسمت سوم
-ریجستر یا ثبات Register(یک موضوع فرعی)
-ریجسترهای همه منظوره General Purpose Register
-ریجستر های X,Y,Z
آشنایی با Cpu قسمت پایانی
-واحد محاسبه و منطق ALU با اسم کامل Arithmetic Logic Unit
-ریجستر SREG ( با نام کامل Status Register)
واحد کنترول کلاک AVR
منابع کلاک (یا نوسان سازی) در میکروکنترلر
-Calibrated Rc Oscillator - اسیلاتور کالیبره داخلی.
-Low-frequency Crystal Oscillator - اسیلاتور فرکانس پایین.
-CrystalOscillator -اسیلاتور خارجی .
-External Clock- نوسان سازی با کلاک خارجی
-External RC Oscillator- استفاده از نوسان ساز RC خارجی.
صفحه سوم
وضعیت پورت ها در AVR پورت ها
سگ نگهبان Watchdog
مروری دوباره بر پردازش 8 بیت و فرکانس در سی پی یو
معماری ریسک در AVR
آشنای مختصر با معماری مهم CISC و RISC .
پایه تغذیه میکروکنترولر
پایه RESET (ریست)
منابع ریست در میکرو کنترولر.
پایه های کریستال خارجی XTAL
فیوز بیت ها FUSE BIT
صفحه چهارم
خانواده میکروکنترولر AVR
-سری Tiny
-سری Atmega
-سری Xmega
-سری UC3 و AP7
معرفی بعضی مدل های معروف خانواده AVR
-سری TINY
--ATTINY26
--ATTINY2313
-سری ATMEGA
--ATMEGA8
--ATMEGA32
--ATMEGA128
--ATMEGA2560
--ATMEGA328
برنامه نویسی سخت افزاری
-برنامه نویسی سطح پایین
-برنامه نویسی سطح بالا
-برنامه نویسی سطح میانه
ما در برنامه نویسی دقیقا چه کاری انجام میدهیم؟
صفحه پنجم
کدویژن
-ویژگی ها کد ویژن
ساختار کدها در برنامه نویسی
-فایل ها سرامد یا پیش پردازندها
-تعریف شناسه ها یا ثواب ها!
-متغیرها
-تابع فرعی
-تابع اصلی
-حلقه ها
عملگرها
-عملگرها ریاضی
صفحه ششم
-عملگرها منطقی
شرط در برنامه نویسی
-دستور شرط IF
حلقه while
حلقه for
صفحه هفتم
دستور switch
دستور goto
آرایه ها
آشنایی با کتابخانه ها
تعریف کتابخانه در برنامه

معرفی کتابخانه delay و مثال
کتابخانه string.h
کتابخانه ctype.h
آشنایی با محیط کدویژن
پروگرامر کردن میکروکنترولر
پروگرامر پیشنهادی
معرفی پرواگرمر
صفحه هشتم
اموزش و پروگرام چشمک زن ساده با LED
چشمک زدن به ترتیب 8 LED
مبحث مبنا های هگز،دسیمال،باینری

روشن شدن LED ها به صورت BCD
آشنایی با سون سگمنت
آزمایش و راه اندازی صحیح سون سگمنت
نمایش اعداد 0 تا 9 به کمک سون سگمنت
منابعی برای مطالعه بیشتر:
تاپیک ها:1- لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  2- لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 
تاپیک های جزء تر مباحث: (بزودی..)
کتاب های کمکی برای اموزش:1-میکروکنترولرهای AVR،تالیف،مهندس جابر الوندی 2-میکروکنترولرهای avr برنامه نویسی اسمبلی و C تالیف و ترجمه محمد علی مزیدی،سپهرنعمتی،سرمدنعمتی و اناهیتا نعمتی.

لینک های دانلود و موارد مورد نیاز:

 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد نرم افزار کدویژن.دانلود نرم افزار پرتئوس و کتابخانه هایش در  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

5 کاربر از این پست سپاسگزاري کرده اند

Colonel II

Colonel II



نماد کاربر
پست ها

6475

تشکر کرده: 1658 مرتبه
تشکر شده: 8028 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته

توسط sinaset » چهارشنبه 23 دی 1394 10:13

بنام خدا
با سلام


(بطور کلی)میکروکنترولر چیست و چه کارهای می توان با ان انجام داد؟!

شاید اولین سوالی که ذهن هرشخصی را با ان مشغول می کند،این باشد که،اصلا میکروکنترولر چیست و چه کاری می توان با انجام داد؟!

میکروکنترولر به زبان ساده،وسیله است که ما می توانیم به کمک واحد ها و رابط ها درونیش، بی نهایت وسیله هوشمند و پیشرفته بسازیم! ما با میکروکنترولر دستمان حسابی باز است،می توانیم،خلاقیت ها خودمان را با میکروکنترولر پیاده سازی کنیم.

بطور کلی همه کارهای که نیاز به پردازش (یا محاسبات) کم و ساده دارند،را ما می توانیم با میکروکنترولر درست کنیم.

به عنوان مثال:

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

(لازم به ذکر بعضی وسایل که در بالا گفته شده،نیازی به ایسی و قطعات دیگر علاوه بر میکروکنترولر دارند)

بطو کلی میکروکنترولر به مانند یک طلا می ماند!که اگر بدرستی با جزییات و مفاهیم ان آشنایی پیدا کنید،می توانید به یکی از علوم تاثیر گذار روز (و آینده) احاطه پیدا کنید.

باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

7 کاربر از این پست سپاسگزاري کرده اند

Major II

Major II



نماد کاربر
پست ها

563

تشکر کرده: 283 مرتبه
تشکر شده: 190 مرتبه
تاريخ عضويت

دوشنبه 7 اسفند 1385 04:54

آرشيو سپاس: 1326 مرتبه در 369 پست

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته

توسط mj_piremard » چهارشنبه 23 دی 1394 15:15

با سلام
بی صبرانه منتظر ادامه این تایپیک هستم.و از شما تشکر میکنم
چه خوب خوند حرف دلمو

سهم من از دنیا همینه که تو تنهایی شبهام کسی اشکامو نبینه کسی اشکامو نبینه.

2 کاربر از این پست سپاسگزاري کرده اند

Colonel II

Colonel II



نماد کاربر
پست ها

6475

تشکر کرده: 1658 مرتبه
تشکر شده: 8028 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته

توسط sinaset » پنج شنبه 24 دی 1394 09:34

بنام خدا
با سلام

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

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

میکروکنترولر به مانند یک ماشین مجهز و با همه امکانات می باشد.برای همین خیلی راحت می توان به آن کار کرد .

میکروکنترولر به زبان ساده تر،به مانند یک کامپیوتر ! می باشد که 1000 بار ضعیف تر شده است. یعنی کامپیوتری که از رم،حافظه،کارت گرافیک و هاردیسک و ... تشکیل شده

اما میکروپروسسور :

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

میکروپروسسور به مانند یک سی پی یو کامپیوتر می مانند که 1000 بار ضعیف تر شده است،میکروپروسسور در واقع به مانند سی پی یو کامپیوتر می مانند که دیگر واحد مثل مادربرد،کارت گرافیک و رم و ... ندارد!

--
میکروکنترولر از مجموعه قطعات زیر به وجود امده است:(که میکرو پروسسور هم در ان وجود دارد!)

پس میکروکنترولر، مجموعه همه قطعات مورد نیاز ( وضروری) را درون چیپ خودش قرار داده،تا بتوان طرح و کارها مورد نظرمان را راحتر و سریعتر انجام دهیم .
*اما میکروپروسسور بی استفاده نیست!بلکه در پروژه و کارهای که نیاز به محاسبات زیادی وجود دارد از میکروپروسسور استفاده میشود.
تعریف عملکرد دو قطعه بصورت کوتاه:
میکروپروسسور: تمرکز بر روی پردازش بدون دیگر لوازم.
میکروکنترولر:عملکرد کنترولی بر روی مجموعه واحدها و رابط های ضروری .
برای درک تفاوت ایسی با میکروکنترولر هم می توانید به  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد تاپیک مراجعه فرمایید.
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

6 کاربر از این پست سپاسگزاري کرده اند

Colonel II

Colonel II



نماد کاربر
پست ها

6475

تشکر کرده: 1658 مرتبه
تشکر شده: 8028 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته

توسط sinaset » پنج شنبه 24 دی 1394 10:19



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

به طور کلی و در حال حاضر سه شرکت مهم و قدرتمند ARM و AVR و PIC انواع و اقسام میکروکنترولر تولید می کنند .

شرکت و معماری ARM

شرکت ARM به نام کامل Advanced RISC Machine معروف ترین شرکت تولید کنند میکروکنترولر و میکروپروسسورها می باشد،بطوری که در حال حاضر خیلی از سی پی یو ها موبایل و تبلت ها و ... تحت معماری این شرکت ساخته میشوند!!!

این شرکت در سال 1985 (31 سال پیش) تاسیس شده است .

بیشتر میکروکنترولر ها این شرکت با سرعت (فرکانس بالا)،32 بیت (که بعدا اشنا خواهید شد) ، ساخته میشوند. که از لحاظ سرعت و عملکرد و دقت از دو شرکت رقیب بالاتر می باشد!

اما پیچیدگی خاص کار کردن با این سری از میکروکنترولر ها باعث شده، کار کردن با ان سخت باشد، و نیاز به علم برنامه نویسی بالا دارد!

بطور کلی میکروکنترولر ARM میکروکنترولر های بسیار خوبی هستن،و آینده بهتری خواهند داشت.

 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد ARM در ویکی پدیا

شرکت و معماری PIC

PIC در واقع رقیب AVR می باشد.

این شرکت میکروکنترولر های خودش را به صورت 8 و 16 و 32 بیتی میسازد و لحاظ مشخصات میکروکنترولرهاش نزدیک میکروکنترولر سری AVR می باشد .
شرکت PIC در ایران محبوبیت کمتری دارد اما در خارج از ایران محبوبیت بیشتری دارد..

بطوری کلی PIC معماری و مشخصات منحصر به خودش را دارد و بدلیل که با این میکروکنترولر کار نکرده ام،نمی توانم نظر بخصوصی در رابطه اش بدهم.اما به توجه به تحقیقات که انجام داده ام،میکروکنترولر خوبی می باشد.

 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد ARM در ویکی پدیا

شرکت و معماری AVR

از سال 1997 این شرکت در حال توسعه میکروکنترولر های خودش می باشد . بیشتر میکروکنترولر AVR با فرکانس زیر 20 مگاهرتز و بصورت 8 بیتی ساخته میشوند . (در سری های جدید مدل 32 بیت هم می سازد)

یکی از دلایل اصلی تمایل به میکروکنترولر AVR سادگی کار کردن با ان می باشد،این میکروکنترولر از واحدهای چون تایمر،یوارت،اس پی ای،وان وایر،واچ داگ،رم،ای ای پی رام،فلش،ای دی سی و... تشکیل شده.

میکروکنترولر AVR به دو صورت DIP و SMD ساخته میشوند (جهت آشنایی با بسته بندنی DIP و SMD  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد را مطالعه فرمایید.)

 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  AVR در ویکی پدیا

انشالله در اینده به صورت تخصصی تر به میکروکنترولر AVR که مورد بحث تاپیک می باشد،می پردازیم

باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

4 کاربر از این پست سپاسگزاري کرده اند

Colonel II

Colonel II



نماد کاربر
پست ها

6475

تشکر کرده: 1658 مرتبه
تشکر شده: 8028 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته

توسط sinaset » چهارشنبه 30 دی 1394 08:46

بنام خدا
با سلام


میکروکنترولر AVR و ساختار داخلیش.

همانجور که در ابتدا تاپیک اشاره کردم،میکروکنترولر از تعدادی زیادی واحد که هر کدام یک وظیفه را دارند تشکیل شده.میکروکنترولر مثل سی avr از دها هزار ترانزیستور برای عمل محاسبات و .. تشکل شده است.

اکنون می خواهیم نگاهی به این واحدها و گذرگاه ها و .. بی اندازیم.
کلیه واحدهای درونی یک میکرو کنترولر (AVR (ATMEGA32
اگر در تصویر بالا خوب دقت کنید،می توانید مسیر حرکت وگذرگاه ها،واحد ها،I/O و کلیه ارتباط های درونی میکروکنترولر را ببینید.
شاید سوالی مطرح شود،که ایا این همه واحد  لازم می باشد؟ ، جواب بله، اگر این واحدها نبودن! ما باید ساعت ها و روزها وقت می گذاشتیم و برنامه های طولانی می نوشتیم تا جایی ان واحد ها را پر کنیم! تازه به دقت ان واحدها نمی رسید ! و بعضی از واحدها را نمی توانستیم به این راحتی با برنامه نویسی جایشان را پر کنیم.
بطور کلی واحدهای درونی میکروکنترولر  هر کدام به نوعی یک ایسی(یا مدار مجتمع یا یک پارچه) می باشند،که  برای یک هدف کاملا مشخص درون چیپ میکروکنترولر کار گذاشته شده اند،که به عنوان عصا دست ما باشند،تا ما کارها را با بهترین دقت و کارایی انجام دهیم.
ما باید وظیفه این واحد ها را بدا نیم و تا انجا که میشود به طریق صحیح از ،واحدها کارهای مختلفی انجام دهیم.
معماری درونی میکروکنترولر به تصویر ساده تر:
آشنایی کوتاه با واحدهای درونی میکروکنترولر:
CPU: واحد پردازشگر مرکزی، جایی که محاسبات توسط این واحد انجام میشود،و همه واحدها به این مرکز وصل هستن(توسط گذرگاه یا BUS)
اسیلایتور: به کمک این واحد فرکانس مورد نیاز سی پی یو و دیگر واحدها تولید میشود.
حافظه FLASH: یک حافظه بلند مدت،که می تواند برنامه نوشته شده را تا مدت ها طولانی(بیش از 20 سال) در آن نگه داری کردو تقریبا بیش از هزاران بار قابلیت حذف و نوشتن دوباره اطلاعات را دارد
حافظه EEPROM: یک حافظه بلند مدت به معماری خاص! که معمولا از حافظه فلش کمتر می باشد.این حافظه بیشتر برای زمانیست که ما بعدا بخواهیم اطلاعات دستگاه خود رو تغییر دهیم(مثلا  بخواهیم با کیبورد،حساسیت یک قطعه را زیاد کم کنیم.. و اطلاعات جدید بر روی میکروکنترولر ذخیر شود!)،پس فرق حافظه فلش و ای پی رام،در این است که حافظه فلش بیشتر برای ریختن برنامه استفاده میشود و ای پی رام برای زمانیست که دستگاه راه اندازی شده،و می خواهیم تغییرات جدید رو به دستگاه اعمال کنیم.
حافظه موقت Sram: یک حافظه پرسرعت و موقت می باشد،که یک جورایی عصا دست CPU می باشد.متغییرها نوشته شده،یا اطلاعات که می خواهید پردازش شود،از این واحد استفاده می کنند.sram بسیار کمتر از flash  و eeprom می باشد . (بدلیل هزینه بالایی ساخت )
تایمر کانتر Timer/counter: یک واحد بسیار جالب و پیشرفته،که به کمک این واحد ها شما می توانید ساعت درست کنید،زمانی را بسنجید،محاسبات بسیار دقیق و موج PWM درست کنید.
واحد ADC: این یک واحد بسیار جالب است،که شما به کمک ان می توانید جریان برق را اندازه گیری کنید!شاید در نگاه اول چندان جالب به نظر نرسد،ولی واقعا کار این واحد بی نظیر است.توسط این واحد می توانید ولتاژ برق،امپر،دماسنج (NTC) و ... انواع اندازه گیری ها را با دقت 10 بیت (1024) (دقت بیت ADC بعدا توضیح داده خواهد شد) انجام دهید
واحدهای ارتباطی USART و SPI و TWI و I2C: به کمک این واحد ها می توانید به انواع ایسی ها و دما سنج و کامپیوتر و ... ارتباط برقرار کنید (اگر بخواهیم ساده تر بگویم،این واحد های مثل usb شما می باشد،که از یک پروتکل ارتباطی به اسم usb استفاده می کنند!) در اینده بیشتر با انها اشنا خواهید شد .
واحد ISP : به کمک این واحد می توانید،برنامه نوشته شده خودتان را به میکروکنترولر انتقال دهید.
واحد Watchdog Timer: این واحد کارش محافظت از درست اجرا شدن دستوراته.(با فعال سازی )،این واحد وقتی ببینیه میکرو هنگ کرده! خودش به صورت اتوماتیک میکروکنترلر رو ریستارت میکنه.
واحدInterupt:این یک واحد جالبه که با فعال سازی ان،میکروکنترولر در حال انجام هر کاری باشه! سریعا ان دستورات رو قطع میکنه و وارد دستورات اینتراپت میشه(به عنوان مثال رباتی طراحی کرده اید،حالا می خواید وقتی کلید STOP زده شد،بلافاصله ربات نگه داشته بشه!به کمک اینتراپت ها می توانید به راحتی این کار را انجام دهید)
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

5 کاربر از این پست سپاسگزاري کرده اند

Colonel II

Colonel II



نماد کاربر
پست ها

6475

تشکر کرده: 1658 مرتبه
تشکر شده: 8028 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته

توسط sinaset » شنبه 10 بهمن 1394 09:47

با سلام

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

ابتدا پیشنهاد می کنم این مطلب رو در رابطه با کریستال" لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد " و این مطلب رو در رابطه با فرکانس " لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد "مطالعه کنید (به زبان ساده)

سپس این مطالب رو بخوانید:

--
مرور کوتاه بر پردازش 8 بیتی میکروکنترولر


میکروکنترولر avr اکثرا پردازشون 8 بیتی می باشد،

این بیت ها در واقع همان داده های Digtal هستن که ما برای فهمیدن یک اطلاعات ازشون استفاده می کنیم

بصورت ساده و مشخص.ما به کامپیوتر نمی توانیم بگویم F یا G یا 1 یا 2 ! چون کامپیوتر قادر به فهمیدن این مطلب نیست! پس ما باید ان را در قالب برایش ارسال کنیم (تا بعد به کمک واحد های درونیش،ان ترجمه کند)
اما خود این کد چطور به وجود می اید؟
کد خیلی ساده به وجود می ایند،وقتی ولتاژ 0 باشد،خروجی دیجیتال 0 می باشد و وقتی که خروجی 5 (یا 3.3) ولت باشد خروجی 1 میشود ..
همه این کارها به کمک ترانزیستورهای درونی میکروکنترولر ، بر روی کلاک  و با پایین و بالا کردن انها ایجاد میشود .

خوب مبحث یکمی سنگین شد،و اگر ان تاپیکی که گفتم رو خوب مطالعه کنید،بهتر متوجه میشود ...

مروری کوتاه بر تفاوت 8 بیت و 16 بیت و 32 بیت

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

جوابشان خیلی ساده است،بسیار زیاد،هرچی بیت بیشتر ، بهتر!

ما در پردازش 8 بیت می توانیم ، 8 بیت اطلاعات را هم زمان برای سی پی یو ارسال کنیم، که جمعا میشود 256 نوع داده مختلف ،که این 256 هر کدام میتوند یک نوع اطلاعی از قبیل حرف F یا A یا ... باشد !
که فرمول محاسبه اش ساده هستش و بر مبنا 2 می باشد .
مبنا 2 یعنی برای اینکه بفهمیم که کد 0 و 1 رو چقدر میشه بصوت 8 کاراکتر کنار هم قرار داد و تکرار نبود، رو انجام میدم.
هشت بیت به مبنا دو اینطور محاسبه میشود 2x2x2x2x2x2x2x2=256

حال سی پی یو که پردازش 16 بیتیست ، می شود 655,336 داده .
یا سی پی یو که پردازش 32 بیتست ،میشود 4,294,967,296 داده.

مروری کوتاه بر فرکانس در میکروکنترولر

هر چقدر فرکانس کاری،یک میکروکنترولر بالاتر باشد،سرعت محاسبه (0 و 1) در ثانیه برایش بیشتر میشود.
فرکانس را به کمک قطعه به نام نوسان ساز(کریستال) تولید می کنند..
همانطور که قبلا نیز در  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد تاپیک،توضیح داده بودیم،فرکانس در ثانیه چند میلیون بار تکرار میشود!

به عنوان مثال اگر گفته شود،فرکانس میکروکنترولر ATMEGA8 حدود 16 مگاهرتز است.یعنی این میکروکنترولر می تواند 16 میلیون نوسان را در ثانیه به کمک کریستال تولید کند.

اما برای اینکه متوجه بشیم یک میکروکنترولر چه مقدار محاسبه را در ثانیه انجام میدهد.... باید دید معماری سی پی یو و تعداد ترانزیستور ها و ... به چه شکل می باشد!
اما به طور کلی بیشتر میکروکنترولر های AVR مدل های 8 بیتی ،توانایی دارن که به 1MHz فرکانس حدود 1 میلیون محاسبه را انجام دهند،و با اضافه شدن هر 1 مگاهرتز به فرکانس سی پی یو 1 میلیون محاسبه خود را بیشتر انجام دهند.

به عنوان مثال میکروکنترولر ATMEGA328 که نسل جدیدی از میکرو های avr است. می تواند با فرکانس 20 مگاهرتز کار کند،و حدود 20 میلیون محاسبه در ثانیه انجام دهد.

شاید نزد خود فکر کنید،اگر بخواهیم فرکانس سی پی یو میکروکنترولر را بیشتر کنیم،ان وقت چه میشود؟
شما اگر فرکانس میکروکنترولر مثل atmega8 (که کارخانه تا 16 مگاهرتز را تضمین کرده) را بر روی 16 مگاهرتز تنظیم، در بعضی پروژ محاسبات را درست انجام نمی دهد!
پس همانجور که متوجه شدید،اگر فرکانس رو خیلی زیاد کنید(اورکلاک،یا بیشتر از ظرفیت تضمین شده)،محاسبات بهم میریزد و خروجی خوبی بدست نخواهید اورد.

ایا واقعا ما نیاز به 1 میلیون محاسبه در ثانیه داریم،؟!

بستگی به این دارد که شما بخواهید چه کاری را انجام دهید ..
به عنوان مثال،وقتی شما می خواهید چند عدد LED را خاموش و روشن کنید ... میکرو رو در وضعیت شوخی قرار دادید!
اما وقتی شما در برنامه خود،مجموعه از هزارن LED ( بصوتر مولتی پلاکس و ماتریکسی) وصل کرده اید،و می خواهید با ان ساعت،متن،وضعیت اب هوا، و کلی برنامه نویسی و استفاده از واحد های میکرو کنید،میکروکنترولر،از همه ظرفیت های سی پی یو استفاده میکند،و شاید حتا مجبور شوید مدل های بالاتری تهیه کنید!

محاسبات در میکروکنترولر نقش بسیار تایین کننده ی،مخصوصا در پروژه های امروزی دارد و هر چقدر محاسبات بیشتر باشد و واحد های میکرو دقیق تر و بیشتر باشد،شما هم می توانید کارها پیشرفته و بهینه تری را بسازید .
اما لازمه اون کارهای پیشرفته! این است که امروز به میکروهای کم توان،ولی خوب،کار کنید،و بتوانید خوب از انها کار بکشید،سپس به سراغ مراحل بالاتر بروید.
آخرين ويرايش توسط sinaset on شنبه 15 اسفند 1394 09:43, ويرايش شده در 2.
دليل: بدلیل اشتباه بودن اطلاعات،پوزش می طلبم.مطلب اصلاح شد
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

5 کاربر از این پست سپاسگزاري کرده اند

Colonel II

Colonel II



نماد کاربر
پست ها

6475

تشکر کرده: 1658 مرتبه
تشکر شده: 8028 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته

توسط sinaset » چهارشنبه 21 بهمن 1394 11:57

بنام خداوند بخشنده و مهربان
با سلام

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

بهتر است کم کم شروع کنیم و وارد جزییات  کامپیوتر کوچک پر سر و راز شویم .

حافظه ها در میکروکنترولر

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


ابتدا حافظه EEPROM (قسمت اول)

مخفف کلمه Electrically Erasable Programmable Read-Only Memory پاک سازی با ولتاژ و قابلیت خواندن و نوشتن .

این حافظه ساده اما جالب،می تواند اطلاعات را در طولانی مدت درون خود ذخیر کند! یعنی اگر برق برود، این حافظه اطلاعات خود را نگه می دارد !
از قابلیت های جالب دیگر این ایسی نگه داری اطلاعات درونی خود تا 100 سال است! یعنی اگر اطلاعاتی بر روی ان ذخیر شود تا 100 سال ان را نگه میدارد .

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

این ایسی می تواند اطلاعات را در درون خود ذخیره کند و همچنین می توادند این اطلاعات را بخواند.(یعنی هم قابلیت خواندن دارد و هم ذخیری سازی)

بطور کلی و عمومی  میکروکنترولر مقداری حافظه EEPROM  دارن که بسته به مدلشان این حجم از 64 بایت تا 4کیلوبایت (و کمی بیشتر) متغییر است(در خانواده AVR).  که البته اگر شخصی بیش از نیاز داشته باشد،باید ایسی ان را تهیه کند(ایسی ان هم نسبتا ارزان قیمت هستن،)

باهم دیگر حافظه EEPROM میکروکنترولر MEGA32 را بررسی کوتاه میکنیم.

این حافظه در این قسمت از میکروکنترولر مگا32 قرار داده شده:
که یکی از گذرگاه های ارتباطی میکروکنترولر می باشد ، و میکرو به راحتی می تواند به ان ارتباط برقرار کند
و مشخصات فنی ان :
همانجور که می ببینید، حافظه EEPROM مگا 32 حدود 1024 بایت یا به عبارتی ساده تر 1 کیلوبایت می باشد(هر 1024 بایت می شود 1 کیلوبایت)
یک نکته مهم دیگر که باید در رابطه با حافظه EEPROM بدانید، این است که یک چرخه برای پاک و نوشتن اطلاعات دارد،که بعد از ان دیگر حافظه خراب میشود و قابلیت نوشتن و پاک کردن را از دست میدهد. همانجور که بر روی تصویر قید کردیم،برای این حافظه،حدود 100 هزاربار چرخه نوشتن و پاک کردن می باشد( 100 هزاربار کامل حافظه پر شود و سپس خالی شود)که این البته فقط مربوط به حافظه EEPROM نیست بلکه بیشتر حافظه های دیجیتال امروز چنین مشکلی را دارن .

و در پایان نیز این حافظه می تواند تا 100 سال اطلاعات خود را نگه دارد (که این البته در نوع خود بی نظیر است!)

ایا این میزان حافظه کم نیست؟!
(ادامه دارد...)
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

7 کاربر از این پست سپاسگزاري کرده اند

Novice Poster

Novice Poster



no avatar
پست ها

60

تشکر کرده: 162 مرتبه
تشکر شده: 27 مرتبه
تاريخ عضويت

پنج شنبه 22 بهمن 1394 21:03

آرشيو سپاس: 0 مرتبه در 0 پست

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته

توسط javad_2010 » جمعه 23 بهمن 1394 18:34

سلام
سپاسگذارم از مطالب عالیتون
بی صبرانه منتظر ادامه مباحث تون هستم

2 کاربر از این پست سپاسگزاري کرده اند

Colonel II

Colonel II



نماد کاربر
پست ها

6475

تشکر کرده: 1658 مرتبه
تشکر شده: 8028 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته

توسط sinaset » يکشنبه 25 بهمن 1394 21:21

بنام خدا
با سلام


دیروز  ادامه مبحث رو داشتم می نوشتم،که متاسفانه  به اشتباه با زدن یک دکمه اطلاعات از بین رفت!

از شما متشکر از بابت نظرتون .

حافظه EEPROM قسمت پایانی

آیا واقعا این مقدار حافظه کافی است؟!

برای اینکه به این سوال پاسخ بدهیم،بهتر مبحث رو کمی بازتر بکنیم .

کوچیکتر واحد ذخیر سازی حافظه BIT می باشد .

BIT

مخفف کلمه binary digit به معنی رقم دوتایی .

هر یک بیت می تواند  ،یک عدد 0 یا 1 را درون خودش ذخیر کند (همانجور که در چند پست بالاتر توضیح دادیم، 5 ولت یعنی 1 و 0 ولت یعنی 0.)

برای همین بهشون میکن رقم دوتایی . یعنی این حافظه یا 0 یا 1 را می تواند درون خودش ذخیر و نگه دارد .

اما Byte !

هر 8 بیت ! میشود 1 بایت .
یعنی هر بایت از مجموعه 8 حافظه کوچک بیت تشکیل شده.

در نگاه اول بنظر کم می اید! و بنظر بی اهمیت می رسد . اما ما به کمک همین 8 بیت که از کدهای 0 یا 1 تشکیل شده اند،می توانیم حدود 256 حالت مختلف را به وجود بیاوریم .

به عنوان مثال : 10000000 یا 01000000 یا 00100000 یا ... (تا 253 حالت مختلف دیگر !)

اما نکته مهم دیگر این است،که میکروکنترولر این کدها رو می تواند ترجمه کند! به عنوان مثال ما اگر بخواهیم به میکرو عدد 1 را بفرستیم، کد 8 بیتی بدین شکل میفرستیم 00000001 یا اگر بخواهیم عدد 2 را بفرستیم 00000010
یا حتا مهمتر از عدد! حروف رو به میکروکنترولر بفرستیم ،به عنوان مثال اگر بخواهی کد حرف a (کوچک) را برای میکرو کنترولر بفرستیم،کافیست کد 8 بیتی 01100001 را بفرستیم. !

بطور کلی می توان تمامی حروف انگلیسی و اعداد و اعشار و کاراکترها (مثل ستاره و تقسیم و ..) را به کمک همین 8 بیت ساده ! برای میکرو بفرستیم تا میکرو انها را ترجمه بکند و باقی محاسبات را انجام دهد ( لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد تصویر متحرک را ببینید)

حال برمی گردیم به حافظه 1024 بایتی MEGA32 خودمان .  بنظر شما این حافظه چه مقدار کاراکتر را می تواند درون خودش جا دهد؟!
این حافظه می تواند حدود 1024 کاراکتر (شامل حروف یا عدد یا ..) را درون خودش جا دهد .

و این مقدار حافظه برای کارهای که معمولا ما می خواهیم انجام دهیم کافی می باشد (ضمن اینکه حافظه EEPROM یک حافظه کمکی می باشد و خود میکروکنترولر با حافظه FLash کار می کند که در اینده با ان بیشتر اشنا میشویم)


به عنوان مثال ما می خواهیم،روز ،هفته ،سال را بشماریم،یا که می خواهیم پسوردی را دریافت کنیم ،یا که می خواهیم تعداد اجسام عبوری از کنار سنسور رو بشماریم،یاکه می خواهیم پیامی را دریافت یا ارسال کنیم و همه اینها چندان حافظه ی اشغال نمی کند.
ضمن اینکه خود نرم افزار برنامه نویسی هم کدها رو فشرده می کند،(و همچنین بازهم اگر مشکلی بود،می توانیم از حافظه فلش استفاده کنیم،یا که از حافظه EEPROM خارجی استفاده کنیم و البته بازهم راهایی زیادی دیگری هم است !)

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

حافظه EEPROM مقداری کند می باشد و باید اطلاعات را با تاخیر بر روی ان بنویسیم. ولی بطور کلی حافظه ها بسیاری خوبی می باشند،که در پروژهای که نیاز به ذخیر سازی اطلاعات به صورت دائمی می باشد،بسیار مناسب و خوب می باشد .

باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

5 کاربر از این پست سپاسگزاري کرده اند

Novice Poster

Novice Poster



no avatar
پست ها

60

تشکر کرده: 162 مرتبه
تشکر شده: 27 مرتبه
تاريخ عضويت

پنج شنبه 22 بهمن 1394 21:03

آرشيو سپاس: 0 مرتبه در 0 پست

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته

توسط javad_2010 » يکشنبه 25 بهمن 1394 23:21

ممنون از ادامه درس

sinaset از این پست سپاسگزاري کرده است

Colonel II

Colonel II



نماد کاربر
پست ها

6475

تشکر کرده: 1658 مرتبه
تشکر شده: 8028 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته

توسط sinaset » سه شنبه 27 بهمن 1394 08:58

بنام خدواند بخشنده و مهربان
باسلام


ادامه مبحث حافظه
حافظه FLASH (یا Flash memory)

حافظه فلش از نسل حافظه های EEPROM می باشد . حافظه فلش در واقع همان حافظه است که ما در دنیایی کامپیوتر  به ان فلش مموری می گویم. (،که معمولا در ظرفیت های 4 و 8 و 16 و ..گیگابایتی فروخته میشود!)

سرعت نوشتن و پاک کردن در حافظه FLASH بسیار بیشتر از EEPROM می باشد. قیمت تمام شده ان کمتر و میزان حافظه فلش در میکروکنترولرها بیشتر از حافظه EEPROM می باشد.
اما این همه ماجرا نیست! و حافظه FLASH نقاط ضعفی هم دارد ...!

باهم دیگر حافظه میکروکنترولر Atmega32 را بررسی می کنیم :
حافظه فلش در میکروکنترولر mega32 ، حدود 32 کیلوبایت می باشد . که نسبت به حافظه EEPROM ان،حدود 32 برابر بیشتر می باشد.
این حافظه قابلیت دارد که 10 هزاربار بنویسید و پاک کند،که نسبت به حافظه EEPROM حدود 10 برابر کمتر می باشد!
همچنین این حافظه می تواند اطلاعات خود را تا 20 سال (تا دمایی نزدیک به 85 درجه) نگه دارد . که نسبتا به EEPROM که حدود 100 سال بود،بازهم افت داشته است .
محل قرار گیری حافظه FLASH در میکروکنترولر
اما حافظه فلش،جزوء حافظه اصلی میکروکنترولر حساب میشود ! به عبارت دیگر،میکروکنترولر برنامه های نوشته شده خود را همیشه در این حافظه قرار میدهد(بدلیل سرعت بالا و میزان بالایی حافظه ان)
علاوه بر استفاده برنامه نویسی از این حافظه،مقداری از حافظه برای دیگر پردازش ها و ذخیر سازی هایی خود میکروکنترولر مورد استفاده قرار می گیرد(مثل boot loader) *که البته ناگافته نماند میشود این میزان حافظه تخصص داده شده به boot loader را در صورت نیاز کم و یا زیاد کرد*
برعکس حافظه EEPROM که،کاملا خام می باشد و فقط در اختیار برنامه نویس است! حافظه فلش برای دیگر مقاصد هم استفاده میشود .
تفاوت دیگر حافظه فلش و ای ای پی رام در نحویه پاک کردن اطلاعات می باشد.حافظه EEPROM به صورت بیت اطلاعات خود را پاک و تغییر دهید این در حالی است که حافظه باید به صورت بلوکی (یا مجموعه بیشتر ) اطلاعات را پاک کند.که خوب از این نظر EEPROM بهتر می باشد .
به طور کلی حافظه EEPROM برای کارهای که نیاز به تغییرات زیادی دارد (مثلا دائم یک عدد  یا حروف تغییر داده شود و..) خوب می باشد و حافظه فلش برای جاهایی که نیاز به تغییرات کمتری دارد و سرعت بالا نیاز دارد ،به مانند خود برنامه نویسی و .. خوب می باشد
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

3 کاربر از این پست سپاسگزاري کرده اند

بعدي

 


  • موضوعات مشابه
    پاسخ ها
    بازديدها
    آخرين پست

چه کسي حاضر است ؟

کاربران حاضر در اين انجمن: بدون كاربران آنلاين و 1 مهمان