خدمات وبسایت آی‌سی‌تی نیـــک

طراحی و ساخت انواع پروژه‌های الکترونیکی با: میکروکنترلرavr - میکروکنترلرarm - میکروکنترلرpic و آردوینو

مقالات و آموزش‌های رایگان در سطوح پایه و حرفه‌ای برای الکترونیک و آی سی تی - ICT

آموزش راه اندازی مبدل 12بیتی آنالوگ به دیجیتال میکروکنترلر dspic30f

منتشر شده در میکروکنترلرpic

ستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعال
 

مبدل 12بیتی آنالوگ به دیجیتال میکروکنترلر dspic30f4013 یک مبدل 12بیتی بوده و قابلیت نمونه برداری با نرخ 100ksps را داراست. این ماژول تا16کانال ورودی میتواند داشته باشد که توسط یک مالتی پلکسر به یک تقویت کننده متصل می شود.

dspic adc0

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

پایه های ورودی از طریق یک مالتی پلکسر به تقویت کننده S/H با علامت CH0 متصل می شوند و  توسط رجیستر های کنترلی مشخص می شود که کدام پایه ها به ورودی های S/H متصل شوند.

مبدل دارای بافر با سایز16WORDA/Dمی باشد که قابلیت ذخیره به 4شکل مختلف را در بافر دارد.

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

1- بافر A/D :

شامل 16WORD به نامهای زیر:

ADCBUF0, ADCBUF1,…, ADCBUFE ADCBUFF

2- رجیستر کنترلی ADCON1:

dspic adc1

  • بیت ADON

          1=تبدیل A/D در حال انجام است.

          0=تبدیل A/D متوقف است.

  • ADSIDL:

          1=در مد بیکاری میکرو عملیات تبدیل متوقف میباشد

          1=در مد بیکاری میکرو عملیات تبدیل متوقف نمیباشد.

  • FORM<1:0> فرمت اطلاعات ذخیره شده در بافر:

dspic adc

  • SSRC<2:0> انتخاب منبع تحریک عملیات تبدیل:

dspic adc4

مشاهده می شود که میتوان منبع تحریک عملیات تبدیل ماژول A/D را روی 5منبع انتخاب کرد:

  1. شمارنده داخلی (مد به اصطلاح FREE RUNNING)
  2. ایست واحد کنترل موتور PWM
  3. مد مقایسه کننده تایمر 3
  4. پایه وقفه خارجی INT0
  5. 0شدن بیت SAMP (دستی)
  • ASAMبیت شروع خودکار نمونه برداری:

          1=نمونه برداری بلافاصله بعد از تکمیل آخرین تبدیل

          0=شروع نمونه برداری هنگامی که بیت SAMP برابر 1 شود

  • DONE بیت وضعیت تبدیل:

          1=تبدیل انجام شده

          0=عملیات تبدیل هنوز پایان نیافته است.

3- رجیستر کنترلی ADCON2:

dspic adc5

  • VCFG<2:0> بیت تنظیم ولتاژ مرجع:

dspic adc6

  • CSCNA بیت تنظیم مالتی پلکسر MUXA برای انتخاب اسکن ورودی

          1= اسکن فعال

          0= اسکن غیر فعال

  • BUFS بیت وضعیت تکمیل بافر

نکته : تنها زمانی معتبر است که بیت BUFM=1 باشد.

          1=مبدل درحال پرکردن بافرهای 0X8~0XF می باشد و کاربر می تواند بافرهای 0X0~0X7 را بخواند.

          0=مبدل درحال پرکردن بافرهای 0X0~0X7 می باشد و کاربر می تواند بافرهای 0X8~0XF را بخواند.

  • SMPI<3:0> بیت انتخاب مد وقفه بسته به تعداد نمونه های برداشته شده:

dspic adc7

  • BUFMبیت انتخاب نوع بافر

          1=بافر بعنوان 2تا 8کلمه ای تنظیم می شودADCBUF(15~8) و ADCBUF(7~0)

          0=بافر بعنوان یک 16کلمه ای تنظیم می شودADCBUF(15~0)

  • ALTS بیت تنظیم پرش بین نمونه بردارها

          1:در اولین نمونه برداری از MUXA و سپس از MUXB و بهمین شکل متناوبا عمل میکند.

          0: تنها از MUXA ورودی ها را میخواند.

4- رجیستر کنترلی ADCON3:

dspic adc8

  • SAMC<4:0> تعیین کننده زمان نمونه برداری و تبدیل

dspic adc9

  • ADRCبیت تنظیم منبع کلاک ADC

          1=کلاک RC داخلیA/D

          0=کلاک سیستم

  • ADCS<5:0> انتخاب کلاک تبدیل:

dspic adc10

  • رجیستر تنظیم ورودی هاADCHS

dspic adc11

  • CH0NB انتخاب ورودی برای پایه CH0توسط MUXB

dspic adc12

  • CH0SB<3:0> انتخاب ورودی پایه + CH0 توسط MUXB

