اطلاعیه

Collapse
No announcement yet.

خواندن ولتاژ منفی توسط XMEGA

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

    خواندن ولتاژ منفی توسط XMEGA

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

    با توجه به اینکه در صفحه 295 XMEGA-A Manual گفته شده ورودی (signed) میتونه از منفی تا مثبت ولتاژ رفرنس (-+Vref) باشه،
    پس چرا وقتی ولتاژ منفی بهش میدیم از -1 ولت کمتر نمیشه و از منبع، جریان میکشه؟ :sad:
    برای ولتاژ رفرنس LM336 رو به ورودی صفر (ADC PIN0) دادم
    زندگی را تو بساز ،
    نه بدان ساز که سازند و پذیری بی حرف ،
    زندگی یعنی جنگ ، تو بجنگ ،
    زندگی یعنی عشق ، تو بدان عشق بورز.

    #2
    پاسخ : خواندن ولتاژ منفی توسط XMEGA

    تنظیمات ADC:
    کد:
    // ADCA is enabled
    // Resolution: 12 Bits
    // Load the calibration value for 12 Bit resolution
    // from the signature row
    ADCA.CALL=read_calibration_byte(PROD_SIGNATURES_START+ADCACAL0_offset);
    ADCA.CALH=read_calibration_byte(PROD_SIGNATURES_START+ADCACAL1_offset);
    
    // Conversion mode: Signed
    ADCA.CTRLB=(ADCA.CTRLB & (~(ADC_CONMODE_bm | ADC_FREERUN_bm | ADC_RESOLUTION_gm))) |
    	ADC_CONMODE_bm | ADC_RESOLUTION_12BIT_gc;
    
    // Clock frequency: 1000.000 kHz
    ADCA.PRESCALER=(ADCA.PRESCALER & (~ADC_PRESCALER_gm)) | ADC_PRESCALER_DIV32_gc;
    
    // Reference: AREF pin on PORTA
    // Temperature reference: Off
    ADCA.REFCTRL=(ADCA.REFCTRL & ((~(ADC_REFSEL_gm | ADC_TEMPREF_bm)) | ADC_BANDGAP_bm)) |
    	ADC_REFSEL_AREFA_gc;
    اینم تنظیمات کانال ها:
    کد:
    // ADC channel 0 gain: 1
    // ADC channel 0 input mode: Single-ended positive input signal
    ADCA.CH0.CTRL=(ADCA.CH0.CTRL & (~(ADC_CH_START_bm | ADC_CH_GAINFAC_gm | ADC_CH_INPUTMODE_gm))) |
    	ADC_CH_GAIN_1X_gc | ADC_CH_INPUTMODE_SINGLEENDED_gc;
    
    // ADC channel 0 positive input: ADC1 pin
    // ADC channel 0 negative input: GND
    ADCA.CH0.MUXCTRL=(ADCA.CH0.MUXCTRL & (~(ADC_CH_MUXPOS_gm | ADC_CH_MUXNEG_gm))) |
    	ADC_CH_MUXPOS_PIN1_gc;
    
    // ADC channel 1 gain: 1
    // ADC channel 1 input mode: Single-ended positive input signal
    ADCA.CH1.CTRL=(ADCA.CH1.CTRL & (~(ADC_CH_START_bm | ADC_CH_GAINFAC_gm | ADC_CH_INPUTMODE_gm))) |
    	ADC_CH_GAIN_1X_gc | ADC_CH_INPUTMODE_SINGLEENDED_gc;
    
    // ADC channel 1 positive input: ADC2 pin
    // ADC channel 1 negative input: GND
    ADCA.CH1.MUXCTRL=(ADCA.CH1.MUXCTRL & (~(ADC_CH_MUXPOS_gm | ADC_CH_MUXNEG_gm))) |
    	ADC_CH_MUXPOS_PIN2_gc;
    
    // ADC channel 2 gain: 1
    // ADC channel 2 input mode: Single-ended positive input signal
    ADCA.CH2.CTRL=(ADCA.CH2.CTRL & (~(ADC_CH_START_bm | ADC_CH_GAINFAC_gm | ADC_CH_INPUTMODE_gm))) |
    	ADC_CH_GAIN_1X_gc | ADC_CH_INPUTMODE_SINGLEENDED_gc;
    
    // ADC channel 2 positive input: ADC3 pin
    // ADC channel 2 negative input: GND
    ADCA.CH2.MUXCTRL=(ADCA.CH2.MUXCTRL & (~(ADC_CH_MUXPOS_gm | ADC_CH_MUXNEG_gm))) |
    	ADC_CH_MUXPOS_PIN3_gc;
    
    // ADC channel 3 gain: 1
    // ADC channel 3 input mode: Single-ended positive input signal
    ADCA.CH3.CTRL=(ADCA.CH3.CTRL & (~(ADC_CH_START_bm | ADC_CH_GAINFAC_gm | ADC_CH_INPUTMODE_gm))) |
    	ADC_CH_GAIN_1X_gc | ADC_CH_INPUTMODE_SINGLEENDED_gc;
    
    // ADC channel 3 positive input: ADC4 pin
    // ADC channel 3 negative input: GND
    ADCA.CH3.MUXCTRL=(ADCA.CH3.MUXCTRL & (~(ADC_CH_MUXPOS_gm | ADC_CH_MUXNEG_gm))) |
    	ADC_CH_MUXPOS_PIN4_gc;
    
    // ADC is free-running, sweeped channel(s): 0, 1, 2, 3
    ADCA.EVCTRL=ADC_SWEEP_0123_gc | ADC_EVACT_NONE_gc;
    زندگی را تو بساز ،
    نه بدان ساز که سازند و پذیری بی حرف ،
    زندگی یعنی جنگ ، تو بجنگ ،
    زندگی یعنی عشق ، تو بدان عشق بورز.

    دیدگاه


      #3
      پاسخ : خواندن ولتاژ منفی توسط XMEGA

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

      دیدگاه


        #4
        پاسخ : خواندن ولتاژ منفی توسط XMEGA

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

        دیدگاه


          #5
          پاسخ : خواندن ولتاژ منفی توسط XMEGA

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

          دیدگاه


            #6
            پاسخ : خواندن ولتاژ منفی توسط XMEGA

            سلام
            یعنی هیچ راهی برای خواندن ولتاژ منفی از طریق adc روی xmega وجود نداره؟ مثلا اگه تغییرات ولتاژ یک سینوسی فرکانس پایین باشه با مقدار dc صفر که بین مثبت و منفی تغییرات داره رو چطوری باید خواند؟
            ممنون از راهنماییتون
            مشخصات من در لینک زیر
            http://www.eca.ir/forum2/index.php?topic=1721.msg698645#msg698645

            www.********

            دیدگاه


              #7
              پاسخ : خواندن ولتاژ منفی توسط XMEGA

              نوشته اصلی توسط majid68
              سلام
              یعنی هیچ راهی برای خواندن ولتاژ منفی از طریق adc روی xmega وجود نداره؟ مثلا اگه تغییرات ولتاژ یک سینوسی فرکانس پایین باشه با مقدار dc صفر که بین مثبت و منفی تغییرات داره رو چطوری باید خواند؟
              ممنون از راهنماییتون
              سلام
              یک راه واسه اندازه گیری ولتاژ منفی شیفت دادن اون هست
              اگر شما بخوای یه ولتاژ از 0.5- تا 0.5+ رو اندازه گیری کنی
              میتونی اون رو با یه op-amp اون رو تقویت کنی و بعد به اندازه
              ولتاژ منفی به سمت بالا شیفت بدی بالا و با adc اون رو بخونی

              دیدگاه

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