Home / میکروکنترلر / آموزش میکروکنترلر AVR / آموزش AVR: مبدل آنالوگ به دیجیتال (ADC) میکروکنترلر هایAVR

آموزش AVR: مبدل آنالوگ به دیجیتال (ADC) میکروکنترلر هایAVR

مقدمه:

در این قسمت از آموزش در باره ی نحوه ی راه اندازی مبدل آنالوگ به دیجیتال (ADC) میکروکنترلر هایAVR  بحث می کنیم. مبدل آنالوگ به دیجیتال برای اندازه گیری ولتاژ رو په پایه هایه پورت A میکروکنترلر به کار می رود. از مبدل آنالوگ به دیجیتال برای راه اندازی سنسور های مختلف مثل سنسور دما ، سنسور شتاب سنج ، سنسور مغناطیسی و غیره  و کاربردهای دیگر مثل راه اندازی تاچ اسکرین و  … مورد استفاده قرار می گیرد.

تبدیل آنالوگ به دبجیتال به روش تقریب متوالی:

ADC مخفف “Analog-Digital Converter”  است. واحد ADC  میکروکنترلر های AVR  به روش تقریب متوالی (SAR) سیگنال های آنالوگ را به دیجیتال تبدیل می کند. در این روش تبدیل که به صورت یک شمارنده 10 بیتی که به ورودی یک مبدل دیجیتال به آنالوگ (DAC) متصل شده است. باعث می شود. که خروجی DAC متناسب با مقدار خروجی شمارنده دارای یک ولتاژ آنالوگ باشد. این ولتاژ توسط یک مقایسه کننده با ولتاژ آنالوگ ورودی مقایسه شده و در صورت تساوی پایه STOP شمارنده را فعال کرده تا شمارنده متوقف شود. حال مقدار دیجیتال خروجی شمارنده همان مقدار متناسب با ولتاژ آنالوگ ورودی خواهد بودبنابراین مقدار دیجیتال خروجی متناسب با ولتاژ آنالوگ ورودی را می توان به صورت فرمول زیر نشان داد.

adc f

ویژگی های مبدل آنالوگ به دیجیتال (ADC) میکروکنترلر های AVR:

میکروکنترلر مورد بحث ما در این مطلب میکروکنترلر ATmega32  است. و دارای ویژگی های زیر است:

  • دقت 10 بیت
  • زمان تبدیل 65us تا 125us
  • 8 کانال وروردی مولتی پلکس شده
  • 7 کانال وروردی دیفرانسیلی
  • 2 کانال ورودی دیفرانسیلی با بهره ی قابل انتخاب 10x و 200x
  • محدوده ی ولتاژ وروردی ADC از 0 تا Vcc
  •   ولتاژ مرجع 2.56 قابل انتخاب برای ADC
  •  امکان تریگر شدن خودکار شروع تبدیل ADC با منبع وقفه ی مختلف
  • ایجاد وقفه در پایان تبدیل ADC
  • مد sleep برای کاهش نویز ADC

نکاتی در مورد راه اندازی مبدل آنالوگ به دیجیتال (ADC) میکروکنترلر هایAVR:

  1. در میکروکنترلر ATmega32 مبدل آنالوگ به دیجیتال به یک مولتی پلکس کننده ی آنالوگ با 8 کانال متصل شده که امکاناتصال 8 پایه ی پورت A به آن را فراهم می کند.
  2. ADC یک پایه ی تغذیه ی مجذا دارد (AVCC) پایه ی AVCC نباید بیشتر از 0.3 ولت با VCC اختلاف داشته باشد.
  3. ولتاژ مرجع می تواند به صورت داخلی با مقدار 2.56v و یا با ولتاژ پایه ی AVCC  و یا با به صورت خارجی و متصل به پایه ی AREF همراه با یک خازن برای کاهش نویز انتخاب شود.
  4. کانال های ورودی آنالوگ تک پایه و یا با بهره ی دیفرانسیلی با تنظیم بیت های MUX در ریجیستر ADMUX انتخاب می شوند.
  5. ADC  با نوشتن یک در بیت ADEN از رجیستر ADCSRA فعال می شود. زمانی که ADEN صفر شود بخش ADC توانی را مصرف نمی کند.
  6. ADC یک عدد 10 بیتی تولید می کند که در ریجیستر های ADCL و ADCH ذخیره می شود.
  7. برای شروع یک تبدیل آنالوگ به دیجیتال باید مقدار یک در بیت ADSC نوشته شود. این بیت تا زمانی که عمل تبدیل در حال انجام است یک باقی می ماند و با اتمام تبدیل توسط سخت افزار پاک می شود.
  8. عمل تبدیل می تواند از طریق منباع مختلفی به صورت خودکار تریگر گردد برای فعال کردن این قابلیت باید بیت ADATE در ریجیستر ADCSRA را یک کنید دراین صورت منبع تریگر نیز با تنظیم بیت های ADTS واقع در ریجیستر SFIOR مشخص می گردد.
  9. در صورتی که از پرچم وقفه ی ADC به عنوان منبع تریگر استفاده شود ADC به محض اتمام تبدیل تیدیل دیگری را آغاز می کند. در این حالت ADC در مد Free Running کار می کند.
  10. روش تبدبل هآنالوگ به دیجیتال به صورت تقریب هی متوالی به صورت پیش فرض برای رسیدن به حداکثر دقت به فرکانس کلاکی بین 50KHz تا 200KHz نایز دارد.
  11. واحد ADC برای تولید کلاک از یک تقسیم کننده ی فرکانسی استفاده می کند. این تقسیم کننده توسط بیت های ADPS از ریجیستر ADCSRA تنظیم می شود.

 رجیستر های مربوط به مبدل آنالوگ به دیجیتال (ADC) میکروکنترلر های AVR:

