مبدل آنالوگ به دیجیتال ADC
نوشته شده توسط : م.ص

مبدل آنالوگ به دیجیتال ADC

-مبدل آنالوگ به دیجیتال چیست؟

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

میکرو های AVR دارای مبدل انالوگ به دیجیتال سرخود است.ولتاژ مرجع انها به سه صورت انتخاب میشود

1-      بصورت داخلی با ولتاژ 2.56 ولت 

2-      ولتاز VCC

3-      بصورت خارجی

(ولتاژ مرجع ولتاژی است که مبدل تا ان مقدار ولتاژ را خوانده و تبدیل میکند)

برای دادن ولتاژ خارجی به ADC از پایه های AVCC,AREF,GND استفاده می شود.

پایه AVCC به ولتاژ تغذیه وصل شده وGND هم به منفی وصل میشود.AREF که برای ولتاژ خارجی است از داخل برنامه هم باید تنظیم شود,تا بعنوان ولتاژ مرجع انتخاب شود.

مبدل انالوگ به دیجیتال برای رسیدن به حداکثر دقت به فرکانس کلاکی بین 50 تا 200 کیلو هرتز نیاز دارد.این فرکانس یک سرعت متناسب با دقت مناسب را ارائه میدهد, اگر بخواهیم سرعت تبدیل اطلاعات به دیجیتال زیاد باشد باید فرکانس کلاکی افزایش پیدا کند که دقت را کاهش میدهد.

نکته:اگر کاربر از یک منبع ولتاژ متصل به پایه aref استفاده کند, نمیتواند از ولتاژهای مرجع دیگر استفاده کند.اگر ولتاژخارجی به پایه aref متصل نگردد, کاربر میتواند بین ولتاژهای مرجع avcc و یا 2.56 v سوئیچ نماید.

-برای حذف نویز روی ورودی انالوگ که ناشی از هسته cpu میباشد, میتوان میکرو را در مد sleep قرار داد.

در این مد cpu خاموش بوده و نمونه برداری انجام میشود سپس cpu روشن میشود.        

دقت نمونه برداری adc بصورت 10 بیتی است,که بصورت 8 بیتی قابل استفاده است.یعنی ولتاژ مرجع تقسیم بر 2 به توان 10 میشود(1024).

برای مثال اگر ولتاژ مرجع ما 5 ولت باشد 1024÷5 برابر با 4 میلی ولت است.یعنی تغییرات تا 4 میلی ولت را میتوانیم بوسیله یک adc 10 بیتی ثبت کنیم.(هر سطح 4 میلی ولت)

نکته: برای استفاده از یک پایه در حالت ورودی adc به غیر از معرفی در قسمت adc باید بصورت ورودی و tri-state  تنظیم شود.

روش حذف نویز از adc

1-مسیر سیگنالهای انالوگ را تا حد امکان کوتاه کنید,قسمت های انالوگ باید دارای زمین جداگانه باشد

2-باید avcc توسط یک فیلتر پایین گذر LC به vcc متصل شود.

3-از مدهای sleep و حالت adc noise canceler برای کاهش نویز القا شده توسط cpu  استفاده شود.

 

متداول ترین انواع adc به قرار زیر است

1-      مبدل توع شمارشی (counting analog digital convertor)

2-      مبدل نوع تقریب های متوالی (successive-approximation convertor)

3-      مبدل با مقایسه موازی (parallel-comparator adc)

4-      مبدل دو شیبه (dual-slop or ratiometric adc)

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

-          وضوح 10 بیت

-          زمان تبدیل 65 تا 260 میکرو ثانیه

-          کانال های مالتی پلکس شده

-          ولتاژ ورودی از صفر تا vcc

-          پرچم وقفه پایان تبدیل adc

-          حذف کننده نویز

Adc به هر یک از پایه های پورت اجازه میدهد که بعنوان یک ورودی مبدل انالوگ به دیجیتال عمل نماید.

Adc دارای یک مد sample and hold است, که باعث می شود ولتاژ ورودی adc در زمان تبدیل در یک سطح ثابت نگه داشته شود و دقت کار را بالا ببرد.

Adc دارای دو مد تبدیل single و free است.مد single بایستی توسط کاربر پیکره بندی و کانال دلخواه برای نمونه برداری انتخاب شود.در مد free با یک ثابت نمونه برداری, رجیستر داده adc را  update  میکند.

پیکره بندی adc در محیط bascom

              Config adc=single|free ,prescaler=auto , reference=optional                                          

اگر بخواهیم از مد single استفاده کنیم باید از دستور getadc() استفاده شود.

Prescaler این گزینه کلاک adc را مشخص میکند. اگر در حالت اتوماتیک باشد کامپایلر با توجه به فرکانس اسیلاتور, بهتریت کلاک را برای adc مشخص میکند.دیگر مقادیر معتبر 2 , 4 , 8 , 15 , 32  , 64 , 128  میباشد.

Referece=optional گزینه ای اختیاری برای ولتاژ مرجع است, که میتوان از حالت های زیر نیز استفاده شود.

Off :برای خاموش کردن ولتاژ مرجع داخلی و استفاده از ولتاژ موجود بروی پایه aref 

AVCC: زمانی که از این گزینه استفاده شودولتاژ پایه AVCC بعنوان مرجع در نظر گرفته میشود.

 

INTERNAL : زمانی که ولتاژ مرجع داخلی 2.56 ولت با خازن خارجی بروی پایه AREF استفاده شود.مانند شکل بالا.البته انتخاب این گزینه برای میکرو هایی که ولتاژ مرجع داخلی ندارند هیچ تاثیری ندارد.

دستور GETADC

با این دستور سیگنال انالوگ وارد شده به مقدار دیجیتال تبدیل میشود و در متغییر تعریف شده از نوع داده WORD قرار میگیرد.                                                                                                                            Var=getadc()

در داخل پرانتز کانال مربوطه به پورت adc قرار داده میشود.از پورت های adc میتوان بعنوان ورودی وخروجی استفاده کرد.ولی هنگامی که پورت بصورت adc پیکره بندی شود دیگر نمیتوان بعنوان I/O از ان استفاده کرد.

دستورات stop و start

توسط دستور start adc نمونه برداری شروع میشود و stop adc تغذیه را از adc قطع میکنیم.

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

 

regfile = "m32def.dat$
Config Portb = Output
Config Adc = Single , Prescaler = Auto
Start Adc
Dim A As Word
Do
A = Getadc(5)
If A > 512 Then
Portb.0 = 1
Else
Portb.0 = 0
End If
Loop
End                                                         'end program





:: بازدید از این مطلب : 12879
|
امتیاز مطلب : 40
|
تعداد امتیازدهندگان : 10
|
مجموع امتیاز : 10
تاریخ انتشار : سه شنبه 9 خرداد 1398 | نظرات ()
مطالب مرتبط با این پست
لیست
می توانید دیدگاه خود را بنویسید

<-CommentGAvator->
علیرضا گودرزی در تاریخ : 1391/3/9/2 - - گفته است :
سلام

با تشكر فراوان


پاسخ:سپاس از شما دوست عزیز.


نام
آدرس ایمیل
وب سایت/بلاگ
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

آپلود عکس دلخواه: