Advanced Timer ile bu şekilde bir çıkış almak mümkün mü?

Başlatan Cemre., 22 Aralık 2016, 14:15:15

Cemre.

Merhaba,

STM32F103xx RM0008 Reference  manual'da aşağıdaki yapıya denk geldim. Ben daha önce TIM1 ile 2x3 kanal complementary PWM üretebilmiştim. Resmini aşağıya ekleyeceğim. Ancak misal OCx kanalım HIGH iken OCxN kanalım LOW olmakta, ya da tam tersi idi. Manual'da verilen yapıya bakılırsa OCx kanalından PWM çıkışı alınırken OCxN kanalı sürekli HIGH veya sürekli LOW olabiliyor. Bu mümkün müdür? Nasıl yapılabilir?

Teşekkürler.

Ref Man.daki yapı;



http://www.st.com/content/ccc/resource/technical/document/reference_manual/59/b9/ba/7f/11/af/43/d5/CD00171190.pdf/files/CD00171190.pdf/jcr:content/translations/en.CD00171190.pdf

PDF Sayfa 332,  14.3.18 Interfacing with Hall Sensors

Benim elde ettiğim çıkış;



Cemre.

Komütasyon callback'inde misal Channel 1 pwm modda iken channel 2 forced active moda alıp N çıkışını aktif etmek bir çözüm sanırım. Bu şekilde yapılıyor olabilir mi?

Zoroaster

Seytan deliginden kacti.

Cemre.

Alıntı yapılan: Zoroaster - 22 Aralık 2016, 18:49:27
Interrupt rutininde yaparsın.
Interrupt rutininde nasıl bir işlem yapmamı önerirsiniz hocam? Dediğim gibi bir kanalı PWM (OC Toggle) diğer kanalı Force Active moda alarak mı? Başka bir yolu olabilir mi?

Zoroaster

TMS320.... lerde bu şekilde yapıyordum. Shadow registeri açarsan ve tam ordada int ürettirirsen sorun olmaz.

STM donanımda bunu donanıma otomatik yaptırmanın yolu yok galiba. Harici lojik kurulabilir ama yazılım zaten halleder. İlgili çıkışı yazılımla zorlayacaksın.
Seytan deliginden kacti.

Cemre.

Alıntı yapılan: Zoroaster - 22 Aralık 2016, 19:20:28
TMS320.... lerde bu şekilde yapıyordum. Shadow registeri açarsan ve tam ordada int ürettirirsen sorun olmaz.

STM donanımda bunu donanıma otomatik yaptırmanın yolu yok galiba. Harici lojik kurulabilir ama yazılım zaten halleder. İlgili çıkışı yazılımla zorlayacaksın.

İlgili çıkışları Forced Active moda alarak istediğimi yaptım. Teşekkürler @Zoroaster hocam.

Bu da sonucu;

Hall sensor sinyallerini suni olarak işlemcinin GPIO'ları ile üretiyorum.



Zoroaster

Seytan deliginden kacti.

Cemre.

Alıntı yapılan: Zoroaster - 23 Aralık 2016, 19:51:44
Dead time konusunda çok korkak davranıyorsun gibi.

Hocam bu sinyallerde deadtime yok gibi ns mertebesinde.

Zoroaster

Seytan deliginden kacti.

Cemre.


Cemre.

@Zoroaster hocam, bu işi yapan komutasyon callback fonksiyonunun (interrupt içinde çağrılıyor) stm32f103c8. 72MHz.de kaç cycle olması kabul edilebilirdir sizin gözünüzde? Amatör bir C kullanıcısı için cevap verecek olursanız....
;D

Zoroaster

Seytan deliginden kacti.

Cemre.

Alıntı yapılan: Zoroaster - 23 Aralık 2016, 21:34:30
En kötü durumda bile Tpwm/2 kadar zamanın var.

Doğrudan kütüphane fonksiyonları kullanılarak bazen 450 bazen 690 cycle sürüyor.

Bir sonraki adımım fonksiyonlardan arındırıp doğrudan reg. erişimi ile yapmak olacak. Onu da ayrıca paylaşırım, HAL kütüphanesinin hızı ile ilgili de basit bir test olur.

best23

merhaba cemre hocam,

şimdiye kadar mcu kodlamalarını matlab simulink üzerinden yapıyordum. şimdi stm32yi yazılımla yapmak için uğraşıyorum. youtubedeki çoğu videoyu izledim. temel anlamdaki işlemleri yapabiliyorum. lakin spwm ya da resmini paylaştığınız pwm çıkışlarını elde edemedim bir türlü. kodlarını paylaşma imkanınız var mı acaba ?

teşekkürler