رجیستر ADMUX:

ADC Multiplexer Selection Register

admux

 بیت های 6:7 REFS1:0:

این بیت ها مطابق جدول یک ولتاژ مرجع را برای ADC انتخاب می کنند.

ref

بیت 5 – ADLAR

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

بیت 0:4 – MUX4:0:

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

refrence

رجیستر ADCSCR:

adcsra

بیت 7 – ADEN:

با یک کردن این بیت ADC فعال می شود و صفر کردن آن ADC را خاموش می کند.

بیت 6- ADSC:

در حالت single convention برای شروع هر تبدیل باید این بیت یک شود ولی در حالت free running  تنها برای شروع اولین تبدیل باید این بیت یک شود.

 

بیت 5 – ADATE:

با نوشتن یک در این بیت ADC در حالت تریگر خودکار فعال می شود . منبع تریگر به کمک تنظیم بیت های ADTS  در ریجیستر SFIOR انتخاب می شود.

بیت 4 – ADIF:

این بیت زمانی یک می شود که تبدیل آنالوگ به دیجیتال کامل شده و محتوای ریجیستر داده ی ADC بازتویسی شده باشد. در این صورت اگر قبلا وقفه ی ADC فعال شده باشد روتین وقفه اجرا می شود.

بیت 3 – ADIE:

زمانی که این بیت و بیت I در رجیستر SERG یک گردندو وقفه ی مربوط به اتمام تبدیل ADC فعال می شود.

بیت های 0:2 – ADPS2:0:

این بیت ها فرکانس کلاک ورودی به ADC  را تنظیم می کنند. طبق جدول زیر

adc colck

رجیستر های ADCH , ADCL:

adcw

زمانی که تبدیل آنالوگ به دیجیتال کامل می شود نتیجه در این دو رجستر قرار می گیرد.

رجیستر SFIOR:

sfior

اگر بیت ADATE در ریجیستر ADCSRA یک شود مقادیر این یبت ها منبع تریگر تبدیل آنالوگ به دیجیتال را مشخص می کند. طبق جدول زیر:

TRIGER ADC

برنامه لازم برای راه اندازی ADC

برنامه لازم برای راه اندازی ADC که بخش لازم برای تنظیم ADC توسط کدویزارد تولید شده است.

در این برنامه ولتاژ موجود بر روی پایه ی 0 پورت A اندازه گیری شده و توسط پورت سزیال ارسال می شود.

 

 

 

 

About علی عزتی

علی عزتی هستم. رشته ی مهندسی برق الکترونیک رو خوندم. علاقه ی من به یادگیری و به اشتراک گذاشتن چیز هایی که یاد گرفتم. باعث شد تا الکترولب ایجاد بشه. علاقه ی زیادی به الکترونیک دارم. و دوست دارم چیزهای جدید یادبگیرم و بسازم ... :))

Check Also

میکروپایتون و راه اندازی آن روی ESP8266 قسمت اول

پایتون یک زبان برنامه‌نویسی همه منظوره سطح بالا می باشد. قابلیت یادگیری آسان، آن را ...

4 comments

  1. سلام ، ممنون از مطلب مفیدتون
    اگر من بخوام خروجی adc v رو به صورت آنالوگ از میکرو بگیرم(فقط هم از یک پین بگیرم) یعنی ورودی یه چیزی بوده حالا من میخوام بر اساس ورودی، خروجی مثلا 0.2 ولت داشته باشم و اینکه خروجی رو حتما میخوام از یک پین بگیرم. چیکار باید بکنم؟

  2. سلام وخسته نباشید در مورد تبدیل آنالوگ به دیجیتال در avr سوالی داشتم برای استفاده از کیفیت و دامنه تبدیل بالاتر باید ولتاژ مرجع کوچک تر انتخاب بشه حداقل مقدار ولتاژ مرجع چقدر می تونه باشه؟

  3. ممنون می شم اگه از دیتا شیت بتونی استخراجش کنی

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

This site uses Akismet to reduce spam. Learn how your comment data is processed.