اطلاعیه

Collapse
No announcement yet.

تاپیک سوالات درباره ADC

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

    #91
    پاسخ : تاپیک سوالات درباره ADC

    نوشته اصلی توسط mhm_004
    با سلام بر همه اساتید
    من چند سوال در مورد ADC دارم که با اجازتون همین جا مطرح میکنم:
    در دیتاشیت سری A، عکس زیر برای حالت sigled ended و unsigned آورده شده است:



    یعنی در این حالت تفاضل ولتاژ ورودی با Vref/2-DelataV در خروجی نشان داده میشه؟ اگر ولتاژ ورودی صفر اعمال کنیم، باید در خروجی -(Vref/2-DelataV ) ، (منفی عبارت Vref/2-DelataV ) نشون داده بشه،درسته ؟ یا من اشتباه میکنم؟ ولی در عمل وقتی ورودی صفر هست ولتاژ 0.14 رو میخونه. شکل زیر هم در این ارتباط نشان داده شده است:


    و این شکل میگه وقتی ورودی صفر باشه، باید ولتاژ Vref/2-DelataV در خروجی باشه. اگر ولتاژ رفرنس 1 ولت باشه، DeltaV طبق گفته دیتاشیت حدودا برابر 0.05*Verf خواهد بود که میشه 0.05 ولت. پس خروجی باید حدود 0.45 باشه که نیست. مشکل کجاست دوستان؟

    سوال دوم مربوط میشه به خوندن مقادیر کالیبراسیون ADC و ریختن اونها در رجیسترای کالیبراسیون ADC هست. مقادیر کالیبراسیون ADC طبق گفه دیتاشیت در رجیسترهای ADCACAL0 و ADCACAL1 قرار داره ولی نتونستم از این رجیسترها بخونم. میشه راهنماییم کنین؟

    سوال آخرم در مورد آفست ADC هست. چطور میتونم مقدار آفست ADC رو بدست بیارم؟
    با تشکر از همه اساتید.

    در مد unsigned single ended ورودی بصورت تفاضلی با Vref/2-DeltaV مقایسه می شود و حاصل بصورت خودکار با 2048 جمع می شود. بنابراین به دلیل جمع نتیجه با 2048 تنها DeltaV در مقدار جواب موثر است و اثر Vref/2 برطرف می شود. مقدار 0.05Vref نتیجه ای حدود 0.05 ضرب در 4095 را ایجاد خواهد کرد. اما به دلیل وجود offset لزوما چنین نتیجه ای ایجاد نخواهد شد و از روی مقدار خروجی می توان میزان تقریبی Offset را بدست آورد. یک روش دیگر که در کدهای اتمل برای بدست آوردن offset بکار رفته، قرار دادن adc در وضعیت تفاضلی و تنظیم دو ورودی بصورت یکسان است که در این حالت باید نتیجه تفاضل دو وردی یکسان، صفر باشد. اما از مقدار غیر صفر می توان Offset را بدست آورد. خواندن مقدار calibration byte هم از طریق NVM controller و رجیستر Z میسر است که باید با برنامه اسمبلی این کار انجام شود. در AVR1300 کد موجود در فایلadc_driver_asm.s90 برای این منظور نوشته شده است.
    اوژن: به معنای افکننده و شکست دهنده است
    دانایی، توانایی است-Knowledge is POWER
    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

    دیدگاه


      #92
      پاسخ : تاپیک سوالات درباره ADC

      نوشته اصلی توسط طراح
      در مد unsigned single ended ورودی بصورت تفاضلی با Vref/2-DeltaV مقایسه می شود و حاصل بصورت خودکار با 2048 جمع می شود. بنابراین به دلیل جمع نتیجه با 2048 تنها DeltaV در مقدار جواب موثر است و اثر Vref/2 برطرف می شود. مقدار 0.05Vref نتیجه ای حدود 0.05 ضرب در 4095 را ایجاد خواهد کرد. اما به دلیل وجود offset لزوما چنین نتیجه ای ایجاد نخواهد شد و از روی مقدار خروجی می توان میزان تقریبی Offset را بدست آورد. یک روش دیگر که در کدهای اتمل برای بدست آوردن offset بکار رفته، قرار دادن adc در وضعیت تفاضلی و تنظیم دو ورودی بصورت یکسان است که در این حالت باید نتیجه تفاضل دو وردی یکسان، صفر باشد. اما از مقدار غیر صفر می توان Offset را بدست آورد. خواندن مقدار calibration byte هم از طریق NVM controller و رجیستر Z میسر است که باید با برنامه اسمبلی این کار انجام شود. در AVR1300 کد موجود در فایلadc_driver_asm.s90 برای این منظور نوشته شده است.
      واقعا ازتون ممنونم، پس 0.14 که در خروجی دیده میشه ناشی از DeltaV و آفست ADC هست.
      جناب طراح اگر ممکنه یه رفرنس خوبی برای برنامه نویسی C معرفی کنین که به زبان ساده ای نوشته شده باشه. من کتاب مرجع کامل زبان C نوشته schildet رو دارم. به نظرتون کتاب مناسبی هست؟
      باز هم متشکرم

      دیدگاه


        #93
        پاسخ : تاپیک سوالات درباره ADC

        با سلام.چطور میتونم در میکرو کنترلر به صورت همزمان از چند خروجی ADC استفاده بکنم؟

        دیدگاه


          #94
          پاسخ : تاپیک سوالات درباره ADC

          سلام
          ببین شما زمانی که adc میکرو رو فعال میکنید میتونید از همه پایه های adc استفاده کنید مثلا:
          a=read_adc(0);
          b=read_adc(1);
          گفت که دیوانه نهی لایق این خانه نهی

          دیدگاه


            #95
            پاسخ : تاپیک سوالات درباره ADC

            سلام
            اگر همزمان می خواین چند کانانال رو بخونید بهتره از وقفه ADC استفاده کنید.
            چرا ناراحتی پاتریک!
            + امروز ی بچه دیدم سرچهارراه گل میفروخت
            - از دیدنش ناراحت شدی؟
            + نه
            پس چی ناراحتت کرده
            + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
            ------------------------------------------------------------------------------------------------------
            تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
            ------------------------------------------------------------------------------------------------------
            محصولات

            دیدگاه


              #96
              پاسخ : تاپیک سوالات درباره ADC

              با سلام خدمت اساتید محترم
              من یک لودسل رو ب استفاده از ad620 و xmega16a4 راه اندازی کردم، با دقت خوبی هم اندازه گیری انجام میدم، ولی متاسفانه میکرو هر چند وفت یکبار هنگ میکنه، برنامه رو که بررسی کردم، دیدم در زیربرنامه مروبط به adc، که adc رو استارت میکنم و چند بار داده رو میخوانم و میانگین میگیرم، گیر میکنه. و متوجه شدم در دستوری که اتمام تبدیل رو چک میکنم( یعنی یک شدن فلق مربوط به اتمام تبدیل رو چک میکنم ) گیر میکنه.
              برنامه بارها بررسی کردم ولی مشکل خاصی به نظرم نیومد. از اساتید خواهش میکنم کمکم کنن.
              اسیلاتور داخلی 32MHz رو استفاده میکنم و کلاک adc با ضریب تقسیم 256 بدست میاد. به نظرتون مشکل از کجاست؟ ممکنه adc آسیب دیده باشه؟ خواهش میکنم کمکم کنین

              دیدگاه


                #97
                پاسخ : تاپیک سوالات درباره ADC

                موردی خاصی نیست مگر تنظیم heap در iar
                البته کامپایلر ذکر شود
                کلاک رو 512 بزار و تست کنید
                کلاک میکرو هم رو 2 تست کنید
                هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
                بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
                میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

                تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

                دیدگاه


                  #98
                  پاسخ : تاپیک سوالات درباره ADC

                  سلام
                  می خواستم بپرسم که اگر بخوام از xmega به عنوان یه adc دقیق استفاده کنم در صورت استفاده از رفرنس خوب و باتری می تونم 12 بیت دقت رو داشته باشم
                  با چه آیسی این کار رو بکنم چون من فقط با adc کار دارم و spi

                  دیدگاه


                    #99
                    پاسخ : تاپیک سوالات درباره ADC

                    سلام
                    خوب بگرد یه آیسیه ADC جدا پیدا کن

                    فقط غیر از رزولوشنش چنتا عامل دیگرم باید در نظر بگیری . فرکانس نمونه برداری مهمترینشه تعداد کانالایی هم که لازم داری رو هم لحاظ کن و ولتاژ کاری رو و اینکه خود آیسی گین داشته باشه یا نه . و البته پروتکل ارتباطیش که میتونه پارالل I2C ، SPI باشه

                    قطعات آنالوگ دیوایس (AD) عالین البته قیمتشون رو هم باید در نظر گرفت
                    پشت به کنکور ، رو به سربازی...

                    دیدگاه


                      پاسخ : تاپیک سوالات درباره ADC

                      سلام دو تا آیسی گرون از آنالوگ دیوایس گرفتم هر کدوم یه مشکل خاص داره دوستانی هم که داخل سایت هستن اصلا راهنمایی نمی کنن
                      http://www.eca.ir/forum2/index.php?topic=71676.0
                      مجبورم اونا رو بریزم دور و فقط به فکر xmega باشم
                      خب من نهایتا می خوام از دو تا کانالش استفاده کنم و 12 بیت برام کافی هست البته کف قابل قبول هست و نباید کمتر بشه بری تغذیه هم از باتری لیتیوم و رفرنس هم از یه رفرنس خیلی خوب استفاده می کنم(5.000 ولت)
                      خب حالا به من 12 بیت دقت رو می ده
                      چه آیسی رو بخرم که خوب باشه (هدر برد یا آیسی فقط)

                      دیدگاه


                        پاسخ : تاپیک سوالات درباره ADC

                        در XMEGA های سری AU، دقت و عملکرد ADC مشکل خاصی ندارد و در صورت دسترسی می توانید از این سری استفاده کنید.
                        اوژن: به معنای افکننده و شکست دهنده است
                        دانایی، توانایی است-Knowledge is POWER
                        برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                        وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                        قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                        اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                        ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                        دیدگاه


                          پاسخ : تاپیک سوالات درباره ADC

                          نوشته اصلی توسط طراح
                          در XMEGA های سری AU، دقت و عملکرد ADC مشکل خاصی ندارد و در صورت دسترسی می توانید از این سری استفاده کنید.
                          سلام اینایی که فروشگاه داره a3u هس که طراح گفتند au این فروشگاه همون هست؟؟؟؟؟؟
                          می تونم atmega16a4U بگیرم همون دقت رو داره ؟؟؟؟؟ چطور بدون پروگرامر و هذر برد پروگرام کنم

                          دیدگاه


                            پاسخ : تاپیک سوالات درباره ADC

                            شماره ای که در فروشگاه سایت عرضه می شود، همان سری AU است. در مورد ATXMEGA16A4U هم اگر دقیقا با همین پسوند باشد که جوابگوست. اما اگر 16A4AU باشد، سری AU نیست.
                            اوژن: به معنای افکننده و شکست دهنده است
                            دانایی، توانایی است-Knowledge is POWER
                            برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                            وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                            قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                            اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                            ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                            دیدگاه


                              پاسخ : تاپیک سوالات درباره ADC

                              سلام

                              با توجه به اینکه در تنظیمات ADC کدویژن فقط 8 ورودی اکسترنال قابل تعریفه (Adc0..Adc7) چطور میشه از 4 ورودی دیگه که روی پورت B قرار داره استفاده کرد؟

                              چیپ مورد استفاده من Xmega32A4 هستش

                              دیدگاه


                                پاسخ : تاپیک سوالات درباره ADC

                                نوشته اصلی توسط majid sh
                                سلام

                                با توجه به اینکه در تنظیمات ADC کدویژن فقط 8 ورودی اکسترنال قابل تعریفه (Adc0..Adc7) چطور میشه از 4 ورودی دیگه که روی پورت B قرار داره استفاده کرد؟

                                چیپ مورد استفاده من Xmega32A4 هستش

                                فکر کنم همین بغل دست چپ روی گزینه ADCB کلیک کنید بقیش هم قابل دسترسی باشه

                                دیدگاه

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