NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 1587 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
صفحه 3 از 4 نخستنخست 1234 آخرینآخرین
نمایش نتایج: از 41 به 60 از 61

موضوع: Lpc1788 adc

  1. #41
    کاربر فعال rozeh آواتار ها
    تاریخ عضویت
    Mar 2013
    نوشته ها
    198
    تشکر
    27
    تشکر شده 176 بار در 104 پست

    پیش فرض

    نقل قول نوشته اصلی توسط l90mehdi نمایش پست ها
    با تشکر از شما کاربر roze. تمام کار هایی که در بالا بهش اشاره کردین به جز مواردی که مربوط به طراحی مدار میشد رو انجام دادم . اما متاسفانه وضع بهتر نشد. البته اینو هم بگم که من دارم ولتاژ یه پتانسیومتر که روی خوده برد قرار گرفته شده رو می خونم.
    بردتون رو از جایی خریدین؟ اگه خریدن آیا نمونه برنامه تست شده داشت واسه adc؟ حرفی از نتایج اندازه گیری و این چیزا زده توش؟ لینکی چیزی ازش دارید؟
    می خوام با جواب دادن به این سوال مطمئن بشم که ایراد از خودمونه اما اگه خودتون برد رو زدید پس احتمال زیاد مشکل از همین برد هستش.
    سیگنال های ورودی به میکرو رو چک کردید با اسکوپ؟ چطور بود؟

    نا امید نشید. همین طور ادامه بدید تا مشکل رو پیدا کنیم. من با محصولات nxp کار نکردم و یه دونه میکرو از این شرکت ندارم تا باهاتون همراه بشم. پس خود شما ادامه بدید. من از همین جا هوای شما رو دارم.
    دوستان دیگه هم اگه این مشکل رو دارن همراه بشن.

    پ.ن. به نظر برد رو یه شخص ایرانی به اسم حمید طراحی کرده. پتانسیو متر کجای برده؟ توی شماتیک که نیست. هست؟ کجاشه؟ pcb برد دولایه هستش. درست میگم؟ عکس از لایه رویی و زیری نداری؟(توی محیط آلتیوم باشه).

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


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

  4. #42
    عضو جدید
    تاریخ عضویت
    Sep 2012
    نوشته ها
    18
    تشکر
    5
    تشکر شده 1 بار در 1 پست

    پیش فرض

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

  5. #43
    کاربر فعال rozeh آواتار ها
    تاریخ عضویت
    Mar 2013
    نوشته ها
    198
    تشکر
    27
    تشکر شده 176 بار در 104 پست

    پیش فرض

    قبلا با یه جستجوی حرفه ای حدودا 90% مطمئن شدم که از این شرکت برد خریدین. وقتی که خواستین یه چیزی بخرید(خصوصا توی دنیای الکترونیک) فاکتور پشتیبانی رو هم در نظر داشته باشید. شما کلی پول می خوایید بدید. الان توی همین فروشگاه کویر بردهای خوبی هست که همشون برنامه نمونه و ... توشون دارند. معمولا وقتی یه برد برنامه نمونه داره یعنی اینکه برد بصورت تضمینی خوب کار میکنه. تازه سریعتر هم جلو میفتید. من نمی دونم که بردهای کویر مشکل داره یا واقعا مشکل از کجا بوده ولی حداقل پشتیبانیشون همچین بد نیست(خیلی هم خوب نیست ولی بهتر از این هم کم توی کشور پیدا میشه).
    بله، عوامل زیادی توی کارکرد صحیح واحد ADC این میکروها دخیل هستش. واحد ADC میکروها نقش بزرگی تو دنیا الکترونیک برای یه کارشناس الکترونیک ایفا میکنه. من توی سایت های غیر ایرانی با غیر ایرانی ها زیاد رابطه دارم. باید بگم که از هر 20 غیر ایرانی حدود 2 الی 3 نفرشون با محصولات NXP کار کردن. مثلا توی سایت
    Electrical Engineering Stack Exchange من کارشناسان زیادی رو می شناسم(این روزا اگه توی یه کشوری مثل امریکا بخوای بری سر کار، داشتن امتیاز توی این سایت، یه امتیاز بزرگ برای شما محسوب میشه). خود NXP هلندی هستش و کارشناسان هلندی زیادی هم توی این سایت هستن. هلندی ها رو هم که می شناسید. انگلیسیشون خیلی عالیه!(بخاطر تلوزیونشون هستش که انگلیسیه و زیرنویس هلندی فقط می ذارن واسه مردم. به همین خاطر توی سایت های انگلیسی زبان هلندی خیلی می بینید) باهاشون که صحبت میکنم اکثرا با محصولات امریکایی یا ST کار میکنن. فقط بعنوان مثالا آقای Wouter van Ooijen رو مثال میزنم. باید بگم که ایشون فوق العاده حرفه ای و با سواده. بعنوان مثال اگه اینجا رو نگاه کنید. همون طور که می بینید ایشون سابقه انجام کار برای محیط های نظامی و فضایی و صنعتی داره. یه جایی دیدم که پروژه های خیلی بزرگی واسه ارتش و واحد های هواوفضایی انجام داده. در هر صورت، چند وقت پیش ازش شنفتم که کار با میکروهای ST سری STM32 رو شروع کرده. به نظر شما چرا یه کارشناسی مثل ایشون میره و از محصولات ST استفاده میکنه؟ چرا از NXP که مال کشور خودشه انتخاب نمیکنه؟ من حتی دیدم امریکایی ها هم از محصولات TI و FreeScale یا میکروچیپ که هر سه جزو بهترین های دنیای نیمه هادی ها هستن استفاده نمیکنن و رو آوردن به STM32! به نظر شما چرا؟ البته یادتون باشه که اون سه شرکت هنوز هم فروش سنگین و عالی دارن و واقعا کیفیت محصولاتشون خیلی خوبه.
    پیشنهاد میکنم اگه دیر نشده و مشکل مالی ندارید حداقل واسه شروع یه نگاه مختصر و اجمالی به سابقه ST و محصولاتش بندازید. شاید STM کار شدید! مثل من. البته شما مختارید و من پیشنهاد دادم.

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


  7. #44
    کاربر فعال Dr.ROOSTA آواتار ها
    تاریخ عضویت
    Jun 2012
    نام
    اسماعیل
    نوشته ها
    136
    تشکر
    336
    تشکر شده 234 بار در 79 پست

    پیش فرض کد مربوطه

    نقل قول نوشته اصلی توسط mzarkoob نمایش پست ها
    با برنامه نویسی روی نمونه های حاصله نتایج با دقت 12 بیت بدین ترتیب اصلاح شدند:
    کد:
      Start 1994 1995 1994 1995 1994 1994 1994 1994 1995 1993 1994 1995 1995 1994 1996 1995 1994 1995 1994 1994 1994 1995 1994 1995 1995 1994 1994 1994 1995 1995 1996 1994 1993 1994 1996 1994 1994 1993 1995 1995 1995 1994 1993 1995 1994 1992 1994 1994 1994 1994 1996 1993 1994 1991 1994 1994 1993 1993 1996 1996 1995 1995 1993 1994 1993 1994 1995 1994 1994 1995 1995 1996 1995 1995 1995 1993 1995 1995 1995 1994 1995 1995 1995 1995 1995 1994 1994 1993 1994 1994 1994 1994 1994 1994 1994 1992 1993 1994 1992 1994 1995 1995 1996 1994 1993 1994 1994 1993 1995 1995 1996 1994 1993 1994 1994 1993 1994 1994 1996 1993 1994 1994 1994 1995 1995 1994 1993 1996 1994 1995 1993 1993 1995 1994 1995 1994 1992 1995 1996 1993 1994 1995 1996 1993 1994 1995 1995 1994 1993 1994 1995 1994 1993 1995 1994 1995 1995 1993 1995 1993 1993 1995 1993 1994 1995 1994 1994 1993 1994 1996 1995 1995 1993 1995 1996 1994 1993 1994 1995 1994 1992 1995 1994 1993 1993 1994 1995 1994 1997 1994 1995 1994 1993 1993 1995 1994 1994 1995 1993 1995 1993 1995 1994 1995 1993 1996 1992 1995 1993 1995 1995 1994 1992 1994 1995 1994 1995 1994 1995 1994 1994 1994 1993 1993 1995 1995 1994 1996 1993 1995 1995 1994 1995 1994 1993 1995 1993 1995 1995 1996 1994 1996 1993 1994 1995 1994 1994 1993 1993 1994 1995 1994 1994 1995 1994 1993 1995 1992 1993 1993 1993 1995 1995 1993 1993 1995 1993 1995 1995 1995 1994 1996 1995 1993 1994 1995 1995 1994 1995 1996 1992 1994 1995 1995 1994 1997 1995 1994 1994 1994 1995 1993 1993 1994 1996 1995 1993 1995 1995 1995 1993 1994 1994 1993 1995 1993 1995 1994 1994 1995 1993 1993 1991 1995 1993
    قابل قبوله!؟

    سلام استاد..... من فیلمای مقدماتی و پیشرفته رو گرفتم ولی تو هیچ کدومشون توضیحی در مورد اینکه با برنامه نویسی میشه این مشکلو حل کرد ارائه نشده.... اگه امکانش هست سورس این برنامه رو بزارید ..... منم به این مشکل خوردم و هنوز نتونستم حلش کنم.....
    پروردگارا مرا پاک بپذیر ......

  8. #45
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    سلام
    این یک کار برنامه نویسی است البته در فیلم سی این موضوع بررسی شده است.
    در قسمت adc در فیلم مقدماتی به نحوه راه اندازی adc و شرح رجیسترهای آن بایستی پرداخته شود.

  9. #46
    کاربر فعال Dr.ROOSTA آواتار ها
    تاریخ عضویت
    Jun 2012
    نام
    اسماعیل
    نوشته ها
    136
    تشکر
    336
    تشکر شده 234 بار در 79 پست

    پیش فرض

    نقل قول نوشته اصلی توسط mzarkoob نمایش پست ها
    سلام
    این یک کار برنامه نویسی است البته در فیلم سی این موضوع بررسی شده است.
    در قسمت adc در فیلم مقدماتی به نحوه راه اندازی adc و شرح رجیسترهای آن بایستی پرداخته شود.
    درسته..... منم کانفیگشو از روی همون دستوراتی که تو فیلم مقدماتی گفتید انجام دادمش..... خوب ولی بازم نتونستم با میانگین گیری حلش کنم..... یه لطفی بکنید چکارش کنم که حل بشه !!! یعنی اگه سرعت نمونه برداری رو از 400 بیارم رو 200 حل میشه ؟ یا نه باید برنامه نویسمو اصلاح کنم....اگه راه حل برنامه نویسی داره لطف کنید یه کد برام بزارین.....
    پروردگارا مرا پاک بپذیر ......

  10. #47
    کاربر فعال Dr.ROOSTA آواتار ها
    تاریخ عضویت
    Jun 2012
    نام
    اسماعیل
    نوشته ها
    136
    تشکر
    336
    تشکر شده 234 بار در 79 پست

    پیش فرض

    سلام دوستان..... کسی نیست یه برنامه درست از adc بزاره که این خطا رو کم کنه ....... من هرکاری میکنم درست نمیشه......
    پروردگارا مرا پاک بپذیر ......

  11. #48
    کاربر فعال hamid69 آواتار ها
    تاریخ عضویت
    Apr 2010
    نام
    حمید لطفعلی زاده
    نوشته ها
    110
    تشکر
    21
    تشکر شده 266 بار در 49 پست

    پیش فرض

    سلام ،
    برای این که ADC تمیز کار کنه فقط بحث نرم افزار نیست!
    سخت افزارشم باید صحیح طراحی شده باشه!
    برای طراحی بخش ADC از این داکیومنت استفاده کنید:
    http://www.nxp.com/documents/applica...te/AN10974.pdf

  12. #49
    کاربر فعال Dr.ROOSTA آواتار ها
    تاریخ عضویت
    Jun 2012
    نام
    اسماعیل
    نوشته ها
    136
    تشکر
    336
    تشکر شده 234 بار در 79 پست

    پیش فرض

    خوب من همون پتانسیوتر روی برد رو دارم امنحان می کنم ولی بازم مشکل داره؟ یعنی چیز دیگه ای لازمه ؟

  13. #50
    کاربر فعال hamid69 آواتار ها
    تاریخ عضویت
    Apr 2010
    نام
    حمید لطفعلی زاده
    نوشته ها
    110
    تشکر
    21
    تشکر شده 266 بار در 49 پست

    پیش فرض

    خوب احتمالا بردتون نکات فنی در طراحیش رعایت نشده!!!
    این که می بینید خیلی ها همین مشکل رو دارند به خاطر همینه که اون داکیونتی رو که دادم در طراحی لحاظ نمی کنند!

  14. #51
    کاربر فعال Dr.ROOSTA آواتار ها
    تاریخ عضویت
    Jun 2012
    نام
    اسماعیل
    نوشته ها
    136
    تشکر
    336
    تشکر شده 234 بار در 79 پست

    پیش فرض

    حالا یه سوال دیگه ..... آقای زرکوب تو پستهای قبلیشون گفته بودن این نتایجو با تغییرات برنامه نویسی بدست آوردن

    Start 1994 1995 1994 1995 1994 1994 1994 1994 1995 1993 1994 1995 1995 1994 1996 1995 1994 1995 1994 1994 1994 1995 1994 1995 1995 1994 1994 1994 1995 1995 1996 1994 1993 1994 1996 1994 1994 1993 1995 1995 1995 1994 1993 1995 1994 1992 1994 1994 1994 1994 1996 1993 1994 1991 1994 1994 1993 1993 1996 1996 1995 1995 1993 1994 1993 1994 1995 1994 1994 1995 1995 1996 1995 1995 1995 1993 1995 1995 1995 1994 1995 1995 1995 1995 1995 1994 1994 1993 1994 1994 1994 1994 1994 1994 1994 1992 1993 1994 1992 1994 1995 1995 1996 1994 1993 1994 1994 1993 1995 1995 1996 1994 1993 1994 1994 1993 1994 1994 1996 1993 1994 1994 1994 1995 1995 1994 1993 1996 1994 1995 1993 1993 1995 1994 1995 1994 1992 1995 1996 1993 1994 1995 1996 1993 1994 1995 1995 1994 1993 1994 1995 1994 1993 1995 1994 1995 1995 1993 1995 1993 1993 1995 1993 1994 1995 1994 1994 1993 1994 1996 1995 1995 1993 1995 1996 1994 1993 1994 1995 1994 1992 1995 1994 1993 1993 1994 1995 1994 1997 1994 1995 1994 1993 1993 1995 1994 1994 1995 1993 1995 1993 1995 1994 1995 1993 1996 1992 1995 1993 1995 1995 1994 1992 1994 1995 1994 1995 1994 1995 1994 1994 1994 1993 1993 1995 1995 1994 1996 1993 1995 1995 1994 1995 1994 1993 1995 1993 1995 1995 1996 1994 1996 1993 1994 1995 1994 1994 1993 1993 1994 1995 1994 1994 1995 1994 1993 1995 1992 1993 1993 1993 1995 1995 1993 1993 1995 1993 1995 1995 1995 1994 1996 1995 1993 1994 1995 1995 1994 1995 1996 1992 1994 1995 1995 1994 1997 1995 1994 1994 1994 1995 1993 1993 1994 1996 1995 1993 1995 1995 1995 1993 1994 1994 1993 1995 1993 1995 1994 1994 1995 1993 1993 1991 1995 1993

    منم همینو میخوام بدونم...... چطوری میشه با برنامه نویسی درستش کرد!!!!
    پروردگارا مرا پاک بپذیر ......

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


  16. #52
    کاربر فعال hamid69 آواتار ها
    تاریخ عضویت
    Apr 2010
    نام
    حمید لطفعلی زاده
    نوشته ها
    110
    تشکر
    21
    تشکر شده 266 بار در 49 پست

    پیش فرض

    ببینید می شه رسید اما مشکل چیز دیگریست!!!
    شما الگوریتم انحراف از معیار با دلتای 2 بنویسید تمام نمونه ها حداکثر دو رقم با هم اختلاف خواهند داشت!

    مشکل اینه که برای این کار شما باید چندتا نمونه بگیری بعد از اون چند نمونه یک عدد بدی بیرون! حالا سرعت adc به نسبت نمونه ها تقسیم میشه!
    یعنی اگر سرعت adc برابر 400 کیلو هرتز باشه شما بخوای نمونه گیری از 10 تا بکنی سرعت نهایی استفاده شما میشه 40 کیلو هرتز!!!
    این روش در جاهایی که به نمونه گیری سریع نیاز دارید کارایی نداره!

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


  18. #53
    کاربر فعال Dr.ROOSTA آواتار ها
    تاریخ عضویت
    Jun 2012
    نام
    اسماعیل
    نوشته ها
    136
    تشکر
    336
    تشکر شده 234 بار در 79 پست

    پیش فرض

    ببینید مثلا برای ساخت یه ولتمتر دیجیتال با دقت بالا که گرافیک emwin داشته باشه بنظر شما از ADC داخلی استفاده کنم یا خارجی........ داخلی که میگین باید فیلتر بزارمو این حرفا ...... سرعت هم زیاد مهم نیست چون موج ورودی فقط DC هستش ..... یعنی سیگنال صوت یا چیزی نیست که سرعت توش مهم باشه...... من نمیخوام ماژول یا آی سی به مدارم اضافه بشه ..... من رو lpc1788 حساب میکردم که همه کارو باهاش بکنم ..... ثبت روی mmc ارتباط با tcp/ip کنترل مستقیم lcd و ...... ،میشه این انحراف از معیار رو برام کدی چیزی بزارین؟ آیا دقت تو این حالت انحراف از معیار میاد پایین؟
    پروردگارا مرا پاک بپذیر ......

  19. #54
    کاربر علاقه مند
    تاریخ عضویت
    Mar 2012
    نام
    محمد قمری خسرویه
    نوشته ها
    38
    تشکر
    1
    تشکر شده 13 بار در 11 پست

    پیش فرض

    سلام
    اشکال در برنامه نویسیه lpc مشکلی نداره
    حتما کد زیر را به تنظیمات adc اضافه کنین:
    کد:
    PINSEL_SetPinMode(1,31,IOCON_MODE_PLAIN);

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


  21. #55
    عضو جدید
    تاریخ عضویت
    Feb 2017
    نوشته ها
    12
    تشکر
    1
    تشکر شده 2 بار در 1 پست

    پیش فرض

    سلام دوستان. من برد آموزشی LPC1788 کویر الکترونیک رو تهیه کردم و میخوام دو تا کانال ADC رو توی LPC1788 بخونم همزمان و روی LCD نمایش بدم! ولی متاسفانه هر طوری که میشد بنویسم برنامشو نوشتم نمیتونم تفکیک شده بخونم این دوتا کانال رو ومتاسفانه روی هم تداخل دارن! چطور میتونم بدون تداخل بخونم اینارو؟ ببینین وقتی من یه کانالم تغییر داره دقیقا همون تداخل روی کانال دیگه هم هست! حتی توی حالتی که با مود burst کار میکنم نهمون نتیجه تداخل رو دارم و علاوه بر اون میکرو بعد از چند ثانیه هنگ میکنه و توی یه خطی که تو دیباگر هم نشون نمیده گیر میکنه!!!!!!!!!! البته نمیدونم مود burst رو درست انجام دادم یا نه. ولی بهرحال اگه از قسمت تعیین مقادیر اولیه و ابتداییات کد بگذریم، باقی کدی که با حالت Burst نوشتم به این صورته:



    SDRAM_32M_16BIT_Init();
    GLCD_Init();
    CLKPWR_ConfigPPWR (CLKPWR_PCONP_PCADC, ENABLE);
    GLCD_Clear(Black);




    خوب حالا طی این خطها کانالهایADCروفعال میکنم:

    //Initialize ADC0.0 --------- p0.23
    PINSEL_ConfigPin(0,23,3);
    PINSEL_SetAnalogPinMode(0,23,ENABLE);
    PINSEL_SetFilter(0,23,ENABLE);
    //Initialize ADC0.3 --------- p0.26
    PINSEL_ConfigPin(0,26,3);
    PINSEL_SetAnalogPinMode(0,26,ENABLE);
    PINSEL_SetFilter(0,26,ENABLE);

    کانفیگ اولیه ADC :

    // Config
    ADC_Init(LPC_ADC, 200000);
    ADC_BurstCmd (LPC_ADC , ENABLE); // channel 1





    بعد حلقه اصلی شروع میشه:




    while (1)
    {



    ADC_ChannelCmd (LPC_ADC , ADC_CHANNEL_0, ENABLE);
    ADC_StartCmd(LPC_ADC,ADC_START_NOW);

    while (!(ADC_ChannelGetStatus(LPC_ADC, ADC_CHANNEL_0, ADC_DATA_DONE)));

    adc_value1 = ADC_ChannelGetData(LPC_ADC , 0);

    cof1=(4100-adc_value1)/(4100); // reversed and scaled factor

    sprintf(p,"%f",cof1);
    GUI_Text( GLCD_X_SIZE-100, GLCD_Y_SIZE -15, p, White, Black);
    sprintf(p,"%f",adc_value1);
    GUI_Text( GLCD_X_SIZE-100, GLCD_Y_SIZE -30, p, White, Black);



    ADC_ChannelCmd (LPC_ADC , ADC_CHANNEL_0, DISABLE);

    Delay (100);

    ADC_ChannelCmd (LPC_ADC , ADC_CHANNEL_3, ENABLE);
    ADC_StartCmd(LPC_ADC,ADC_START_NOW);

    while (!(ADC_ChannelGetStatus(LPC_ADC, ADC_CHANNEL_3, ADC_DATA_DONE)));

    adc_value2 = ADC_ChannelGetData(LPC_ADC , 3);
    cof2=(4100-adc_value2)/(4100); // reversed and scaled factor


    //**************************************************
    sprintf(p,"%f",cof2);
    GUI_Text( GLCD_X_SIZE-100, GLCD_Y_SIZE -45, p, White, Black);
    sprintf(p,"%f",adc_value2);
    GUI_Text( GLCD_X_SIZE-100, GLCD_Y_SIZE -60, p, White, Black);



    ADC_ChannelCmd (LPC_ADC , ADC_CHANNEL_3, DISABLE);
    Delay (100);
    }

    }

    نکته ای که هست اینه که من بعد از اینکه مقدار ها رو خوندم غیر فعال کردم اون کانال رو و کانال بعدی رو فعال کردم ولی بازم این مشکل هست! لطفا کمکم کنین ممنون!
    ویرایش توسط mzarkoob : 12-02-2017 در ساعت 19:29

  22. #56
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    سلام
    در حالت معمول چنین چیزی نمیشه باشه چون هر بار یک کاناا تنظیم می کنید و می خونید و بعد کانال بعدی ...
    چک کنید پایهایتان با ال سی دی و رم تداخل نداشته باشه

  23. #57
    عضو جدید
    تاریخ عضویت
    Feb 2017
    نوشته ها
    12
    تشکر
    1
    تشکر شده 2 بار در 1 پست

    پیش فرض

    نقل قول نوشته اصلی توسط mzarkoob نمایش پست ها
    سلام
    در حالت معمول چنین چیزی نمیشه باشه چون هر بار یک کاناا تنظیم می کنید و می خونید و بعد کانال بعدی ...
    چک کنید پایهایتان با ال سی دی و رم تداخل نداشته باشه

    مهندس چک کردم نه با پایه های ال سی دی و نه با پایه های رم هیچ تداخلی ندارن! پایه های رم روی p3.0 تا p3.15 و p40 تا p4.14 تنظیم شده اند! نه مشکل نرم افزاریه! یعنی همین برنامه بالا رو وقتی از مود burst خارج میشم بدون هنگ شدن اجرا میشه.

    میگم اون تداخله بحث اصلیه که نمیدونم چجوری برطرفش کنم و خیلی هم حیاتیه! من باید دو تا کانال رو به صورت همزمان و البته کاملا مجزا از هم بخونم که هیچ تداخلی نداشته باشن!

    آیا این کدی که نوشتم درسته؟!

  24. #58
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    وقتش نکردم کدتون ببینم ولی می فرمایید حالت معمول جداد جدا استارت می کنید و می خونید و بعد کانال بعدی کار می کنه ولی مد burst نه!
    خوب تنظیمات مد burst درست انجام ندادید لابد. ابتدا برنامتون را ساده تر کنید یعنی ال سی دی حذف کنید و داده ها روی سریال نمایش بدید.. یک کانال را با مد burst بخونید بعد زیادش کنید. شما دیتا پشت سر هم به تعداد مشخص از ADC می خونید میریزید در رم بعد استفاده می کنید. البته برای درگیر نشدن cpu می توانید از DMA استفاده کنید.

  25. #59
    عضو جدید
    تاریخ عضویت
    Feb 2017
    نوشته ها
    12
    تشکر
    1
    تشکر شده 2 بار در 1 پست

    پیش فرض

    نقل قول نوشته اصلی توسط mzarkoob نمایش پست ها
    وقتش نکردم کدتون ببینم ولی می فرمایید حالت معمول جداد جدا استارت می کنید و می خونید و بعد کانال بعدی کار می کنه ولی مد burst نه!
    خوب تنظیمات مد burst درست انجام ندادید لابد. ابتدا برنامتون را ساده تر کنید یعنی ال سی دی حذف کنید و داده ها روی سریال نمایش بدید.. یک کانال را با مد burst بخونید بعد زیادش کنید. شما دیتا پشت سر هم به تعداد مشخص از ADC می خونید میریزید در رم بعد استفاده می کنید. البته برای درگیر نشدن cpu می توانید از DMA استفاده کنید.
    خوب بهرحال من موفق شدم از دو کانال همزمان دیتا بگیرم! راه حلشم همونی بود که قبلا گفتم حالا نمیدونم چرا اول جواب نمیداد ولی بعدا جواب گرفتم چون ظاهرا کدم هیچ فرقی نکرد! :| بهر حال ... خواستم بگم و اینجا راه حلمو بنویسم که بعدا شاید به درد کسی خورد اینجا جوابش باشه!

    درواقع بعد از مقدار دهی های اولیه و تعیین متغیرهای برنامم، اومدم و پایه های ADC رو تعیین کردم:

    //Initialize ADC0.1 --------- p0.24


    PINSEL_ConfigPin(0,24,3);
    PINSEL_SetAnalogPinMode(0,24,ENABLE);
    PINSEL_SetFilter(0,24,ENABLE);

    //Initialize ADC0.3 --------- p0.26


    PINSEL_ConfigPin(0,26,3);
    PINSEL_SetAnalogPinMode(0,26,ENABLE);
    PINSEL_SetFilter(0,26,ENABLE);

    یعنی پورت p0.26 یا همون کانال 3 و پورت p0.24 یا کانال 1 رو انتخاب کردم! در ادامه :


    ADC_Init(LPC_ADC, 200000);


    و بعد توی یه حلقه ی while بینهایت اینطوری ادامه دادم و کانال 1 رو فعال کردم خوندم و بعد غیر فعالش کردم و بعد کانال 3 روفعال کردم و خوندم و بعد از خوندن اونم غیر فعال کردم که برای شروع مجدد حلقه کانال 1 دوباره بتونه فعال بشه!

    while (1)
    }
    ADC_ChannelCmd (LPC_ADC , ADC_CHANNEL_1, ENABLE);
    ADC_StartCmd(LPC_ADC,ADC_START_NOW);

    while (!(ADC_ChannelGetStatus(LPC_ADC, ADC_CHANNEL_1, ADC_DATA_DONE)));
    adc_value = ADC_ChannelGetData(LPC_ADC , 1);




    ADC_ChannelCmd (LPC_ADC , ADC_CHANNEL_1, DISABLE);

    فعال کردن کانال 3 و خوندنش:

    ADC_ChannelCmd (LPC_ADC , ADC_CHANNEL_3, ENABLE);
    ADC_StartCmd(LPC_ADC,ADC_START_NOW);



    while (!(ADC_ChannelGetStatus(LPC_ADC, ADC_CHANNEL_3, ADC_DATA_DONE)));
    adc_value = ADC_ChannelGetData(LPC_ADC , 3);

    ADC_ChannelCmd (LPC_ADC , ADC_CHANNEL_3, DISABLE);
    {

    درواقع اینجحوری اول یک کانال رو خوندم و و بعد غیر فعالش کردم و بسرعت کانال بعدی رو خوندم و اینجوری دوتا سیگنال آنالوگ رو به ورودی میکرو دادم و اول روی سریال و بعد روی ال سی دی نمایش دادم و اصلا دیگه روی هم تداخل نداشتن و مشکلم از این بابت حل شد!
    ویرایش توسط soheil.azad : 19-02-2017 در ساعت 18:42

  26. کاربران : 2 تشکر کرده اند از شما soheil.azad برای ارسال این پست سودمند:


  27. #60
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    خوب به سلامتی که حل شد.
    ولی وقتی سرعت براتون مهم باشه مجبورید از مد burst و dma استفاده کنید.
    جواب ندادن یک سمپل هم گاهی از تنظیم نکردن یک بیت میتونه باشه!

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


صفحه 3 از 4 نخستنخست 1234 آخرینآخرین

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

  1. مشکل با sd کارت در میکرو lpc1788
    توسط hamedghasemi در انجمن LPC series (NXP)
    پاسخ: 3
    آخرين نوشته: 27-02-2018, 09:55
  2. تاچ lpc1788
    توسط shahahmadi در انجمن LPC series (NXP)
    پاسخ: 2
    آخرين نوشته: 08-08-2015, 01:03
  3. پروژه های انجام شده با برد ev-lpc1788
    توسط hamedghasemi در انجمن LPC series (NXP)
    پاسخ: 5
    آخرين نوشته: 02-06-2015, 14:26
  4. فروش کور برد lpc1788
    توسط roohlla در انجمن مباحث کار و کاریابی/تبلیغات/بازارچه
    پاسخ: 2
    آخرين نوشته: 11-09-2014, 22:32
  5. [سوال] مشکل در lpc1788
    توسط cmose در انجمن LPC series (NXP)
    پاسخ: 0
    آخرين نوشته: 26-08-2014, 23:14

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

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