NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 4457 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 18 از 18

موضوع: Xmega ADC

  1. #1
    کاربر فعال
    تاریخ عضویت
    Mar 2010
    نام
    Tehran
    نوشته ها
    154
    تشکر
    61
    تشکر شده 45 بار در 34 پست

    Icon17 Xmega ADC

    چند تا سوال در مورد ADC دارم:

    1- مگه Xmega128A1 تعداد 16 عدد کانال ADC نداره؟(8 تا تو پورتA و 8 تا تو پورت B) چرا تو تنظیمات ویزاد کدویژن از هر پورت 4 تا می شه تنظیم کرد؟

    2- تو Help کدویژن چهارتا Input mode داره که تو ویزاردش فقط دوتا رو نشون می ده. چرا؟؟

    3- کسی باADC های این میکرو تو کدویژن کار کرده؟؟ راهنمایی در مورد راه اندازیش می خواستم. من مطابق Help رفتم و از دستور adca_read(0) استفاده می کنم ولی همیشه عدد خروجی بین 385 تا 390 تغییر می کنه و به تغییرات ورودی هم وابسته نیست.

  2. تشکرها از این نوشته :


  3. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  4. #2
    کاربر فعال
    تاریخ عضویت
    Mar 2010
    نام
    Tehran
    نوشته ها
    154
    تشکر
    61
    تشکر شده 45 بار در 34 پست

    پیش فرض

    یعنی واقعا کسی بعد از دو روز کمکی نمی تونه بکنه؟؟؟؟؟؟؟

  5. تشکرها از این نوشته :


  6. #3
    کاربر فعال pooriya آواتار ها
    تاریخ عضویت
    Nov 2008
    نام
    پوریا علیزاده
    نوشته ها
    316
    تشکر
    163
    تشکر شده 676 بار در 217 پست

    پیش فرض

    سلام.
    من برای میکرو های xmega زیاد با codevision کار نکردم ولی بهتره به تصویر زیر نگاه کنید خودش گویا هست و تمام پایه های ورودی adc رو هم می تونید ببینید<در مورد عملکرد chanel 0,1,2,3 هم بهتره دیتاشیت رو مطالعه کنید.

    در مورد مقدار نشان داده شده از ورودی adc هم احتمال زیاد به دلیل درست تنظیم نکردن این قسمت باشه.(در تنظیم قسمت ولتاژ رفرنس دقت کنید)
    تصاوير کوچک فايل پيوست تصاوير کوچک فايل پيوست برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: Untitled.jpg
