STM32 Bağımsız Complementary PWM Çıkışları Alma

Başlatan Kırambor, 20 Eylül 2021, 10:34:41

Kırambor

Bir projem için yarım köprü uygulaması gerçekleştiriyorum. Kare dalgalarımı STM32F407VG kartımdan alıyorum. Çıkıştaki gücü buton ile değiştirebilmek için duty cycle değerimi %10 ile %48.2 arasında değiştirmek istiyorum (%10-%20-%30-%40-%48.2 şeklinde).

Kare dalgalarımın complementary olması gerekiyor. TIM1'den complementary çıkış almaya çalıştım ama bir kare dalganın duty cycle'ı %10 iken diğer kare dalganın %90 oluyor. Bu TIM1 için norma fakat ben farklı bir çıkış istiyorum. Kare dalgalarım hem complementary hem de %10 duty cycle olmalı. Elimde 2 tane buton var. 1 buton duty cycle değerini artırırken diğeri azaltacak. %10 ile %48.2 arasında istediğim gibi artırıp azaltmak istiyorum ama kare dalgalar her bir duty cycle değerinde complementary olmalı.

STM32CubeIDE kullanıyorum. Registerları biliyorum fakat çok içli dışlı değilim. HAL üzerinden bu complementary çıkışları nasıl alabilirim? Alamazsam mecbur register üzerinden yapmak zorunda kalacağım.

z

Complementary oldugunda cikislardan birisi %10 duty ile aktif iken, digeri %10 duty ile invert cikis verir.
Yani birinin on suresi digerinin off suresine esit olur.

Dedigin baska bir sey ise grafigini cizersen yorum yapilabilir.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Kırambor

Resimdeki gibi iki kare dalgada aynı duty cycle değerlerine sahip olacak fakat 1 olduğu noktalar hiç çakışmayacak. Zaten %48'e kadar yükselteceğim duty cycle değerini.



z

Bu işi Tim1 ile yapman zor.

T2 ve T3 ile yap. T2yi çalıştır. T3ü gecikmeli çalıştır.

Dutyi değiştireceğin zaman T2 ve T3 ün ilgili cmp reglerine peşpeşe değer yükle.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

superconductor

1-)Center align moda ayarla
2-)Kanallardan birini %10 doluluğa ayarla, bu grafikte alttaki %10 high palsi verecek,
3-)ikinci kanalı %90 ayarlayıp inverse çıkıştan al, bu da üstteki %90 low palsi verecek,

 

Kırambor

Alıntı yapılan: superconductor - 21 Eylül 2021, 08:37:491-)Center align moda ayarla
2-)Kanallardan birini %10 doluluğa ayarla, bu grafikte alttaki %10 high palsi verecek,
3-)ikinci kanalı %90 ayarlayıp inverse çıkıştan al, bu da üstteki %90 low palsi verecek,

 

Teşekkürler bu yöntem işimi gördü. Yapmak istediğim şekilde kare dalgaları aldım.