اولا شما نوع موتور را مشخص نکرده اید. فرض می کنیم موتور شما DC است.
کنترل دور موتور DC با استفاده از مدولاسیون عرض پالس امکان پذیر است با این روش شما علاوه بر کنترل سرعت بر عملکرد چپ گرد وراست گرد کردن آن نیز کنترل دارید.
شما باید یک موج مربعی تولید کنید که Duty Cycle آن با یک پارامتر دیگر قابل کنترل باشد(PWM). با این کار شما می توانید ولتاژ متوسط اعمالی به موتور را کنترل کنید.
ساخت PWM با FPGA کار سختی نیست.
سپس باید خروجی های FPGA را با درایور مناسب با توان خروجی و با رعایت مسایل EMC و ایزولاسیون بافر کرد. برای کنترل سرعت به تنهایی درایور ساده (یک ترانزیستور یا یک ماس فت) کافی است اما برای کنترل سرعت به علاوه کنترل جهت حرکت باید از مدار های Bridge (شامل چهار ماس فت یا ترانزیستور)استفاده کنید.
قابلیت جریان کشی و جریان دهی FPGA ها از خانواده ای به خانواده دیگر متفاوت است. و تا حدودی به ولناژ تغذیه IO ها (VCCO ) نیز بستگی دارد.از طرفی معمولا FPGA ها در حالتی که خروجیشان صفر است قابلیت جریان کشی بهتری دارند(حالت Sink). اما در حالتی که خروجی یک است قابلیت جریان دهی (حالت Source ) ضعیف تری دارند.
این حالت به واسطه نوع ساختار خروجیشان است (البته در خانواده هایی از FPGA ها مانند Spartan3 شما در هنگام Pin Assign می توانید نوع خروجی را نیز تعیین کنید که دارای چه ساختاری باشد و چه ویژگی هایی داشته باشد).
در کل به نظر من بیشتر از +/-5mA روی خروجی های FPGA حساب نکنید. و سعی کنید از بافر های ایزوله شده برای ارتباط با دنیایی خارج استفاده کنید.
دیدگاه