مشاهده: 97
حجم: 100.6 کیلو بایت  

  7. کاربران : 2 تشکر کرده اند از شما pooriya برای ارسال این پست سودمند:


  8. #4
    کاربر فعال
    تاریخ عضویت
    Mar 2010
    نام
    Tehran
    نوشته ها
    154
    تشکر
    61
    تشکر شده 45 بار در 34 پست

    پیش فرض

    اینارو تنظیم کردم وضعیت همون طوریه

  9. تشکرها از این نوشته :


  10. #5
    کاربر فعال
    تاریخ عضویت
    Mar 2010
    نام
    Tehran
    نوشته ها
    154
    تشکر
    61
    تشکر شده 45 بار در 34 پست

    پیش فرض

    کسی با ADC ی Xmega تو Code vision کار کرده؟؟؟؟

  11. تشکرها از این نوشته :


  12. #6
    کاربر فعال pooriya آواتار ها
    تاریخ عضویت
    Nov 2008
    نام
    پوریا علیزاده
    نوشته ها
    316
    تشکر
    163
    تشکر شده 676 بار در 217 پست

    پیش فرض

    سلام.
    دوست عزیز بهتره برنامتون رو اینجا اپلود کنید تا ببینیم مشکل کجاست.

  13. کاربران : 2 تشکر کرده اند از شما pooriya برای ارسال این پست سودمند:


  14. #7
    کاربر فعال
    تاریخ عضویت
    Mar 2010
    نام
    Tehran
    نوشته ها
    154
    تشکر
    61
    تشکر شده 45 بار در 34 پست

    پیش فرض

    نقل قول نوشته اصلی توسط pooriya نمایش پست ها
    سلام.
    دوست عزیز بهتره برنامتون رو اینجا اپلود کنید تا ببینیم مشکل کجاست.
    من یه برنامه ساده با ویزاردش ساختم و گفتم یه کانال رو بخونه و نمایش بده. اعداد نمایش داده شده ثابت نیستند و در حدود 2 یا سه تا کم و زیاد می شن و این نشون می ده که تبدیل داره انجام می شه ولی وقتی ولتاژ رو روی پایه عوض می کنم تغییری نمی کنن.
    اگه شما با اون کار کردید یه برنامه بنویسید که کار میکنه و upload کنید.

    راستی من کلاک میکرو رو توی Configure the Project می زارم رو 16 مگ ولی تو برنامه نمی آد. مگه اینطور نیست که تو Xmega کلاک رو باید داخل برنامه تعریف کرد؟
    متشکر
    ویرایش توسط Caspian1361 : 28-05-2011 در ساعت 22:55

  15. تشکرها از این نوشته :


  16. #8
    کاربر فعال pooriya آواتار ها
    تاریخ عضویت
    Nov 2008
    نام
    پوریا علیزاده
    نوشته ها
    316
    تشکر
    163
    تشکر شده 676 بار در 217 پست

    پیش فرض

    سلام.
    به این برنامه که نوشتم یه نگاه بندازین،تو این برنامه من از ورودی adc 0 استفاده کردم و adc در مد 12 بیت راه اندازی شده، به این صورت که به ورودی مورد نظر یک عدد پتانسیومتر وصل کردم که با تغییر ان مقدار ورودی adc روی lcd به نمایش در می اید.

    بله کلاک داخل برنامه با کد نویسی اعمال می شه.(تصویر زیر)
    تصاوير کوچک فايل پيوست تصاوير کوچک فايل پيوست برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 1.jpg