dspic adc13

  • CH0NA انتخاب ورودی برای پایه CH0توسط MUXA

dspic adc12

  • CH0SA<3:0> انتخاب ورودی پایه + CH0 توسط MUXA

dspic adc13

5- رجیستر تنظیم پورتA/D

ADPCFG:

dspic adc14

  • PCFG<15:0>

1          =پایه در مد دیجیتال بعنوان I/O عمل میکند

          0=پایه در مد آنالوگ بعنوان ورودی A/D (توانایی خواندن و نوشتن را نداریم)

6- رجیستر انتخاب اسکن ورودی ها ADCSSL:

dspic adc15

  • CSSL<15:0>

1          =انتخاب ANx بعنوان ورودی برای اسکن

          0=غیرفعال کردن ANx برای اسکن

گامهای تبدیل A/D:

نمونه برداری از پایع های آنالوگ ورودی توسط تقویت کنندهS/H انجام می شود که کانال S/H نیز نامیده می شود که به مالتی پلکسرهای MUXA و MUXB متصلند و این دو مالتی پلکسر توسط رجیستر ADHS کنترل می شود و کاربر به انتخاب میتواند یکی از آنها را انتخاب کند و یا به صورت متناوب ورودی ها را از آنها بخواند.

زمان نمونه برداری زمانیست که تقویت کننده به پایه های ورودی متصل است و با یک کردن بیت SAMP یا بصورت اتوماتیک توسط مبدل پایان می پذیرد.

زمان تبدیل مدت زمانیست که مبدل ولتاژ نگهداشته شده در S/H را تبدیل به داده دیجیتالی میکند. در این زمان پایه های ورودی قطع می باشد.

در کل 14TAD برای تکمیل یک عملیات نیاز می باشد.

زمانی که تبدیل انجام شد مقدار آن درون رجیستر های ADCBUF0…F ذخیره می شود. در این هنگام چنانچه مد نمونه برداری خودکار(ASAM=1)انتخاب شده باشد پایه های ورودی مجددا به A/D متصل شده و وقفه باتوجه به تنظیمات ساخته می شود.

پیکربندی ماژول A/D:

برای پیکربندی ماژول A/D گام های زیر مورد نیاز است:

1-    تنظیم ماژول A/D

  • انتخاب مرجع ولتاژ
  • انتخاب کلاک ماژول
  • مشخص کردن نحوه نمونه برداری
  • مشخص کردن پایه های متصل به S/H
  • مشخص کردن نوع ذخیره اطلاعات در بافر
  • انتخاب نوع وقفه
  • روشن کردن ماژول

2-    تنظیم وقفه ماژولA/D (اگر نیاز دارید)

  • پاک کردن بیت ADIF
  • مشخص کردن اولویت وقفه A/D

نحوه اسکن آرایه ای از ورودی ها:

CH0این قابلیت را دارد که از بین ورودی ها آرایه ای مشخص را انتخاب کند برای اینکار نخست بیت CSCNA را 1کرده سپس توسط رجیستر ADCSSL ورودی هایی را که میخواهید اسکن کنید را مشخص کنید.

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

نکته:

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

نکته:

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

مثال :

تبدیل 1کانال و تنظیم دستی شروع نمونه برداری:

ADPCFG = 0xFFFB; // all PORTB = Digital; RB2 = analog
ADCON1 = 0x0000; // SAMP bit = 0 ends sampling ...
// and starts converting
ADCHS = 0x0002; // Connect RB2/AN2 as CH0 input ..
// in this example RB2/AN2 is the input
ADCSSL = 0;
ADCON3 = 0x0002; // Manual Sample, Tad = internal 2 Tcy
ADCON2 = 0;
ADCON1bits.ADON = 1; // turn ADC ON
while (1) // repeat continuously
{
ADCON1bits.SAMP = 1; // start sampling ...
DelayNmSec(100); // for 100 mS
ADCON1bits.SAMP = 0; // start Converting
while (!ADCON1bits.DONE); // conversion done?
ADCValue = ADCBUF0; // yes then get ADC value
}

 مطالب مرتبط :

برچسب ها:

Tags: آموزش برق و الکترونیک ابزار دقیق مقاله میکروکنترلر pic microcontroller pic راه اندازی adc مبدل آنالوگ به دیجیتال مبدل ADC میکرو DSPIC30

دیدگاه‌ها  

# علی 1397-10-24 00:52
سپاس از مطالب اموزنده وکاربردیتان خیلی به دردم خورد
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن

4

پشتیبانی و مشاوره 24 ساعته

ictnic2

تماس با ما

  • تلگرام : ICTNIC2@

به ما بپیوندید

ما را در صفحات اجتماعی دنبال نمایید...

کاربران ثبت نامی

تا این لحظه تعداد

2415 نفر

در وبسایت تخصصی ictnic

ثبت نام و از خدمات ما استفاده می کنند.

ما را در آپارات دنبال کنید

aparat logo fa color black 275x100