اطلاعیه

Collapse
No announcement yet.

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

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

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

    http://www.*****tarashe.com/site/index.php?option=com_content&view=article& id=72:xmega-&catid=9:1388-05-07-12-35-55&Itemid=24
    دکتر شریعتی:

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

    دیدگاه


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

      این دستور کالیبره دقیقا چه کاری انجام میده
      نمیشه صرف نظر کرد ازش
      iar اصلا نمیشناسه که این فایل اسمبلی هست
      و کلی خطای دیگه رو اضافه میکنه

      --
      فایل رو باید اد کرد یا include کرد
      توی پروژه جناب طراح اصلا include نشده و فقط ادد شده و مشکلی نمی گیره
      ولی من ادش میکنم اصلا نمیشناسه ؟ و خطای
      Error[e46]: Undefined external "SP_ReadCalibrationByte(uint8_t)" referred in adc_driver ( D:\iar\gps\Debug\Obj\adc_driver.r90 )
      میگیره
      هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
      بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
      میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

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

      دیدگاه


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

        اگر پروژه شما از نوع ++C انتخاب شده، باید در فایل adc_driver.h بجای:
        کد:
        uint8_t SP_ReadCalibrationByte( uint8_t index );


        تغییر زیر را ایجاد کنید:

        کد:
        extern "C"
        {
        uint8_t SP_ReadCalibrationByte( uint8_t index );
        }
        اوژن: به معنای افکننده و شکست دهنده است
        دانایی، توانایی است-Knowledge is POWER
        برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
        وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
        قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
        اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
        ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

        دیدگاه


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

          ممنون جناب طراح
          بعد این یعنی چی؟
          و اینکه adc رو به پورت مجازی ارتباط میدن به چه جهتی هست
          و این شرط به چه معناست ؟ if(++index==64)
          هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
          بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
          میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

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

          دیدگاه


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

            در ++C توابع اسمبلی تعریف نمی شوند و باید در یک
            کد:
            extern"C"{}

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

            دیدگاه


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

              مشکل حل شد. :rolleyes:

              کد:
               ADC_CalibrationValues_Load(&ADCA);
               ADC_ConvMode_and_Resolution_Config(&ADCA, ADC_ConvMode_Unsigned, ADC_RESOLUTION_12BIT_gc);
               ADC_Prescaler_Config(&ADCA, ADC_PRESCALER_DIV512_gc);
               ADC_Reference_Config(&ADCA, ADC_REFSEL_AREFB_gc);
              ADC_Ch_InputMode_and_Gain_Config(&ADCA.CH3,ADC_CH_INPUTMODE_SINGLEENDED_gc,ADC_CH_GAIN_1X_gc);
              ADC_Ch_InputMux_Config(&ADCA.CH0, ADC_CH_MUXPOS_PIN0_gc, ADC_CH_MUXNEG_PIN0_gc);
               ADC_Enable(&ADCA);
               ADC_Wait_8MHz(&ADCA);

              و با تابع ADC_ResultCh_GetWord(&ADCA.CH0) میتونید مقدار رو بخونید
              هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
              بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
              میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

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

              دیدگاه


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

                باز من کارم گیر افتاد اومد :mrgreen:
                توی کد قبل اومدم پین 0 رو مقدار میخونم و مشکلی نداره
                ولی الان میخوام 4 تا از پین هارو مقدار بخونم همه بجز پین 0 مقدار 0 تحویل می دهند
                کد:
                 ADC_CalibrationValues_Load(&ADCA);
                 ADC_ConvMode_and_Resolution_Config(&ADCA, ADC_ConvMode_Unsigned, ADC_RESOLUTION_12BIT_gc);
                 ADC_Prescaler_Config(&ADCA, ADC_PRESCALER_DIV512_gc);
                 ADC_Reference_Config(&ADCA, ADC_REFSEL_AREFB_gc);
                 ADC_Ch_InputMode_and_Gain_Config(&ADCA.CH0,ADC_CH_INPUTMODE_SINGLEENDED_gc,ADC_CH_GAIN_1X_gc);                
                 ADC_Ch_InputMode_and_Gain_Config(&ADCA.CH1,ADC_CH_INPUTMODE_SINGLEENDED_gc,ADC_CH_GAIN_1X_gc);                         
                 ADC_Ch_InputMode_and_Gain_Config(&ADCA.CH2,ADC_CH_INPUTMODE_SINGLEENDED_gc,ADC_CH_GAIN_1X_gc);                                 
                 ADC_Ch_InputMode_and_Gain_Config(&ADCA.CH3,ADC_CH_INPUTMODE_SINGLEENDED_gc,ADC_CH_GAIN_1X_gc);
                 ADC_Ch_InputMux_Config(&ADCA.CH0, ADC_CH_MUXPOS_PIN0_gc, ADC_CH_MUXNEG_PIN0_gc);
                 ADC_Ch_InputMux_Config(&ADCA.CH1, ADC_CH_MUXPOS_PIN1_gc, ADC_CH_MUXNEG_PIN0_gc);
                 ADC_Ch_InputMux_Config(&ADCA.CH2, ADC_CH_MUXPOS_PIN2_gc, ADC_CH_MUXNEG_PIN2_gc);
                 ADC_Ch_InputMux_Config(&ADCA.CH3, ADC_CH_MUXPOS_PIN3_gc, ADC_CH_MUXNEG_PIN3_gc); 
                 ADC_Enable(&ADCA);
                 ADC_Wait_8MHz(&ADCA);
                 ADC_FreeRunning_Enable(&ADCA);

                خوب سوال داشتم در تابع ADC_Ch_InputMux_Config این ADC_CH_MUXNEG_PIN0_gc دقیقا کارش چیه ؟
                و داکیومنت 1300 اتمل به همراه کتابخونه adc ایا در دو ویرایش بیرون اومد،چون من دوتا پیدا کردم
                و توی اخری که از اتمل گرفتم توابع فرق میکنن و همچنین نمونه کداش به فرض مثال
                offset = ADC_Offset_Get(&ADCA); این تابع در جدیده هست و در قدیم کار نمیکنه
                و کارش دقیقا چیه
                و سوال اخر sweep و FreeRunning چیه و تابع ADC_SweepChannels_Config چکاری رو انجام میده
                ممنون
                هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
                بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
                میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

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

                دیدگاه


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

                  در تابع ADC_Ch_InputMux_Config این ADC_CH_MUXNEG_PIN0_gc دقیقا کارش چیه ؟
                  اگر از مد تفاضلی استفاده کنید، مقدار ADC حاصل تفاضل دو ورودی خواهد بود که ورودی منفی هم باید بصورت صحیح انتخاب شود. اما در وضعیت Single Ended تفاوتی نمی کند که کدام ورودی را به عنوان ورودی منفی در نظر بگیرید. در مورد AVR1300 هم چندین نسخه وجود دارد که آخرین نسخه را به عنوان ملاک قرار بدهید.

                  و سوال اخر sweep و FreeRunning چیه و تابع ADC_SweepChannels_Config چکاری رو انجام میده
                  در وضعیت FreeRunning بعد از هر تبدیل، فورا تبدیل بعدی شروع خواهد شد که این تبدیلات متوالی می توانند تنها روی کانال 0 یا 0 و 1 یا 0 و 1 و 2 یا 0 و 1 و 2 و 3 انجام شوند. به غیر از وضعیت FreeRunning، توسط Event system هم می تواند یک فرمان برای چنین تبدیلات متوالی ایجاد شود که در هر یک از این دو صورت، انتخاب 4 حالت مذکور توسط رجیستر ADCx_EVCTRL انجام می شود و ماکرو مورد سوال شما هم برای همین تنظیم در نظر گرفته شده است. با توجه به نمونه کد شما تنظیم لازم برای تبدیل متوالی هر 4 کانال انجام نشده است و خط زیر باید قبل از Enable کردن ADCA اضافه شود:

                  کد:
                  ADC_SweepChannels_Config(&ADCA, ADC_SWEEP_0123_gc);


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

                  دیدگاه


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

                    یکی از مزایای بسیار خوب XMEGA اینه که میشه از پایه هایی که به عنوان ADC نمی خوایم ازشون استفاده کنیم
                    به عنوان پین معمولی استفاده کنیم
                    یعنی در مواقعی که اون پین نیاز به استفاده ADC است اونو متصل می کنیم به کانال 0 تا 3 مربوط
                    حالا سوال دارم تعداد این کانال ها که 4 ورودی دارند مسلما باید 3 تا باشه درسته ؟
                    و من از 6 ورودی از 12 ورودی رو نیاز دارم 3 تا بروی 0 تا 2 پورت A و سه تای دیگه بروی 0 تا 2 پورت B
                    این موضوع بی مشکل است ؟
                    هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
                    بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
                    میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

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

                    دیدگاه


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

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

                      دیدگاه


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

                        با تشکر از جواب
                        بزارید اینطور تشریح کنم در پسته قبل برنامه فعال کردن ADC بروی 0 تا 4 پورت A بوده
                        ولی الان میخوام پین 4 از پورت A رو فعال کنم ،خب الان میخوام به کانال 4 ADC وصل کنم ولی مثله اینکه تعریف نشده و خطا میده
                        هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
                        بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
                        میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

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

                        دیدگاه


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

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

                          دیدگاه


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

                            کدهای پاسخ #21 به همراه کد های زیر
                            کد:
                             ADC_Ch_InputMode_and_Gain_Config(&ADCA.CH4,ADC_CH_INPUTMODE_SINGLEENDED_gc,ADC_CH_GAIN_1X_gc);
                             ADC_Ch_InputMux_Config(&ADCA.CH0, ADC_CH_MUXPOS_PIN0_gc, ADC_CH_MUXNEG_PIN4_gc);
                            هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
                            بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
                            میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

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

                            دیدگاه


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

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

                              دیدگاه


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

                                خب سوال من همینجاست
                                پس باید برووی ADCB به عنوان CH0 انتخاب گردد ؟
                                و چهار پین پورت B برروی ADCC تعریف میشوند یا خیر؟
                                هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
                                بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
                                میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

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

                                دیدگاه

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