القصه اینکه برای تولید شکل موج سینوسی سه فاز با فرکاسن متغیر در STMF4 هر چه گشتیم راهی پیدا نکردیم که بشه فرکانس سینوس رو تغییر داد.
کار به این شکل انجام میشه که یک لوکاپ تیبل داریم که قراره مقادیر داخلش توی CCR1تا CCR3 تایمر یک با تایمینگهای متفاوت (جهت تغییر دادن فرکانس سینوس) بارگیری بشه.
چیزی که تا اینجا به ست اوردم اینه که تو میکرو های STM وقتی با استفاده از DMA میخوایم عددی رو از SRAM لود بکنیم داخل تایمر ایونت های DMA (سیگنالی که به DMA میره تا لحظه وقوع مقدار جدید بارگیری بشه و سی پی یو درگیر بارگیری با اون تعداد بالای تایمر نشه) از سمت خود تایمر یک میاد. یعنی با هر سیکل PWM عدد جدید بارگیری میشه.
با این منوال ما قادر نخواهیم بود فرکانس سینوس رو بدون تغییر فرکانس تایمر که در نهایت منجر به تغیر فرکانس PWM خواهد شد تغییر بدیم.
------------------------
در حال حاضر از وقفه یک تایمر دیگه برای بارگیری CCR1 تا CCR3 استفاده شده که طبیعتا سی پی رو درگیر میشه. حدودا هر شصت میکرو ثانیه یکبار (در حداکثر فرکانس) وقفه رخ میده که مطلوب نیست.
کسی راه حلی داره که ایونت DMA رو در این حالت بشه از یک تایمر دیگه گرفت؟
پیشاپیش سپاسگذارم.
کار به این شکل انجام میشه که یک لوکاپ تیبل داریم که قراره مقادیر داخلش توی CCR1تا CCR3 تایمر یک با تایمینگهای متفاوت (جهت تغییر دادن فرکانس سینوس) بارگیری بشه.
چیزی که تا اینجا به ست اوردم اینه که تو میکرو های STM وقتی با استفاده از DMA میخوایم عددی رو از SRAM لود بکنیم داخل تایمر ایونت های DMA (سیگنالی که به DMA میره تا لحظه وقوع مقدار جدید بارگیری بشه و سی پی یو درگیر بارگیری با اون تعداد بالای تایمر نشه) از سمت خود تایمر یک میاد. یعنی با هر سیکل PWM عدد جدید بارگیری میشه.
با این منوال ما قادر نخواهیم بود فرکانس سینوس رو بدون تغییر فرکانس تایمر که در نهایت منجر به تغیر فرکانس PWM خواهد شد تغییر بدیم.
------------------------
در حال حاضر از وقفه یک تایمر دیگه برای بارگیری CCR1 تا CCR3 استفاده شده که طبیعتا سی پی رو درگیر میشه. حدودا هر شصت میکرو ثانیه یکبار (در حداکثر فرکانس) وقفه رخ میده که مطلوب نیست.
کسی راه حلی داره که ایونت DMA رو در این حالت بشه از یک تایمر دیگه گرفت؟
پیشاپیش سپاسگذارم.