اطلاعیه

Collapse
No announcement yet.

[ آموزشی ] چطور به بهترین دقت ADC در میکروکنترلر های STM32 دست پیدا کنیم

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    [ آموزشی ] چطور به بهترین دقت ADC در میکروکنترلر های STM32 دست پیدا کنیم

    ​سلام به دوستان و خصوصا اساتید گرامی که این انجمن علمی رو پربار تر از گذشته نگه داشتند

    با توجه به استفاده گسترده از میکروکنترلر های STM32 و کاربرد بسیاری که در صنعت دارند تصمیم دارم در این تاپیک به طور اختصاصی به بحث در خصوص
    مبحث پرکاربرد ADC و عواملی که در دقت اندازه گیری این بخش تاثیر گزار هست بپردازم .
    در این راستا یک فایل PDF بسیار خوب و پر محتوا که در این خصوص به تفکیک توضیحاتی رو ارائه کرده در نظر گرفتم که ان شاءالله به یاری خدا تمام این فایل که 49 صفحه
    هست رو ترجمه کرده و به زبان روان برای دوستان و علاقه مندان به کار با این نوع از میکرو کنترلر ها ( STM32 ) قرار میدهم .
    امید است که با ترجمه این PDF اشتیاق بیشتری برای مطالعه ی این مبحث بوجود بیاد .
    ضمنا در صورتی که ایرادهایی وجود داشت امیدوارم که دوستان تذکر بدن
    در همین جا از تمامی اساتید و صاحب نظران درخواست میشه که سهم خودشون رو در این خصوص در این تاپیک ایفا کنند و پیشاپیش از تمامی کسانی که قدمی بر میدارند تشکر میکنم .

    آدرس فایل PDF :



    بســــــم الله . . .

    ابتدا یه توضیح اجمالی و مختصر راجع به ADC میکروهای STM32

    میکروهای STM32 تا 4 ماژول ADC با رزولوشن 12 بیت رو دارا هستند که به عنوان مثال یک میکروی پرکاربرد از این نوع STM32F103 دارای 3 ماژول ADC هست
    self-calibration یا خاصیت خود کالیبراسیون این ماژول (ADC) این امکان رو فراهم میکنه که دقت ADC رو حتی با وجود تغیرات شرایط محیطی افزایش بدیم .
    باتوجه به اهمیت دقت اندازه گیری در بسیاری از کاربرد ها میبایست خطاهای ADC و پارامتر هایی که بر اندازه گیری این ماژول تاثیر گزار هست رو مطلع بود که در ادامه ذکر میشه .
    دقت ADC تنها به عملکرد خودش وابسته نیست بلکه به طراحی PCB مدار که مرتبط و تاثیر گذار بر این بخش هم هست بستگی داره .
    در ادامه ترجمه این فایل آموزشی به ما کمک میکنه که بدونیم خطاهایی که ممکنه ADC دچارشون بشه چیه و چطور باید دقت اندازه گیری این بخش رو افزایش بدیم
    که به سه بخش تقسیم میشه :
    1_یه توصیف ساده از ساختار داخلی ADC و دونستن عملکرد این بخش
    2_تشریح مدل های مختلف و منابع مختلفی که باعث خطای این بخش میشن که به طراحی PCB و پارامتر های خارجی ADC مرتبط میشه
    3_پیشنهادهایی ارائه شده که چطور این خطا ها رو به کمترین حد برسونیم که تمرکز بر طراحی سخت افزار ( PCB ) و کدهای نوشته شده برای ADC هست .

    بخش 1
    مبادی و اصول داخلی ADC
    1.1
    ساختار داخلی ADC که براساس نوع SAR ( به معنی رجیستر تقریب متوالی ) می باشد
    ماژول های ADC که در میکروهای STM32 جاسازی شده از مدل SAR برای اندازه گیری مقادیر استفاده میکنند
    هر عمل تبدیل در چند سیکل و استپ انجام میشه که تعداد استپ ها برابر هست با تعداد بیت های مبدل ADC
    هر استپ کلاکش رو از کلاک متصل شده به بخش ADC میگیره
    هر کلاک ADC یه بیت از کل بیت هایی که در رزولوشن 12 بیتی باید 1 بشن تا نتیجه نهایی بدست بیاد رو تولید میکنه
    طراحی داخلی این مدل از ADC براساس تکنولوژی سویچ کردن و 0 و 1 شدن خازن ها انجام شده که شکلش رو میتونید تو صفحه 6 فایل ببینید

    ادامه داره . . .
    جدیدترین ویرایش توسط rezamajdi; ۲۳:۲۴ ۱۳۹۷/۰۴/۱۶.
    آرزوی سرافرازی برای ایران عزیز . . .



    #2
    پاسخ : چطور به بهترین دقت ADC در میکروکنترلر های STM32 دست پیدا کنیم

    بخش 2
    در بخش 2 لیست ارور های اصلی که در دقت تبدیل آنالوگ به دیجیتال موثر هستند رو ارائه میکنیم .
    این مدل از ارور ها که در ادامه توضیح داده میشه در همه مبدل های آنالوگ به دیجیتال اتفاق میوفته و کیفیت تبدیل بستگی داره به اینکه چقدر از این ارور ها
    رو رفع کنیم .
    مقادیر این ارور ها در دیتاشیت میکروکنترلر های stm32 در قسمت مشخصات adc مشخص شده .
    به عنوان یه نمونه ساده : دقت خطاها به صورت مضربی از 1LSB بیان میشه .
    رزولوشن ولتاژ به ولتاژ رفرنس انتخابی وابسته هست .
    ارور ولتاژ محاسبه میشه به وسیله ضرب کردن عدد LSB ها در ولتاژ 1LSB که ولتاژ 1LSB از رابطه زیر بدست میاد :
    1LSB = Vref+ / 2^12
    2.1
    ارورهایی که به خود adc مرتبط هست
    2.1.1
    ارور آفست
    ارور آفست یه انحراف هست بین اولین انتقال واقعی و اولین انتقال ایده آل . این معنی انتقال رو خودم درست متوجه نشدم ؟؟
    اولین انتقال وقتی که خروجی adc که دیجیتالی هست از 0 به 1 تغییر میکنه اتفاق میوفته .
    در حالت ایده آل و به لحاظ تئوری وقتی ورودی آنالوگی که به adc وصل کردیم از نظر بخش دیجیتال بین 0.5LSB و 1.5LSB باشه خروجی دیجیتال باید برابر 1LSB بشه .
    همچنین در حالت ایده آل اولین انتقال در 0.5LSB اتفاق میوفته .
    ارور آفست از این به بعد با نماد Eo نام گزاری میشه .
    ارور آفست توسط کد برنامه نویس به آسونی قابل کالیبره کردن هست .

    ادامه داره . . .
    جدیدترین ویرایش توسط rezamajdi; ۱۲:۴۰ ۱۳۹۷/۰۴/۱۶.
    آرزوی سرافرازی برای ایران عزیز . . .


    دیدگاه


      #3
      پاسخ : چطور به بهترین دقت ADC در میکروکنترلر های STM32 دست پیدا کنیم

      ADC میکرو STM32 بسیار عالی هستش فقط کافیه خوب شناخته بشه. من قبلا توضیحاتی داده بودم که ارورها توی این میکرو چطور هستش.

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


      البته وقت نکردم کامل و بیشتر توضیح بودم. الان هم همین طور ولی قسمت مشخصات ADC توی دیتاشیت رو بفهمید کامل دستتون میاد. خصوصا نمودار ارورها و فرمول مربوطه و دیاگرام اتصال عمومی
      واقعا ADC میکرو قسمتی هستش که قبل از کار کردن باید خوب شناختش. خصوصا این STM32

      دیدگاه


        #4
        پاسخ : چطور به بهترین دقت ADC در میکروکنترلر های STM32 دست پیدا کنیم

        به عنوان نمونه :
        در خصوص adc میکرو stm32 کوچکترین تغیر قابل توجهی در ولتاژ رو LSB میگن :
        1LSB = Vref+ / 4096
        که در بعضی پکیج ها Vref+ = Vdda
        اگه ولتاژ رفرنس برابر 3.3 ولت باشه مقدار ولتاژ402.8uV با توجه به عبارت داخل پرانتز (0.5LSB = 0.5 * 805.6uV ) به صورت ایده آل باید منجر به تولید
        خروجی دیجیتالی 1 بشه .
        البته در عمل ممکنه که ADC در چنین شرایطی ( ولتاژ ورودی 402.8 میکرو ولت ) خروجی دیجیتالی صفر رو تولید کنه !
        یه مثال ساده در خصوص اندازه گیری مقدار آفست :
        فرض کنیم خروجی دیجیتالی 1 از ولتاژ ورودی 550 میکرو ولت بدست اومده . با این حساب داریم :
        مقدار انتقال ایده آل - مقدار انتقال واقعی = ارور آفست
        Eo = 550uV - 402.8uV = 141.2uV
        Eo = 141.2uV / 805.6uV = 0.17 LSB
        وقتی یه ولتاژ آنالوگ ورودی بیشتر از 0.5LSB اولین انتقال رو تولید میکنه ارور آفست مقداری مثبت هست .
        به شکل 7 در صفحه ی 11 فایل PDF مراجعه کنید
        آدرس فایل PDF :
        https://www.st.com/content/ccc/resou...CD00211314.pdf

        حالا وقتی یه ولتاژ آنالوگ ورودی کمتر از 0.5LSB اولین انتقال رو تولید میکنه مقدار ارور آفست منفی هست
        به شکل 8 مراجعه شود

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

        ادامه داره . . .
        جدیدترین ویرایش توسط rezamajdi; ۱۸:۲۱ ۱۳۹۷/۰۴/۱۶.
        آرزوی سرافرازی برای ایران عزیز . . .


        دیدگاه


          #5
          پاسخ : [ آموزشی ] چطور به بهترین دقت ADC در میکروکنترلر های STM32 دست پیدا کنیم

          سلام
          جناب مجدی از آموزشی که گذاشتید تشکر میکنم
          من که منتظرم آموزش adc تکمیل بشه بتونم با اطلاعات کامل با adc میکرو کار کنم

          دیدگاه


            #6
            پاسخ : [ آموزشی ] چطور به بهترین دقت ADC در میکروکنترلر های STM32 دست پیدا کنیم

            نوشته اصلی توسط Fake نمایش پست ها
            سلام
            جناب مجدی از آموزشی که گذاشتید تشکر میکنم
            من که منتظرم آموزش adc تکمیل بشه بتونم با اطلاعات کامل با adc میکرو کار کنم
            خواهش میکنم
            ان شاءالله وقت کنم هر چه سریع تر این آموزش رو به پایان برسونم

            2.1.2
            ارور گین

            خطای ارور گین در واقع انحراف بین آخرین انتقال واقعی ( انتقالی که در عمل رخ داده ) و آخرین انتقال ایده آل هست .
            که این ارور گین با نماد EG نشون داده میشه . . .
            آخرین انتقالی که در عمل رخ داده ( انتقال واقعی ) در واقع انتقالی از 0XFFE به 0XFFF هست
            در حالت ایده آل باید از مقدار 0XFFE به 0XFFF انتقالی وجود داشته باشه وقتی که ولتاژ ورودی برابر Vref+ - 0.5LSB هست
            بنابراین برای ولتاژ رفرنس 3.3 ولت آخرین انتقال واقعی باید در ولتاژ 3.299597 ولت اتفاق بیوفته .
            در صورتی که Vain < Vref+ - 0.5LSB باشه و ADC مقدار 0XFFF رو بخونه اون وقت ارور گین منفی بدست میاد .

            مثال :

            ارور گین از فرمول زیر بدست میاد :
            EG = last actual transition - ideal transition
            اگه ولتاژ رفرنس برابر 3.3 و ولتاژ آنالوگ ورودی برابر 3.298435 ولت باشه و این باعث بشه که عمل انتقال از
            0XFFE به 0XFFF صورت بگیره داریم :
            EG = 3.298435 V - 3.299597 V
            EG = -1162 uV
            EG = ( -1162 uV / 805.6 uV )
            LSB = - 1.44 LSB
            اگه مقدار 0X FFF از ولتاژ ورودی که برابر ولتاژ رفرنس هست بدست نیاد ارور گین مثبت میشه .
            این به این معنی هست که ولتاژی بیش از ولتاژ رفرنس باعث آخرین انتقال و بدست اومدن مقدار 0X FFF خواهد شد

            شکل 9 در صفحه 12 فایل PDF ارور گین مثبت رو نشون میده .
            شکل 10 در صفحه 13 فایل PDF ارور گین منفی رو نشون میده .

            آدرس فایل PDF :
            https://www.st.com/content/ccc/resou...CD00211314.pdf



            جدیدترین ویرایش توسط rezamajdi; ۱۶:۳۵ ۱۳۹۷/۰۴/۱۹.
            آرزوی سرافرازی برای ایران عزیز . . .


            دیدگاه


              #7
              پاسخ : [ آموزشی ] چطور به بهترین دقت ADC در میکروکنترلر های STM32 دست پیدا کنیم

              2.1.3
              خطای خطی تفاضلی

              خطای خطی تفاضلی که به اختصار DLE نوشته میشه بیشترین انحراف بین مقدار واقعی و مقدار ایده آل پله های تبدیل هست .
              منظور از پله (STEP) رو با یه مثال میگم مثلا یه ADC با رزولوشن 12 بیت دارای 12^2 پله هست
              دقت کنید که در این جا کلمه ایده آل به منحنی انتقال ایده آل اشاره نمیکنه بلکه منظور رزولوشن ADC هست .
              DLE رو با نماد ED مشخص میکنیم که در شکل 11 نشان داده شده .
              ED = actual step width - 1LSB
              در حالت ایده آل اگه تغیرات ولتاژ ورودی به اندازه 1LSB باشه باید باعث تغیرات در خروجی ADC بشه .
              اگه برای ایجاد تغیر در خروجی دیجیتالی ADC مقدار ولتاژ آنالوگی بیشتر از 1LSB لازم بود به این معنی هست که DLE باید در نظر گرفته بشه .
              بنابراین در خصوص DLE میشه این طوری گفت : بیشترین ولتاژ آنالوگ ورودی اضافی ( بیشترین تغیرات ولتاژ ورودی ) که لازمه تا خروجی دیجیتال رو به اندازه 1 واحد تغیر بده .
              DLE همچنین به عنوان خطای غیر خطی تفاضلی شناخته میشه ( DNL )

              مثال :

              مقدار خروجی دیجیتالی ADC باید (به عبارتی میشه گفت) ترجمه ولتاژ آنالوگ ورودی باشه
              در حالت ایده آل پهنای هر پله 1LSB هست .
              فرض کنیم ولتاژ ورودی بین دو مقدار 1.9998 و 2.0014 هست و مقدار خروجی دیجیتال ADC در این بازه ولتاژ ورودی مقداری ثابت هست بدون کوچکترین تغیری
              با این فرض داریم :

              2.0014v - 1.9998v = 1.6mv

              یعنی با فرض ذکر شده پهنای هر پله 1.6 میلی ولت هست
              ED اختلاف ولتاژ بین بیشترین و کمترین ولتاژ آنالوگ منهای ولتاژی به اندازه 1LSB هست .
              اگه ولتاژ رفرنس برابر 3.3 ولت باشه ولتاژ آنالوگ ورودی 1.9998 می تونه خروجی دیجیتالی بین دو مقدار 0X9B0 و 0X9B2 رو تولید کنه .
              به طور مشابه برای ولتاژ ورودی 2.0014 خروجی میتونه بین دومقدار 0X9B2 و 0X9B4 تغیر کنه .
              نتیجه :
              تغیرات کلی ولتاژی که برابر 0X9B2 هست به قرار زیر میباشد

              0X9B3 - 0X9B1 که یعنی 1.6 = 1.9998 - 2.0014
              ED = 1660 uV - 805.6 uV
              ED = 854.4 uV
              ED = (854.4 uV / 805.6 uV) LSB
              ED = 1.06 LSB


              *** این قسمت پایین فکر کنم خوب ترجمه نکردم اگه دوستان اطلاع دارن تذکر بدن درستش کنم ***
              Let us assume that no voltage greater than 2.0014 V will result in the 0x9B2 digital code when the step width is less than 1 LSB, ED is negative
              فرض کنیم که هیچ ولتاژی بیشتر از 2.0014 ولت نتیجه 0X9B2 رو نمیده وقتی که پهنای پله کمتر از 1LSB هست ED منفیه .

              ادامه داره . . .
              جدیدترین ویرایش توسط rezamajdi; ۲۰:۰۷ ۱۳۹۷/۰۴/۲۲.
              آرزوی سرافرازی برای ایران عزیز . . .


              دیدگاه


                #8
                پاسخ : [ آموزشی ] چطور به بهترین دقت ADC در میکروکنترلر های STM32 دست پیدا کنیم

                2.1.4
                خطای خطی انتگرالی

                خطای خطی انتگرالی بیشترین انحراف بین هر انتقال واقعی و خط ارتباطی پایانی ( در ادامه توضیح میدم که دقیقا چیه ؟ ) هست .
                این خطا که به اختصار ILE نامیده میشه با نماد EL مشخص میشه .
                که در شکل 12 نشان داده شده .
                حالا خط ارتباط پایانی چیه ؟
                یه خط در منحنی انتقال آنالوگ به دیجیتال هست که اولین انتقال واقعی رو به آخرین انتقال واقعی وصل میکنه .
                EL انحرافی هست بین این خط و هر انتقال صورت گرفته ( در واقع به زبان ساده تر انحراف و فاصله ای که بین این خط و لبه ی هر پله وجود داره EL میگن )
                این خط مطابق با منحنی مقدار انتقال واقعی رسم میشه که در شکل هم مشخصه و ربطی به انتقال ایده آل نداره
                ILE همچنین به عنوان خطای غیر خطی انتگرالی INL شناخته میشه .
                ILE در واقع انتگرال DLE در کل محدوده منحنی انتقال هست .

                مثال :

                اولین انتقال از 0 به 1 در 550uV و آخرین انتقال ( 0XFFE به 0XFFF ) در ولتاژ 3.298435 صورت میگیره ( خطای گین ) حالا خطی که در منحنی انتقال مقدار واقعی دیجیتالی 0X1
                و 0XFFF رو به هم وصل میکنه خط ارتباط پایانی هست .

                ادامه دارد . . .
                آرزوی سرافرازی برای ایران عزیز . . .


                دیدگاه


                  #9
                  پاسخ : [ آموزشی ] چطور به بهترین دقت ADC در میکروکنترلر های STM32 دست پیدا کنیم

                  2.1.5

                  مجموع خطاهای غیر قابل تنظیم

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

                  TUE با نماد ET معرفی میشه که در شکل 13 صفحه 16 فایل PDF نشون داده شده .
                  نکته : TUE جمع EO , EG , EL , ED نیست.
                  نکته :ارور آفست روی مقدار خروجی دیجیتالی ADC تاثیر میزاره وقتی که ولتاژ در پایین ترین حد خودش قرار داره
                  در حالی که ارور گین روی مقدار خروجی دیجیتالی ADC تاثیر میزاره وقتی که ولتاژ در بالاترین حد خودش قرار داره

                  مثال :

                  اگه ولتاژ رفرنس برابر 3.3 ولت باشه و ولتاژ ورودی برابر 2 ولت نتیجه خروجی ایده آل ADC برابر 0X9B2 میشه .
                  بهر حال اگه نتیجه تبدیل 0X9B4 بدست بیاد مقدار انحراف ممکنه بدست بیاد از مقدار آفست زمانی که خطاهای DLE و ILE به صورت همزمان اتفاق بیوفته .

                  TUE = absolute (actual value ideal case value) = 0x9B4 0x9B2 = 0x2 = 2 LSB

                  آدرس فایل PDF :
                  https://www.st.com/content/ccc/resou...CD00211314.pdf


                  دوستان آموزش همچنان ادامه داره . . .
                  جدیدترین ویرایش توسط rezamajdi; ۲۳:۳۰ ۱۳۹۷/۰۴/۲۴.
                  آرزوی سرافرازی برای ایران عزیز . . .


                  دیدگاه


                    #10
                    پاسخ : [ آموزشی ] چطور به بهترین دقت ADC در میکروکنترلر های STM32 دست پیدا کنیم

                    سلام
                    با تشکر از آموزشی که گذاشتید
                    میشه بخش نویزهای ناشی از طراحی مدار رو توضیح بدید؟

                    دیدگاه


                      #11
                      پاسخ : [ آموزشی ] چطور به بهترین دقت ADC در میکروکنترلر های STM32 دست پیدا کنیم

                      نوشته اصلی توسط Fake نمایش پست ها
                      سلام
                      با تشکر از آموزشی که گذاشتید
                      میشه بخش نویزهای ناشی از طراحی مدار رو توضیح بدید؟
                      سلام خدمت شما
                      اتفاقا این مبحث مهم در بخش های بعدی در فایل pdf وجود داره که به ترتیب جلو میرم و به این مبحث مورد نظر شما هم میرسیم

                      موفق باشید
                      آرزوی سرافرازی برای ایران عزیز . . .


                      دیدگاه


                        #12
                        پاسخ : [ آموزشی ] چطور به بهترین دقت ADC در میکروکنترلر های STM32 دست پیدا کنیم

                        2.2
                        خطاهای ناشی از محیط ADC

                        2.2.1
                        نویز های ولتاژ رفرنس

                        همان طور که خروجی ADC نسبتی بین مقدار ولتاژ سیگنال آنالوگ ورودی و ولتاژ رفرنس هست ( تاثیر مقدار ولتاژ رفرنس بر روی مقدار اندازه گیری شده از ورودی )
                        هر نویزی در ولتاژ آنالوگ رفرنسباعث تغییراتی در مقدار دیجیتالی خروجی ADC میشه .
                        در بعضی پکیج های این میکرو کنترلر (STM32) ولتاژ پین VDDA که برای تغذیه میکرو هست به عنوان ولتاژ رفرنس در نظر گرفته شده
                        بنابراین بدیهی هست که کیفیت ولتاژ VDDA در بروز خطاهای ADC تاثیر گذار هست. ( و هرچه ولتاژ این پایه صاف تر و فیلتر شده تر باشه دقت اندازه گیری بالاتر خواهد رفت )

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

                        اگه ولتاژ رفرنس برابر 3.3 ولت و سیگنال ورودی برابر 1 ولت باشه نتیجه تبدیل به قرار زیر است :
                        (1/3.3) × 4095 = 0x4D9
                        بهرحال اگه مثلا 40 میلی ولت پیک تو پیک ریپل در ولتاژ رفرنس داشته باشیم مقدار تبدیل شده به قرار زیر است :
                        (1/3.34) × 4095 = 0x4CA
                        Error = 0x4D9-0x4CA = 15 LSB
                        توجه :

                        SMPS یا منابع تغذیه سویچینگ به دلیل استفاده از ترانزیستور هایی که سریع سویچ میکنند نویز فرکانس بالایی رو در خروجی تولید میکنند که این نویز ها
                        معمولا در رنج 15KHZ تا 1MHZ قرار دارن .

                        امیدوارم مفید بوده باشه
                        ادامه داره . . .
                        جدیدترین ویرایش توسط rezamajdi; ۲۱:۰۳ ۱۳۹۷/۰۵/۰۹.
                        آرزوی سرافرازی برای ایران عزیز . . .


                        دیدگاه


                          #13
                          پاسخ : [ آموزشی ] چطور به بهترین دقت ADC در میکروکنترلر های STM32 دست پیدا کنیم

                          2.2.2

                          ولتاژ رفرنس و رگولاسیون منبع تغذیه

                          رگولاسیون منبع تغذیه از اهمیت بسیار بالایی در خصوص دقت ADC برخورداره زیرا نتیجه تبدیل درواقع نسبت ولتاژ آنالوگ ورودی به ولتاژ رفرنس هست .

                          اگر ولتاژ خروجی منبع تغذیه وقتی که به VDDA یا VREF+ متصل شده کاهش پیدا کنه ؛ به دلیل بارهایی که در این ورودی ها ( VDDA یا VREF+ ) قرار داره و همین طور به دلیل
                          امپدانس خروجی منبع تغذیه خطایی در خروجی عملیات تبدیل رخ خواهد داد .

                          فرمول خروجی دیجیتالی عملیات تبدیل به قرار زیر است :

                          4095 * ( ولتاژ رفرنس / ولتاژ ورودی )

                          اگر ولتاژ رفرنس تغییر کنه خروجی دیجیتالی عملیات تبدیل هم تغییر خواهد کرد.

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


                          اگه ولتاژ رفرنس برابر 3.3 باشه و ولتاژ ورودی برابر 1 ولت باشه مقدار خروجی دیجیتالی تبدیل برابر 0X4D9 خواهد شد.

                          حالا اگه ولتاژ رفرنس برابر 3.292 ولت باشه ( بعد از اتصال خروجی به VREF+ ) داریم :
                          خروجی دیجیتالی برابر 0X4DC میشه .

                          خطای ناشی از کاهش ولتاژ رفرنس برابر است با :
                          0X4DC - 0X4D9 = 3 LSB
                          ادامه داره . . .
                          جدیدترین ویرایش توسط rezamajdi; ۲۱:۰۱ ۱۳۹۷/۰۵/۰۹.
                          آرزوی سرافرازی برای ایران عزیز . . .


                          دیدگاه


                            #14
                            پاسخ : [ آموزشی ] چطور به بهترین دقت ADC در میکروکنترلر های STM32 دست پیدا کنیم

                            2.2.3
                            پارامترهای ولتاژ رفرنس خارجی

                            در خصوص استفاده از منبع ولتاژ خارجی به عنوان ولتاژ رفرنس ( روی پین VREF+ ) پارامترهای مهمی وجود داره که در ادامه ذکر میشه .

                            به سه مشخصه ولتاژ رفرنس باید توجه بشه :
                            1_ راندگی یا رانش دما ( تغیرات دما ) که میتونه باعث تغییرات ولتاژ رفرنس بشه .
                            2_ نویز ولتاژ
                            3_ پایداری طولانی مدت


                            2.2.4
                            نویز سیگنال آنالوگ ورودی

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

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

                            به عنوان نتیجه ، با توجه به مورد ذکر شده ؛ خروجی تبدیل ADC دقیق نیست .

                            ادامه داره . . .
                            آرزوی سرافرازی برای ایران عزیز . . .


                            دیدگاه


                              #15
                              پاسخ : [ آموزشی ] چطور به بهترین دقت ADC در میکروکنترلر های STM32 دست پیدا کنیم

                              ترجمه فایل PDF ابتدای تاپیک . . .
                              2.2.5

                              تطابق نامناسب محدوده ی دینامیکی ADC برای ماکزیمم دامنه سیگنال ورودی " ADC dynamic range bad match for maximum input signal amplitude "

                              برای بدست آوردن بیشترین دقت در عملیات تبدیل ADC ؛ این مسئله بسیار مهمه که محدوده دینامیکی ( مثلا 0 تا 3.3 ولت ) ADC ، تطابق پیدا کنه با ماکزیمم دامنه سیگنال ورودی .

                              خودم : در کل این جمله میخواد بگه که سعی کنید ماکزیمم دامنه سیگنال ورودی اعمالی به ADC تا نزدیکی های ولتاژ رفرنس برسه که بشه از تمام دقت و تفکیک پذیری ADC استفاده کرد.
                              مثلا در میکرو های STM32 اگه ولتاژ رفرنس روی 3.3 تنظیم شده بهتره ماکزیمم دامنه سیگنال ورودی 3.3 باشه .
                              بنابراین اگه یه سیگنال مثلا سینوسی خالص با دامنه 0.1 ولت داریم بهتره توسط آپ آمپ 33 برابر بشه تا بتونیم از حداکثر قدرت تفکیک پذیری ADC میکرو استفاده کنیم .


                              بیاید فرض کنیم سیگنالی ورودی که میخواد تبدیل بشه بین مقدار 0 ولت و مقدار 2.5 ولت متغیر باشه و ولتاژ رفرنس هم 3.3 باشه .
                              بیشترین مقدار دیجیتالی سیگنال ورودی که به وسیله ADC تبدیل میشه برابر 3102 هست ( در ولتاژ 2.5 ولت ) همان طور که در شکل 14 صفحه ی 18 فایل PDF نشون داده شده .

                              در خصوص این مورد ، 993 انتقال بی استفاده ( 4095 - 3102 = 993 ) وجود داره .
                              خودم : در واقع میخواد بگه که از 4095 شماره رزولوشن ADC ، تعداد 993 شماره بی استفاده مونده و همین مسئله به اندازه خودش تا حدی قدرت تفکیک پذیری رو کاهش داده .

                              این مسئله نشون میده که به دقت سیگنال تبدیل شده خدشه وارد شده .
                              See Section 3.2.5: Matching the ADC dynamic range to the maximum signal amplitude on page 26 for details on how to make the ADC dynamic range match the maximum input signal amplitude.

                              آدرس فایل PDF :
                              https://www.st.com/content/ccc/resou...CD00211314.pdf
                              جدیدترین ویرایش توسط rezamajdi; ۲۳:۰۷ ۱۳۹۷/۰۵/۱۳.
                              آرزوی سرافرازی برای ایران عزیز . . .


                              دیدگاه

                              لطفا صبر کنید...
                              X