stm32f103c8 TIMER 2 ,3, 4 sorunum

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

z

Ilk bir kac donguden sonra neden esitlensin. Timer clock sinyalinin yolunu bir kereligine aciyorsun bir daha dokunmuyorsun. (Timer Clk = Clk AND Enable gibi)
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Yuunus

Alıntı yapılan: z - 23 Eylül 2022, 10:37:22Ilk bir kac donguden sonra neden esitlensin. Timer clock sinyalinin yolunu bir kereligine aciyorsun bir daha dokunmuyorsun. (Timer Clk = Clk AND Enable gibi)
velevki dedigin gibi sirali aktivasyon bu is icin yeterli diyelim, kaymayi nasil onleyeceksin, sence bu is sansa birakilir mi, ama triger ile her dongude bu risk ortadan kalkar, bence bu tip bir uygulamada clock aktif etmek sakat.

z

#47
Kayma nasil olabilir?

Kayma olmasi icin

1) Timerlardan birisini susturup tekrar baslatman lazim.
2) Yazilimla Update event uretmen lazim.
3) CNT registerinin icerigini degistirmen lazim.
4) ARR ya da PSC registerini degistirmen lazim.

Ha eger ki bunlari yapmadigim halde timer counter degeri kayarsa o an STM32f103C8'i belki de ST yi terk ederim.




23 Eylül 2022, 21:33:24
Kayma nasil olabilir?

Kayma olmasi icin

1) Timerlardan birisini susturup tekrar baslatman lazim.
2) Yazilimla Update event uretmen lazim.
3) CNT registerinin icerigini degistirmen lazim.
4) ARR ya da PSC registerini degistirmen lazim.

Ha eger ki bunlari yapmadigim halde timer counter degeri kayarsa o an STM32f103C8'i belki de ST yi terk ederim.


Alıntı yapılan: Yuunus - 23 Eylül 2022, 11:21:16velevki dedigin gibi sirali aktivasyon bu is icin yeterli diyelim, kaymayi nasil onleyeceksin, sence bu is sansa birakilir mi, ama triger ile her dongude bu risk ortadan kalkar, bence bu tip bir uygulamada clock aktif etmek sakat.

Olayi yanlis anlamissin. Trigger islemini de bir kereligine yapiyorsun. Init isleminden sonra bir daha yapmiyorsun.

Master Timera basla diyorsun. Master da Slave Timerlara basla diyor.

Eger dedigin gibi her dongude bu islemi yaparsan jitter olusturursun.

Ister dedigim gibi timerlari sirayla bekleyerek baslatin. Isterseniz  Timerlarin CNT degerlerini ilk basta set edin. Sonra Masteri baslatin Master de slave leri baslatsin.

Yalniz ikinci yontem gicik is simdiden soyleyeyim. Zira eger faz kaymasini PWM Peryod/2 den buyuk PWM peryoddan kucuk yapacaksaniz Timerin U/D bitinin konum degistirmesini beklemeniz lazim.
Imkansiz degil ama fazla basit bir kurulum da degil. Boyle bir kurulum fonskiyonunu ST nin verdigi kutuphanelerde bulacaginizi da sanmam.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

#48
Yalniz  durun  durun hala amacimi yanlis anlamis olabilirsiniz. Yukarida verdigim faz kaymasi orneklerini timerlar ayni cmpr degerline sahipken cizdim. (En tepedeki ilk mesajda oyle ornek verdim cunku)

PWM duty degerlerini degistirdigimde faz kaymasi olacagini dusunebilirsiniz. Haklisiniz da.

Fakat ben bir kereligine kurup calistirdigim Timerlarin center align modunda tam orta noktalari arsaindaki faz farkindan bahsediyorum.

Yani timerlari oyle bir kurayim ki Timerlarin PWM sinyallerinin tam orta noktalari arasinda faz farki olussun.

Eger farkli CMPR degerleri icin faz farki korunsun gibi bir istek zaten olamaz. Sacmalanmis olur.

Yukarida verdigim Kodlar halen sapitmadi. Sapitmaz da. Sapitmasi icin gerekli sartlari yazdim zaten.

