ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 11
  1. #1
    2012/12/30
    بوشهر
    3,204
    1,105

    Lightbulb [آموزشی]چطور دقت ADC میکرو STM32 را افزایش بدیم؟

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

    1. خطای off-set
    2. خطای gain
    3. خطای حالت خطی دیفرانسیلی
    4. خطای حالت خطی انتگرالی


    این خطاها رو در شکل زیر که از دیتاشیت STM32 برداشتم می تونید ببینید.



    واسه میکروهای دیگه مثل AVR یا PIC یا LPC و غیره هم وجود داره.
    خطای off-set
    اگه به پایین نمودار نگاه کنید، متوجه میشید که در واقعیت نمودار واقعی رو صفر نیست. یعنی مقداری به سمت راست شیفت پیدا میکنه. این همون خطای off-set هستش. پس شما باید مقدار این خطا رو باید اندازه بگیرید و از مقدار خونده شده کم کنید تا اثرش از بین بره.



    خطای gain
    این خطا مثل مضربی برای نمودار می مونه که شیب نمودار رو تغییر میده. اگه دقت کنید متوجه میشید که بالای نمودار رو تحت تاثیر قرار میده. پس باید در عدد 1-مقدار شیب ضرب شود تا این خطا نیز از بین برود.


  2. #2
    2012/12/30
    بوشهر
    3,204
    1,105

    پاسخ : [آموزشی]چطور دقت ADC میکرو STM32 را افزایش بدیم؟

    دوستان دقت کنید که تمامی این خطاها رو بقیه میکرو ها هم دارند. برای اینکه بهتون ثابت کنم:

    مثلا بین AVRها، اگه دیتاشیتشون رو نگاه کنید اینو میبینید:



    یا برای xmega از یکی از فایل های اپلیکش نات هاش اینو میبینید:



    یا LPC ها:



    یا اونایی که با محصولات میکروچیپ کار میکنن:



    و....

    منابع:


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  3. #3
    2007/06/21
    مشهد
    118
    8

    پاسخ : [آموزشی]چطور دقت ADC میکرو STM32 را افزایش بدیم؟

    سلام خدمت مهندس روح المین
    جناب مهندس میشه به زبان ساده با مثال بگید چطور میشه این خطاها رو برطرف کرد.ممنون
    من قبلا خودم از نمونه برداری و میانگین گیری حساب میکردم ولی بعضی مواقع خوب در نمیاد.میشه با ذکر مثال روش های دیگه هم بگید که در عمل جواب بدن و ترجیحا ساده باشن.
  4. #4
    2010/10/04
    تهران
    1,462
    388

    پاسخ : [آموزشی]چطور دقت ADC میکرو STM32 را افزایش بدیم؟

    با سلام برای کالیبره کردن ADC ها، اولین قدم اینه که ولتاژ تغذیه، ولتاژ رفرنس و سیگنال ورودی رو با اسکوپ بررسی کنین و اطمینان داشته باشین که مقدارشون درست باشه و صاف و بدون ریپل باشن. البته معمولا ریپلهای فرکانس بالا که در اسکوپ دیده میشن و مربوط به DC/DC ها هستن در فرآیتد تبدیل، تاثیر نمیذارن. اما ریپل فرکانس پایین باید حتما حذف بشه. گام بعدی اینه که حتما یه مولتی متر دقیق و کالیبره داشته باشین تا نتیجه رو با مقدار اون مقایسه کنین و خطا رو بدست بیارین. اما نکته ی مهم اینه که ممعمولا مقدار ADC ها با کمی پرش همراه هست و باید پیش از کالیبره ی دقیق، این پرش هم حذف بشه. روشی که معمولا استفاده میشه میانگین گیری هست که در این روش تعداد مشخصی نمونه خونده میشه و مجموع مقادیر اونها تقسیم بر تعدادشون میشه. عیب این روش اینه که نتیجه ی این تقسیم میتونه پیوستگی نداشته باشه و تقریبا همون مقدار پرش رو داره اما با سرعت کمتر. روش بهتر که هم مقدار واقعی ولتاژ ورودی رو میده و هم پیوستگی داره استفاده از فیلتر کالمن هست. ساده ترین فیلتر کالمن نوع دو جمله ای هست که به اینصورت پیاده میشه: VALUE = K * OLD + (1-K) * NEW که در اون VALUE ،مقدار فعلی هست و OLD مقدار فبلی و NEW مقدار فعلی که از ADC خونده شده. ضریب K هم هر عددی مابین صفر و یک میتونه باشه و دقت کنین که در صورت استفاده از هر چند جمله، مجموع ضرایب جملات حتما باید 1 بشه تا عدد نهایی درست باشه و خطا نداشته باشه. در عبارت فوق هرچه K بزرگتر باشه، خروجی لخت تر و کندتر، اما پایدارتر میشه و بالعکس با کوچکتر شدن K، سرعت افزایش پیدا میکنه و مقدار نوسانات هم بیشتر میشه. در حقیقت خوندن ADC بصورت عادی و بدون فیلتر کالمن، همون استفاده از K = 0 هست. پس عدد K به سرعت مورد نیاز شما مربوط میشه و در اختیار خودتون هست. با این روش عملا محدودیت رزولوشن ADC هم حداقل در نمایش برداشته میشه، البته خطای یک LSB باقی هست و از بین نمیره. وقتی با این روش، عدد پایداری از ADC تون بدست آوردید با مولتی متر کالیبره میتونید اون رو کالیبره کنید. برای کالیبراسیون آفست، ورودیِ صفر بهش میدید و خروجی هم باید پس از پایداری صفر باشه و اگه نبود، مقدارش رو یادداشت کنید و در برنامه بصورت نرم افزاری از عدد بدست اومده ی کالمن کم کنین. تا اینجا خطای آفست برطرف میشه. برای کالیبره کردن گین هم حداقل یک نقطه که معمولا نقطه ی وسط رنج ورودی، بهترین نقطه هست رو باید به ADC بدین و همزمان با مولتی متر هم اندازه گیری کنین.با فرض اینکه عدد مولتی متر، کالیبره و درست هست، عدد ADC رو با ضریبی به عدد مولتی متر برسونین که معمولا این ضریب احتمالا با اختلاف جزئی در حدود عدد 1 در میاد. در اینجا کالیبراسیون به پایان میرسه. اما برای اطمینان از صحت عملیات کالیبراسیون، در نقاط دیگه ی بازه ی ورودی هم مقادیر قرائت شده توسط مولتی متر و ADC رو چک کنین. پی نوشت: نمیدونم چرا من بین جملات فاصله میذارم تا خوانایی بهتر بشه، اما ادیتور فاصله ها رو حذف میکنه و همه رو بهم میچسبونه، ظاهرا اینتر ها و اسپیس ها رو حذف میکنه، مسئولین لطفا رسیدگی کنن!!
    ویرایش توسط نو رسیده : 2017/09/13 در ساعت 19:51
  5. #5
    2016/07/05
    8
    5

    پاسخ : [آموزشی]چطور دقت ADC میکرو STM32 را افزایش بدیم؟

    دوست عزیز برای افزایش دقت استفاده از روش های Oversampling میباشد که دو روش داره یکی روش white noise و یکی هم روش triangular dither ،که داخل فایل AN2668 بطور کامل توضیح داده . خیلی ساده میشه این کار رو انجام داد موفق باشید
  6. #6
    2014/10/16
    1,378
    1,420

    پاسخ : [آموزشی]چطور دقت ADC میکرو STM32 را افزایش بدیم؟

    نقل قول نوشته اصلی توسط نو رسیده

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    با سلام برای کالیبره کردن ADC ها، اولین قدم اینه که ولتاژ تغذیه، ولتاژ رفرنس و سیگنال ورودی رو با اسکوپ بررسی کنین و اطمینان داشته باشین که مقدارشون درست باشه و صاف و بدون ریپل باشن. البته معمولا ریپلهای فرکانس بالا که در اسکوپ دیده میشن و مربوط به DC/DC ها هستن در فرآیتد تبدیل، تاثیر نمیذارن. اما ریپل فرکانس پایین باید حتما حذف بشه. گام بعدی اینه که حتما یه مولتی متر دقیق و کالیبره داشته باشین تا نتیجه رو با مقدار اون مقایسه کنین و خطا رو بدست بیارین. اما نکته ی مهم اینه که ممعمولا مقدار ADC ها با کمی پرش همراه هست و باید پیش از کالیبره ی دقیق، این پرش هم حذف بشه. روشی که معمولا استفاده میشه میانگین گیری هست که در این روش تعداد مشخصی نمونه خونده میشه و مجموع مقادیر اونها تقسیم بر تعدادشون میشه. عیب این روش اینه که نتیجه ی این تقسیم میتونه پیوستگی نداشته باشه و تقریبا همون مقدار پرش رو داره اما با سرعت کمتر. روش بهتر که هم مقدار واقعی ولتاژ ورودی رو میده و هم پیوستگی داره استفاده از فیلتر کالمن هست. ساده ترین فیلتر کالمن نوع دو جمله ای هست که به اینصورت پیاده میشه: VALUE = K * OLD + (1-K) * NEW که در اون VALUE ،مقدار فعلی هست و OLD مقدار فبلی و NEW مقدار فعلی که از ADC خونده شده. ضریب K هم هر عددی مابین صفر و یک میتونه باشه و دقت کنین که در صورت استفاده از هر چند جمله، مجموع ضرایب جملات حتما باید 1 بشه تا عدد نهایی درست باشه و خطا نداشته باشه. در عبارت فوق هرچه K بزرگتر باشه، خروجی لخت تر و کندتر، اما پایدارتر میشه و بالعکس با کوچکتر شدن K، سرعت افزایش پیدا میکنه و مقدار نوسانات هم بیشتر میشه. در حقیقت خوندن ADC بصورت عادی و بدون فیلتر کالمن، همون استفاده از K = 0 هست. پس عدد K به سرعت مورد نیاز شما مربوط میشه و در اختیار خودتون هست. با این روش عملا محدودیت رزولوشن ADC هم حداقل در نمایش برداشته میشه، البته خطای یک LSB باقی هست و از بین نمیره. وقتی با این روش، عدد پایداری از ADC تون بدست آوردید با مولتی متر کالیبره میتونید اون رو کالیبره کنید. برای کالیبراسیون آفست، ورودیِ صفر بهش میدید و خروجی هم باید پس از پایداری صفر باشه و اگه نبود، مقدارش رو یادداشت کنید و در برنامه بصورت نرم افزاری از عدد بدست اومده ی کالمن کم کنین. تا اینجا خطای آفست برطرف میشه. برای کالیبره کردن گین هم حداقل یک نقطه که معمولا نقطه ی وسط رنج ورودی، بهترین نقطه هست رو باید به ADC بدین و همزمان با مولتی متر هم اندازه گیری کنین.با فرض اینکه عدد مولتی متر، کالیبره و درست هست، عدد ADC رو با ضریبی به عدد مولتی متر برسونین که معمولا این ضریب احتمالا با اختلاف جزئی در حدود عدد 1 در میاد. در اینجا کالیبراسیون به پایان میرسه. اما برای اطمینان از صحت عملیات کالیبراسیون، در نقاط دیگه ی بازه ی ورودی هم مقادیر قرائت شده توسط مولتی متر و ADC رو چک کنین. پی نوشت: نمیدونم چرا من بین جملات فاصله میذارم تا خوانایی بهتر بشه، اما ادیتور فاصله ها رو حذف میکنه و همه رو بهم میچسبونه، ظاهرا اینتر ها و اسپیس ها رو حذف میکنه، مسئولین لطفا رسیدگی کنن!!
    سلام
    بابت توضیحات مفیدتون واقعا ممنونم
    سوالاتم در مورد نحوه فیلتر کردن و... تقریبا حل شد
    اما یک مشکلی هنوز باقی مونده
    همونطور که گفتید یکی از روش ها استفاده از میانگین گیری هست.
    از طرفی این میکرو ها میتونن تا سرعت یک مگاسمپل بر ثانیه نمونه برداری کنن،ولی اگر بخواهیم از میانگین گیری استفاده کنیم و همچنین حداکثر سرعت رو داشته باشیم به نظر میاد باید از DMA استفاده کنیم؛حال آنکه با این کار نمیشه تعداد نمونه هاییکه با DMA ذخیره میشن( و سپس وقفه رخ میده تا بین این نمونه ها میانگین بگیریم ) رو کمتر از حدود 20 تا کرد!
    و این یعنی کم کردن سرعت نمونه برداری به یک بیستم
    اگر برنامه طوری نوشته بشه که وقفه DMA در تعداد نمونه هایی کمتر از 15 تا رخ بده؛میکرو عملا به هیچ کار دیگه ای نمیرسه و همش تو وقفست
    برای حل این مشکل راه حلی وجود داره؟
    باتشکر
    ................Fx7SAM................
  7. #7
    2016/06/06
    92
    55

    پاسخ : [آموزشی]چطور دقت ADC میکرو STM32 را افزایش بدیم؟

    برای این کار از FIFO باید استفاده کنید، مثلا 1000 عدد میگیرید با فرکانس 1 مگ، حالا مثلا 5 عدد از اعداد را برداشته و میانگین گیری میکنیم در عمل فرکانس این سیگنال 200 کیلو هست. این عدد را وارد FIFO میکنیم.
    فرض کنید میخواهیم این اعداد را روی DAC قرار بدهیم
    یک تایمر فعال میکنیم و در زمان اینتراپت تایمر یک داده از FIFO خارج و روی DAC قرار میدهیم. ( ممکن است که فرکانس 200 کیلو DAC زیاد باشد) در این صورت باید DAC مد DMA فعال باشد و هر بار یک سری عدد را در بافر DMA به روز کنیم.
  8. #8
    2014/10/16
    1,378
    1,420

    پاسخ : [آموزشی]چطور دقت ADC میکرو STM32 را افزایش بدیم؟

    نقل قول نوشته اصلی توسط Faateh

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    برای این کار از FIFO باید استفاده کنید، مثلا 1000 عدد میگیرید با فرکانس 1 مگ، حالا مثلا 5 عدد از اعداد را برداشته و میانگین گیری میکنیم در عمل فرکانس این سیگنال 200 کیلو هست. این عدد را وارد FIFO میکنیم.
    خیلی ممنونم از وقتی که گذاشتید
    دو تا سوال
    یکی اینکه میکروم فقط روی usb و sdcard فیفو داره
    دوم اینکه توی این مثالی که زدید ،فرکانس نمونه برداری نهاییمون میشه یک کیلوهرتز یا 200؟
    چون ما اینطوری هر هزار تا نمونه یک وقفه داریم که تو اون وقفه میایم و از 5 تامیانگین گیری میکنیم.....یعنی تو هر ثانیه هزار بار این اتفاق میوفته....خب اینکه میشه یک کیلو سمپل
    ................Fx7SAM................
  9. #9
    2010/10/04
    تهران
    1,462
    388

    پاسخ : [آموزشی]چطور دقت ADC میکرو STM32 را افزایش بدیم؟

    نقل قول نوشته اصلی توسط سیدعلی.م

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سلام
    بابت توضیحات مفیدتون واقعا ممنونم
    سوالاتم در مورد نحوه فیلتر کردن و... تقریبا حل شد
    اما یک مشکلی هنوز باقی مونده
    همونطور که گفتید یکی از روش ها استفاده از میانگین گیری هست.
    از طرفی این میکرو ها میتونن تا سرعت یک مگاسمپل بر ثانیه نمونه برداری کنن،ولی اگر بخواهیم از میانگین گیری استفاده کنیم و همچنین حداکثر سرعت رو داشته باشیم به نظر میاد باید از DMA استفاده کنیم؛حال آنکه با این کار نمیشه تعداد نمونه هاییکه با DMA ذخیره میشن( و سپس وقفه رخ میده تا بین این نمونه ها میانگین بگیریم ) رو کمتر از حدود 20 تا کرد!
    و این یعنی کم کردن سرعت نمونه برداری به یک بیستم
    اگر برنامه طوری نوشته بشه که وقفه DMA در تعداد نمونه هایی کمتر از 15 تا رخ بده؛میکرو عملا به هیچ کار دیگه ای نمیرسه و همش تو وقفست
    برای حل این مشکل راه حلی وجود داره؟
    باتشکر
    درود بر شما
    معمولا پردازش سیگنالهای سریع در حین سمپلینگ انجام نمیشه.
    شما با فرکانس 1 مگ دیتا برداری میکنید و اونها رو بصورت راو یا خام به کامپیوتر ارسال میکنید و بعد اونجا فیلتر، پردازش و استفاده میشه.
    اما اگه حتما نیازه که در همون لحظه پردازش بشه بهتره از یه مدار محاسباتی سخت افزاری مبتنی بر FPGA استفاده کنین و میکرو درگیر محاسبات نشه.
    کمترین توقع از یک فرد تحصیلکرده، دانستن املای صحیح کلمات است.
  10. #10
    2016/06/06
    92
    55

    پاسخ : [آموزشی]چطور دقت ADC میکرو STM32 را افزایش بدیم؟

    نقل قول نوشته اصلی توسط سیدعلی.م

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    خیلی ممنونم از وقتی که گذاشتید
    دو تا سوال
    یکی اینکه میکروم فقط روی usb و sdcard فیفو داره
    دوم اینکه توی این مثالی که زدید ،فرکانس نمونه برداری نهاییمون میشه یک کیلوهرتز یا 200؟
    چون ما اینطوری هر هزار تا نمونه یک وقفه داریم که تو اون وقفه میایم و از 5 تامیانگین گیری میکنیم.....یعنی تو هر ثانیه هزار بار این اتفاق میوفته....خب اینکه میشه یک کیلو سمپل
    فیفو نرم افزاری ( آنچه مد نظر من بود) یا رشته ای که تولید می کنید، تا در یک زمان خاص به DMA یا اینتراپت داده شود.
    با عدد 5 عدد 200 کیلو درست هست.
    دقت کنید نمونه برداری 1 مگ بوده که DMA تعداد 1000 نمونه آن را یکجا تحویل میدهد. حال شما این 1000 نمونه را 5 عدد، 5 عدد متوسط میگیرید، میشود 200 عدد ( که اینجا در یک فیفو ارسال میکنید) یا در مثال قبل که گفتم همین 200 عدد را در DMA واحد DAC قرار دهید
    حالا DAC دارد 200 کیلو سمپل خروجی میدهد
صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 11

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

  1. ویدیو آموزشی ARM STM32 - بخش 1 و 2
    توسط kamelyusof در انجمن STM
    پاسخ: 2
    آخرين نوشته: 2015/04/26, 17:51
  2. منابع و کتب آموزشی stm32
    توسط QICS در انجمن STM
    پاسخ: 2
    آخرين نوشته: 2015/03/23, 19:26
  3. برد آموزشی stm32 فروشگاه
    توسط NXPL در انجمن STM
    پاسخ: 7
    آخرين نوشته: 2015/02/04, 16:40
  4. پاسخ: 3
    آخرين نوشته: 2014/12/16, 23:08
  5. پاسخ: 17
    آخرين نوشته: 2011/04/18, 22:15

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

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

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