مشاهده: 87
حجم: 133.6 کیلو بایت   برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: Image(020).jpg
مشاهده: 69
حجم: 149.8 کیلو بایت  
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: zip ADC.zip (172.9 کیلو بایت, 304 نمايش)

  17. کاربران : 4 تشکر کرده اند از شما pooriya برای ارسال این پست سودمند:


  18. #9
    کاربر فعال
    تاریخ عضویت
    Mar 2010
    نام
    Tehran
    نوشته ها
    154
    تشکر
    61
    تشکر شده 45 بار در 34 پست

    پیش فرض

    آقای پوریا ازتون ممنونم
    مشکلم رفع شد. پایه adc من خوب به برد متصل نشده بود. در هر صورت برنامه شما رو که دیدم مطمئن شدم مشکل نرم افزاری ندارم و هرچی هست تو سخت افزاره. جالب بود که حتی با ذره بین هم به نظر می اومد که پایه متصل هست ولی با بازر مولتی متر قطع بود.

    بازم ممنونم

  19. تشکرها از این نوشته :


  20. #10
    کاربر علاقه مند
    تاریخ عضویت
    Nov 2009
    نوشته ها
    55
    تشکر
    26
    تشکر شده 50 بار در 25 پست

    پیش فرض

    با سلام
    من یک مشکل با ADC در XMEGA دارم اینجا مطرح میکنم انشاالله دوستان جواب بدن
    مشکل من اینه که موقع اندازه گیری از adc در xmega با وجود اینکه ولتاژ روی پایه میکرو ثابت هست ولی عددی که میکرو اندازه گیری میکنه در حد 10 واحد تغییرات داره ( هر 100 میلی ثانیه اندازه گیری میکنه ).
    من از میکرو ATXMEGA32A4 استفاده کردم و میکرو فقط ورودی ADc رو اندازه گیری میکنه و به پورت سریال میفرسته اندازه گیری درست انجام میشه ولتاژ روی پایه میکرو و تغذیه میکرو با ولتمتر ثابته ولی در هر بار اندازه گیری عدد اندازه گیری شده با مقدار قبلی متفاوته و حد اکثر 10 واحد نوسان داره ولتاژ هم dc هست . با رفرنسهای مختلف هم تست کردم ( internal 1v , internalvcc/1.6 )
    سوال من اینه که اولا آیا میشه با این میکرو با دقت بیشتر از این اندازه گیری کرد ؟ آیا کسی عملا این کارو کرده ؟

    لطفا منو راهنمایی کنید .

    در بیسکام تعریفم اینطوریه
    Config Adca = Single , Convmode = Unsigned , Resolution = 12bit , Dma = Off
    Reference = Intvcc , Event_mode = None , Prescaler = 32

  21. تشکرها از این نوشته :


  22. #11
    کاربر علاقه مند
    تاریخ عضویت
    Nov 2009
    نوشته ها
    55
    تشکر
    26
    تشکر شده 50 بار در 25 پست

    پیش فرض

    دوستان کسی وقت نکرد جواب بده !!
    میدونم در مورد این مشکل چند جا بحث شده ولی سر آخر هیچ کسی نگفت حد اکثر دقتی که داشته چقدره و کدوم روش کاهش نویز موثرتر بوده ؟
    سوال من همینه که حد اکثر دقتی که تونستید داشته باشید در ولتاژ ورودی ثابت و single endچقدره ؟
    ببینم این میکرو به درد کار من میخوره یا باید برم سراغ adc های خارجی یا arm و lpcو...
    من در بهترین حالت 2 بیت خطا دارم . ( با گذاشتن فیلتر در مسیر تغذیه و ورودی ADC استفاده از رفرنس خارجی و idle mode تنظیم prescaler و offset و ....)
    اگر هم جایی که سوالم رو مطرح کردم صحیح نیست بهم تذکر بدید .
    متشکر .

  23. تشکرها از این نوشته :


  24. #12
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

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

    من خودم یه نمونه با atmEGA32 ساختم ، خیلی هم خوب کار می کرد. حالا با XMEGA هم نباید زیاد فرقی داشته باشه.
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

  25. کاربران : 3 تشکر کرده اند از شما morteza_rk برای ارسال این پست سودمند:


  26. #13
    کاربر علاقه مند
    تاریخ عضویت
    Nov 2009
    نوشته ها
    55
    تشکر
    26
    تشکر شده 50 بار در 25 پست

    پیش فرض

    با تشکر از شما .
    من از مرجع خارجی استفاده کردم و همینطور از معدل گیری ( 10 بار نمونه گیری و بعد میانگین ) البته موثر بود خطای من از 10 واحد به 3 کاهش پیدا کرد ولی هنوز زیاده علی القاعده حد اکثر خطا نباید از یک بیت بیشتر باشد ولی ...
    نمونه ای که شما ساختی چقدر تغییرات ( خطا ) داشت ؟

  27. تشکرها از این نوشته :


  28. #14
    عضو جدید
    تاریخ عضویت
    Oct 2010
    نام
    احمدی
    نوشته ها
    11
    تشکر
    22
    تشکر شده 9 بار در 7 پست

    پیش فرض

    سلام
    من در حال مرور انجمن بودم که سوال شما را دیدم .
    من فکر میکنم که نوسانی که شما می فرمائید به دلیل نویز روی تغذیه باشد . معمولا روی پایه ولتاژ مرجع adc باید از خازن های خوب نویز گیر استفاده شود تا چنین نوساناتی در خروجی adc وجود نداشته باشد .

  29. کاربران : 3 تشکر کرده اند از شما atrak برای ارسال این پست سودمند:


  30. #15
    کاربر فعال arm-mohsen-avr آواتار ها
    تاریخ عضویت
    May 2011
    نام
    محسن جودی
    نوشته ها
    222
    تشکر
    200
    تشکر شده 149 بار در 101 پست

    New کمک در ADC Xmega

    سلام دوستان من این برنامه رو واسه تست ADC نوشتم ولی خروجی علامت سوال نشون میده می تونید بگید مشکل از کجاست .
    با AVRstudio نوشتم برنامه رو واسه xmega32a4
    [PHP]/*
    * xmegaadc.c
    *
    * Created: 12/31/2011 10:57:28 PM
    * Author: N4030
    */

    #include <avr/io.h>
    #include "lcd.h"
    #include <avr/delay.h>
    #include "avr_compiler.h"
    #include "adc_driver.h"

    #define ADC_INPUT ADC_CH_MUXPOS_PIN1_gc

    int main(void)
    {
    float p;
    float ADC_result;
    char lcd_buff[20];
    lcd_init(LCD_DISP_ON);

    ADC_CalibrationValues_Load(&ADCA);
    ADC_ConvMode_and_Resolution_Config(&ADCA, ADC_ConvMode_Signed, ADC_RESOLUTION_12BIT_gc);
    ADC_Reference_Config(&ADCA, ADC_REFSEL_VCC_gc);
    ADC_Prescaler_Config(&ADCA, ADC_PRESCALER_DIV8_gc);

    ADC_Ch_InputMode_and_Gain_Config(&ADCA.CH0,
    ADC_CH_INPUTMODE_SINGLEENDED_gc,
    ADC_CH_GAIN_1X_gc);
    ADC_Ch_InputMux_Config(&ADCA.CH0, ADC_INPUT, ADC_CH_MUXNEG_PIN0_gc);
    ADC_Enable(&ADCA);
    ADC_Wait_8MHz(&ADCA);
    lcd_clrscr();
    lcd_home();
    lcd_puts("ADC0.1 LCD XMEGA");
    while(1)
    {
    ADC_Ch_Conversion_Start(&ADCA.CH0);
    while(!ADC_Ch_Conversion_Complete(&ADCA.CH0));
    ADC_result = ADC_ResultCh_GetWord(&ADCA.CH0);
    sprintf(lcd_buff,"ADC=%f",ADC_result);
    lcd_gotoxy(1,1);
    lcd_puts(lcd_buff);
    _delay_ms(400);
    }
    }[/PHP]

  31. تشکرها از این نوشته :


  32. #16
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    با سلام
    دوست عزيز اين مشكل رو دوستان قبلا به اون برخوردن. البته حل شده. به اين لينك يه نگاه بندازيد.
    اگه مشكلتون حل نشد در خدمتم.
    http://www.iranmicro.ir/forum/showthread.php?t=5342
    _____________________________________
    _____________________________________

  33. کاربران : 2 تشکر کرده اند از شما sadmonew برای ارسال این پست سودمند:


  34. #17
    کاربر فعال arm-mohsen-avr آواتار ها
    تاریخ عضویت
    May 2011
    نام
    محسن جودی
    نوشته ها
    222
    تشکر
    200
    تشکر شده 149 بار در 101 پست

    پیش فرض

    حل شد دوست عزیز خیلی ممنون
    ویرایش توسط arm-mohsen-avr : 01-01-2012 در ساعت 01:06

  35. #18
    تازه وارد
    تاریخ عضویت
    Apr 2011
    نوشته ها
    2
    تشکر
    4
    تشکر شده 0 بار در 0 پست

    Icon16 registers

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

موضوعات مشابه

  1. کامپایلر بسکام واسه xmega
    توسط 0121takpa در انجمن ATXMEGA
    پاسخ: 1
    آخرين نوشته: 13-09-2013, 15:16
  2. کتابخانه xmega
    توسط madar در انجمن آموزش نرم افزارهای برق و الکترونیک
    پاسخ: 4
    آخرين نوشته: 09-09-2011, 14:06
  3. xmega
    توسط masoodhashemy در انجمن ATXMEGA
    پاسخ: 2
    آخرين نوشته: 04-11-2010, 15:13
  4. xmega
    توسط masoodhashemy در انجمن AVR
    پاسخ: 2
    آخرين نوشته: 04-11-2010, 15:13

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •