stm32f103c8 TIMER 2 ,3, 4 sorunum

Başlatan z, 17 Eylül 2022, 01:13:25

JOKERAS

z,sen kestin attın cevap yazmadın.Sorunu çözdün sandık.
Ben STM Arm Marm anlamam.Ama bir araştırma yaptım.

Şimdi Center Aligned Mode Pwm nedir?

Clock Pulse'i Sayan bir Counter,Registere yazılan değer ile Match olduğunda Olay gerçekleşir.
STM yapısında Up/Down Counter özelliği var.

Center modu için CCR Kaydına yazılan değer 100 olsun.
Counter Saymaya başladığında 100 değerine ulaşınca Match olacak.Bu Duty'nin High olması.
Up Counter Saymaya devam ediyor ve Duty High'da ilerliyor.
Burası önemli!!Up Counter Son değerine ulaşıp Taştığı anda  UEV(Update event) gerçekleşiyor.
UEV  gerçekleşince ARR registerindeki o anki değer ne ise Tekrar Countere yükleniyor.
Örneğe göre 65535 - 100 = 64535.Duty hala High ve ilerliyor.
Bu drumda Duty'nin Orta noktası bulundu, ARR Registerindeki mevcut değer yüklendi,Up Counter Durdu,Down Counter Saymaya başladı.
Down Conter aşağı doğu sayıp CCR kaydındaki 100 değeri ile Match olduğunda Duty Fall oldu.
Conter değeri Sıfır olunca tekrar başa döndü.


Şimdi Sen bu durumda CCR değelerinin hepsini Duty %50 olsun diye aynı değeri yazdın.
Faz kaymasını sağalamak için Timerları farklı zamanlarda başlattın.
Timerları farklı zamanda başlatman önemli değil.Çünkü Timerların Clock kaynağı tektir.
Faz kayması ilk Anda Registerdeki rastgele değer geçtikten sonraki Turda eşitlenecek.
Doğal olarak Tüm Sinyallerin eşit hale gelecek.

Bunun için Center Alligned modda,Senin işlemcide böyle bir register varmıdır bilemiyorum.
Asimetrik Mode Seçeneğini seçmen icab ediyor.

*3 farklı CCR Kaydına istenilen değer kadar kayma değeri
*Center Aligned Mod.
*Asimetrik Mod.

CCR1 = 100;
CCR2 = 110;
CCR3 = 120;

Bir kaç ARM pdf'inden incelediğim şekil bu.


Tagli

STM32'de asimetrik mod diye bir özellik yok (gözümden kaçmadıysa).
CCR'leri değiştirmek duty değerini de değiştirecektir. Bu durumda bu da bir seçenek değil.

@z, açıkçası oturup denemeye üşendim. Daha önce yazdığımdan başka bir yöntem aklıma gelmiyor. Denersem de yine o yöntemi deneyeceğim. Bence çalışması gerekiyordu. Neden çalışmadığını ben de merak ettim. Söz vermeyeyim ama hafta sonu bir bakmaya çalışacağım.
Gökçe Tağlıoğlu

JOKERAS

#17
Alıntı yapılan: Tagli - 22 Eylül 2022, 18:10:58STM32'de asimetrik mod diye bir özellik yok (gözümden kaçmadıysa).
CCR'leri değiştirmek duty değerini de değiştirecektir. Bu durumda bu da bir seçenek değil.

@z, açıkçası oturup denemeye üşendim. Daha önce yazdığımdan başka bir yöntem aklıma gelmiyor. Denersem de yine o yöntemi deneyeceğim. Bence çalışması gerekiyordu. Neden çalışmadığını ben de merak ettim. Söz vermeyeyim ama hafta sonu bir bakmaya çalışacağım.
CCR'leri değiştirmek Standart Pwm'da Edge Aligned modda Duty'i değiştirir.
Zaten amacı bu değilmi?
Ama Center Aligned mod olunca Durumun değişmesi gerekir.
Center Aligned modda Up/Down Counter Sayıyor.Başka türlü Center Aligned mod nasıl olacak?

Bilmediğim işlemci.Açıkçası aynı mimari olduğu için bulduğum Arm pdf'lerini inceledim.
Asimetrik mod varmı yokmu bilmiyorum.Ama mantıken olması gerekir diye düşünüyorum.

Edit;Baktığım Pdf'lerden biri 17. Sayfada Asimetrik PWM diyor.
https://www.st.com/resource/en/application_note/an4013-stm32-crossseries-timer-overview-stmicroelectronics.pdf

z

#18
Yahu konuyu anlamamissin.

3 tane timer var. Her birinin 4 pwm cikisi var. Ama bosver sadece her bir Timerin sadece tek pwm cikisini kullanacagiz.

Her 3 timeri da es sekilde kuracaksin. Her biri icin pwm degerini %50 vereceksin.

Simdi bu 3 timeri ayni anda baslatirsan 3 pwm de ayni fazda olurmi ? Olur.

Peki 1, timeri baslatip ardindan 10us bekleyip 2. timeri baslatirsam be olur? Iki Pwm cikisi arasinda 10uS faz farki olur.

3. timeri da 10us sonra baslatirsam ne olur? 1. den 20us gecikmis ikinciden ise 10us gecikmis 3 sinyalim olur mu? Olur.

Ama uygulamada olmuyor. 3 Timerdan ikisi arasinda 10us faz farki cikior. ucuncusu ise bu iki timerdan birisi ile eszamanli cikis veriyor.

Tum olay bu. Ya ben beceremedim ya da donanimda bir terslik var.

Benim derdim timerlari faz farkli calistirmak.

