.

.

واحد ADC یا «تبدیل کننده ی آنالوگ به دیجیتال» در میکروکنترلرهای AVR یکی از واحدهای مهم ساختمانی این دسته از میکروکنترلرها به شمار می رود که در مقابل نویز داخلی و نویز خارجی حساس است. در صورت رعایت نکردن مجموعه ای از اصول ساده، امکان بروز خطا در مقدار خروجی واحد ADC وجود دارد.

در اینجا چند راه ساده و موثر برای حفاظت این ایستگاه کاری میکروکنترلر معرفی می شوند:

 

  • در حین فرآیند تبدیل سیگنال آنالوگ به مقادیر دیجیتالی توسط واحد ADC یکی از مُدهای ADC Noise Reduction یا IDEL را انتخاب کنید که در این صورت واحد ADC پس از متوقف شدن CPU شروع به کار می کند،
  • مسیر سیگنال آنالوگ در حد امکان کوتاه انتخاب شود و همچنین مسیرها نزدیک و در مجاورت خط زمینِِ مدار و به دور از مسیرهای دیجیتالیِ فرکانس بالا (مانند نوسانگر خارجی) طراحی شوند،
  • اگر مجبور به استفاده از هر یک از پایه های درگاه ADC به عنوان خروجی شده اید، هنگام عمل تبدیل نباید پایه های دیگر تغییر وضعیت (toggle) بدهند،
  • حالت Tri-State روی پایه ی مورد نظر کانال ورودی سیگنال آنالوگ انتخاب گردد،
  • اگر ولتاژ مرجعی به پایه AREF متصل است، به هیچ عنوان برای ولتاژ مرجع به صورت نرم افزاری یکی از حالت های AVCC و یا ولتاژ مرجع داخلی 2/56 ولت انتخاب نشود! چرا که این عمل موجب اتصال کوتاه شدن بین دو ولتاژ خواهد شد و امکان صدمه دیدن واحد ADC وجود دارد.
  • در صورت استفاده از کانال تفاضلی، ولتاژ مرجع کوچک تر از 0/5 - AVCC و بزرگتر از 2V باید باشد.
  • در صورتی که ولتاژ مرجع داخلی (2/56 ولت) انتخاب شود، با توجه به این که این ولتاژ روی پایه AREF نیز ظاهر می شود، حتماً یک خازن 100 نانوفاراد در پایه AREF گذاشته شود.
  • بهتر است برای اتصال پایه AVCC به VCC از یک شبکه LC استفاده شود .

.

متاسفانه یکی از شایعاتی که از موقع روی کار آمدن میکروهای AVR مطرح شد این بود که AVRها «نویزپذیر» هستند و برای کاربردهای صنعتی قابل اطمینان نمی باشند. علت اصلی این داوری های نادرست این بود که اولاً افراد انتظار داشتند یک میکروکنترلر دقیقاً مثل یک آی.سی. تایمر 555 در هر شرایطی کار کند و اصلاً به حساس بودن و "کامپیوتر" بودن آن اهمیت نمی دادند و آن را در کنار هر منبع نویزی قرار می دادند، ثانیاً برای برنامه نویسی این میکرو از کامپایلرهای قفل شکسته و به روز رسانی نشده و پر از ایراد استفاده می کردند، و ثالثاً افرادی که برای میکرو برنامه نویسی می کردند عموماً متخصصان الکترونیک بودند، نه برنامه نویسان. در نتیجه، بدون دانش نرم افزاری کافی و بدون اطلاع از پُر شدن پشته ی میکروکنترلر، با نوشتن  کدهای غیرمنطقی و پر از دستورات goto یا فراخوانی های متعدد، برنامه ای می نوشتند که میکرو بر اثر آن به راحتی هنگ می کرد و تمام تقصیرها را به گردن AVR می انداختند. (با بررسی سورس کدهای موجود در اینترنت به راحتی می توان از هر کدی ایرادهای پرشمار گرفت).

.

اما جدا از بحث برنامه نویسی که امر مهمی بوده و بیشتر خطاهای میکرو از کدنویسی های غلط ناشی می شود، بخش مهم تری هم وجود دارد که آن «طراحی درست سخت افزار» برای پروژه صنعتی میکروکنترلری است به نحوی که مخاطرات موجود در محیط سخت صنعتی، اعم از بازه ی وسیع تغییرات آب و هوایی، دما و رطوبت، لرزش و شوک های مکانیکی، گازها و بخار مواد شیمیایی ووو، برای یک دستگاه حساس در آن لحاظ شده باشد.

.

.

نویسنده:

سید محمد خدادادی

مدیر مسوول الکترونیک هوشمند - شرکت طراحی سیستم های الکترونیک

تولیدکننده تجهیزات الکترونیک جایگاه های سوخت برند گیلبارکو

.

.

(در متن اصلی اندکی حک و اصلاح صورت گرفته است)

.

.

www. etesalkootah.ir ||   2016-06-22 © 

2015 www.etesalkootah.ir  © All rights reserved.

تمامی حقوق برای www.etesalkootah.ir محفوظ است. بیان شفاهی بخش یا تمامی یک مطلب از www.etesalkootah.ir در رادیو،  تلویزیون و رسانه های مشابه آن با ذکر واضح "اتصال کوتاه دات آی آر" بعنوان منبع مجاز است. هر گونه  استفاده  کتبی از بخش یا تمامی هر یک از مطالب www.etesalkootah.ir در سایت های اینترنتی در صورت قرار دادن لینک مستقیم و قابل "کلیک" به آن مطلب در www.etesalkootah.ir مجاز بوده و در رسانه های چاپی نیز در صورت چاپ واضح "www.etesalkootah.ir" بعنوان منبع مجاز است.