Dalga seklinde cikan kenarlari referans vererek konuyu izah etmeye calistim.  Isin aslini bir daha aciklamak uzere grafik vereyim.



Arkadaslarin kafa karisikliginin asil sebebinin Timer 2, Timer 3, Timer 4 u ayni timerin CH2, CH3, CH4 sanmalarindan kaynaklandigi belli.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Yuunus

anlasilmayan birsey yok ama sende anlasildigini anlamadin oraya takildin kaldin

z

Hah anlasildiysa tamam o zaman.

Peki bu sekilde fazlari kaydirilmis 3 timerin uretecegi pwm sinyalleri uygulamada bize nasil bir avantaj saglar?

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

JOKERAS

z, Ben olayı çözdüğümü sanıyorum.Sanıyorum diyorum çünkü
ne elimde Stm kiti var,ne de bildiğim bir işlemci.
Hayatımda ilk kez Pdf'ini bu konu vasıtasıyla açıp incelediğim bir İşlemci.
Bunu istediğin yere sor,İstersen STM Cips fabrikasına sor.
Bu mantıkla çözmen çoook zor.Ama sen dirayetli birisin çözebilirsin.
Ve tekrar ediyorum olay o kadar basit ve Bir o kadar da zor.

Bu sorun eğer çözülürse Şahane bir şey olacak.
Yalvarmanı bekliyorum açıkçası.Hatta yalvarman bile yetmeyebilir :'( 

z

Olayi cozdum zaten kod bir kac saatten beri calisiyor. Scop ekraninda sinyaller gozumun onunde.

Fakat neden timerlarin enable edilme sirasi onemli onu bilmiyorum.

Yalvartma beni senin yontemi de gorelim.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

JOKERAS

Olmaaaz,Sen olayı yukarıda anlattığın şekilde çözdünse olmaz o.
Kaç saat çalışıyor olması hiç bir işe yaramayan bir Kriter.
Sen orada Timerları Kendi kafana göre bir sıra ile aktif ettin.
Sıralaman değişirse Timingler bozulur.Ayrıca Timer Counter değerin
her seferinde şartlara göre Rasgele bir değer alır.

Olay çok basit, zorla biraz kendini:)

z

#54
Yontemime camur atiyorsun ama haksiz yere atiyorsun. Timer counterlara init asamasinda ilk deger yuklersen rastgele deger falan almamis olur.

Timerlari sirayla aktif etmek yerine master slave bagla ve counter iceriklerini daha isin basinda farkli set et.  (Ama gene 4, 2, 3 kuralina uyman gerekecek belki de bu kurali isletemeyeceksin)

Sonucta ayni kapiya varacaklar.



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

JOKERAS

Alıntı yapılan: z - 23 Eylül 2022, 13:11:44Yontemime camur atiyorsun ama haksiz yere atiyorsun. Timer counterlara init asamasinda ilk deger yuklersen rastgele deger falan almamis olur.

Timerlari sirayla aktif etmek yerine master slave bagla ve counter iceriklerini daha isin basinda farkli set et.

Sonucta ayni kapiya varacaklar.

Ben öyle çamur atma Siyaseti gütmem.
Niye rastgele bir değer alacağını olayı anlatınca anlarsın.

devrecii

Timerlerin hepsini çalıştır sıra önemli değil. Hal delay bekleme yerine count registere bak mesela 100 ise diğer timerin count registerine 0 değerini ver daha sonra aynısnı diğer registerde yap.

z

#57
Acaba denememisimmidir?

23 Eylül 2022, 13:20:41
Aslinda birisi cikip kendi kodunu yazip kardesim bende dedigin gibi bir sorun cikmiyor desin isterdim.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

JOKERAS

Alıntı yapılan: z - 23 Eylül 2022, 13:18:46Acaba denememisimmidir?

23 Eylül 2022, 13:20:41
Aslinda birisi cikip kendi kodunu yazip kardesim bende dedigin gibi bir sorun cikmiyor desin isterdim.
Bunu kimse bu mantıkta diyemez ki.
Stm Cips fabrikasındaki Mühendisler bile bu sorunda zorlanabilir, Zira
çok accayip bir mantık var.Accayip te değil aslında günlük hayatta hepimizin
Defalarca şahit olduğu bir mantık.

z

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