Faz farkini bir kereye mahsus olusturacagim ve bir daha faz farkina mudahale etmeyecegim.

Niye dersen. Ben oyle istiyorum.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

JOKERAS

Simdi bu 3 timeri ayni anda baslatirsan 3 pwm de ayni fazda olurmi ? Olur.
Sen 3 Timerı aynı anda nasıl başlatıyorsun?

Aynı an dediğin,Timerları tek tek aktif ettiğin İnstruction kadar farklı başlar.
Buna aynı an diyebiliyormusun?
Örneğin 1 Timerı başlattın,Saymaya başladı,Sonra 2.Timerı başlattın,sonra 3.
Bunlar aynımı oldu şimdi?Senin mantığına göre yine aynı anda başlamadı zaten.
Bunların aynı olması için bir tur atmaları gerekir.İlk Anda aynı olamazlar.

Velevki aynı anda başladığını varsayalım.
Center mod olunca durum yine aynı noktada eşitlenecek.

Center mod Ortası Sabit Pwm.
Ortanın sağı eşit bir kenar,solu da eşit bir kenar.
Kenar başlangıç veya bitişlerini belirleyen değerleri değiştirmediğin sürece
Aynı Clocttan beslenen Tüm yapı Senkron bir şekilde Devam edecek.

Yukarıda Pdf ekledim,17.Sayfasına bak,yapmak istediğin şey bu değilmi?
Bu ise Adamlar sırf bunun için Asimetrik Pwm özelliği eklemiş.
Sen bunu Timerları Başlatırken gecikmeyle başlatıp aynı sonucu almak istiyorsun.

ARM uzmanı sensin,ben bildiğimi sandığımı,analizimi fikirlerimi anlatıyorum-ruz.
Beğenmiyorsan okumaz geçersin.Öyle değil böyle dersin her üye gibi.
Yok konuyu anlamamışsın Falan filan,belkide sen ne istediğini bilmiyorsun veya anlatamıyorsun.
Sırf Konun Canlı kalsın diye tartışılsın diye fikirlerimi yazıyorum.
Senin yaptığına bak.

Sen en iyi kendin çal kendin oyna.

bulut_01

silin gitsin bu başlığı.
YENİLMEZ..

z

#21
Alıntı yapılan: bulut_01 - 22 Eylül 2022, 21:08:20silin gitsin bu başlığı.

Sebep?

Begenmediysen cik git bu basliktan.

Alıntı YapCenter mod Ortası Sabit Pwm.
Ortanın sağı eşit bir kenar,solu da eşit bir kenar.
Kenar başlangıç veya bitişlerini belirleyen değerleri değiştirmediğin sürece
Aynı Clocttan beslenen Tüm yapı Senkron bir şekilde Devam edecek.

Tamam da en tepedeki ilk mesajimda ne dedigim anlasilmiyor mu?

Ohooo seninle isimiz var. 3 ayri timer var diyorum. Her birinin sayicisi ayri. Hani tek bir counter olsa da tum compare registerleri buna bagli olsa tamam da 3 ayri timer var. Her birinin counteri ayri. Bunlari diledigin zaman enable edip saydirabilir yada durdurabilirsin. Ilk deger atayabilirsin. Sayarken icerigini degistirebilirsin.



Alıntı YapSimdi bu 3 timeri ayni anda baslatirsan 3 pwm de ayni fazda olurmi ? Olur.
Sen 3 Timerı aynı anda nasıl başlatıyorsun?

Simdi laf oyunlari yappma. soft olarak baslatirsan herbirini ard arda baslatmak icin 72Mhz islemcide cok az bir kaybin olur.
Onu da gectim. Birisini master secersen diger ikisini slave yapabilirsin. @Taglinin onerdigi sekilde sen masteri enable ettiginde master da slaveleri enable eder. Gene belki 1 clk falan gecikme olabilir. Derdim zaten o degil.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

bulut_01

z sen form sahibisin sen kimsinki bana cvp veriyorusun bu işleri bilmiyosan git gazate oku seni aşan işlerle kafanı yorma!
YENİLMEZ..

z

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

bulut_01

benim kafa normalde sende kafa yok sordugun sorulardan  :D
YENİLMEZ..

z

#25
Alıntı yapılan: bulut_01 - 22 Eylül 2022, 22:37:58benim kafa normalde sende kafa yok sordugun sorulardan  :D

ARM Cortex bolumune gozumden kacmadiysa tek yazdigin mesaj
Alıntı yapılan: bulut_01 - 22 Eylül 2022, 21:08:20silin gitsin bu başlığı. 
olmus.

Kimin kafasi yok cok belli.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

magnetron


z

Burda bir yere varamazsam orda soracagim.

Hatayi kendimde saniyorum.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

mehmet

Alıntı yapılan: bulut_01 - 22 Eylül 2022, 21:08:20silin gitsin bu başlığı.

İlginizi çekmeyen konulara bakmazsınız,
olur biter.
Beğenmediğiniz konuya da saygısızlık
yaparak cevap vermezsiniz.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

Yuunus

@z yanlis hatirlamiyorsam sen 32f103 ile 3faz surucu zaten yapmistin, center align ile senin isin yok, o sadece pulse 0 noktasinda mi baslayacak yoksa cycle ortasina mi gelecek onu ayarliyor, istedigin faz farkini pwm tablosu ile olusturman gerekmiyor mu, yani faz farki demek: gelecek fazi oturp beklemek degil, yani her faz her an bir acisal degerde olacak yada pwm acisindan bakarsak: her faz her an bir pwm degeriyle mesgul, "0" yada "duty" kadar, yani istedigin isi tek bir timer ile yapabilmen gerekir sanki, yaniliyorda olabilirm.