پاسخ : تولید PWM سینوسی 3 فاز برای ساخت اینورتر و &
مدل ورودی ADC دارای یک مشخصه پائین گذر است و محدودیت پهنای باند، در انتهای Datasheet در بخشADC Characteristics ذکر شده است. در این کاربرد، استخراج بخش های فرکانس پائین و DC با استفاده از متوسط گیری از ورودی مورد نظر است که در بخش تغذیه قبلا فیلتر شده و با توجه به نتایج عملی آزمایش شده، نوسانی در فرکانس خروجی ناشی از محاسبات ADC مشاهده نشد. اما قبلا هم اشاره شد که در صورت نیاز می توان فیلتر را برای ورودی هایی به غیر از شرایط فعلی پروژه قرار داد.
در مورد استفاده از مد free running دو مسئله مطرح است. مورد اول این که این تبدیل بصورت دائمی و پشت سر هم در حال انجام است. در حالیکه برای تغییر کانال باید ابتدا کانال را تغییر داد و بعد فرمان تبدیل جدید صادر شود. مسئله بعدی این است که 64 نمونه ای که از آن متوسط گرفته می شود، باید 64 نمونه مجزا و جدید باشد و صرف خواندن 64 نمونه و متوسط گیری از آنها (اگر تبدیل جدیدی انجام نشده باشد) منظور پروژه را برآورده نمی کند. حال اگر زمان خواندن رجیستر ADC سریعتر از زمان تبدیل باشد که منظور نظر را برآورده نمی کند و اگر هم کندتر باشد، با همان مسئله عدم دنبال کردن فرکانس در زمان تغییر پتانسیومتر و مواردی که قبلا بحث شده مواجه می شویم. بنابراین فعال سازی وقفه ADC در روش فعلی با نیاز ناشی هر دوی این موارد منطبق است.
عملکرد نمونه کدی که قرار داده اید، حتی با فرض شروع شدن Acceleration و Deceleration از صفر صحیح نیست. زیرا اگر مثلا در شرایط شتاب مثبت مقدار Acceleration=0 باشد، در بار اول Acceleration_counter برابر 0 است. اما بعد از گذشتن از شرط، مقدار آن یک می شود و در بارهای بعدی، شرط برای افزایش سرعت محقق نمی شود.
در مورد نقل قول قرار داده شده از datasheet هم متوجه منظور شما نشدم.
در مورد تعداد تبدیلات ADC هم تا جایی که به خاطر دارم مسئله شما در ابتدا این بود که چرا تعداد تبدیلات ADC زیاد است و اکنون مورد سوال برعکس شده است. در پست قبل توضیح دادم که بر مبنای نیاز و با توجه به نتایج عملی، در نسخه بعدی عدد مناسبی برای تعداد نمونه ها در نظر گرفته خواهد شد.
نتایج ناشی از نرم افزار Proteus در مواردی معتبر نیست و سورس های موجود در پست اول را بصورت عملی آزمایش کنید.
نوشته اصلی توسط alinili68
در مورد استفاده از مد free running دو مسئله مطرح است. مورد اول این که این تبدیل بصورت دائمی و پشت سر هم در حال انجام است. در حالیکه برای تغییر کانال باید ابتدا کانال را تغییر داد و بعد فرمان تبدیل جدید صادر شود. مسئله بعدی این است که 64 نمونه ای که از آن متوسط گرفته می شود، باید 64 نمونه مجزا و جدید باشد و صرف خواندن 64 نمونه و متوسط گیری از آنها (اگر تبدیل جدیدی انجام نشده باشد) منظور پروژه را برآورده نمی کند. حال اگر زمان خواندن رجیستر ADC سریعتر از زمان تبدیل باشد که منظور نظر را برآورده نمی کند و اگر هم کندتر باشد، با همان مسئله عدم دنبال کردن فرکانس در زمان تغییر پتانسیومتر و مواردی که قبلا بحث شده مواجه می شویم. بنابراین فعال سازی وقفه ADC در روش فعلی با نیاز ناشی هر دوی این موارد منطبق است.
عملکرد نمونه کدی که قرار داده اید، حتی با فرض شروع شدن Acceleration و Deceleration از صفر صحیح نیست. زیرا اگر مثلا در شرایط شتاب مثبت مقدار Acceleration=0 باشد، در بار اول Acceleration_counter برابر 0 است. اما بعد از گذشتن از شرط، مقدار آن یک می شود و در بارهای بعدی، شرط برای افزایش سرعت محقق نمی شود.
در مورد نقل قول قرار داده شده از datasheet هم متوجه منظور شما نشدم.
در مورد تعداد تبدیلات ADC هم تا جایی که به خاطر دارم مسئله شما در ابتدا این بود که چرا تعداد تبدیلات ADC زیاد است و اکنون مورد سوال برعکس شده است. در پست قبل توضیح دادم که بر مبنای نیاز و با توجه به نتایج عملی، در نسخه بعدی عدد مناسبی برای تعداد نمونه ها در نظر گرفته خواهد شد.
نوشته اصلی توسط mrr1361
دیدگاه