Farklı Frekanslarda PWM İhtiyacı

Başlatan baran123, 15 Haziran 2018, 16:43:04

baran123

Bir proje için minimum 16 kanal PWM'e ihtiyacım var.
Bunun için STM32F103 kullanacağım fakat bir problem.
Her Timer 4 kanal PWM çıkarsa da bunların birbirinden bağımsız şekilde sadece Duty değerlerini değiştirebiliyoruz.
Sonuçta frekansları ortak bir Timer'dan geliyor.

16 Kanal 0-1khz PWM'i nasıl elde edebilirim. Her bir çıkışın frekansı farklı olmalı.

Yazılımsal olarak yapmayı düşünüyorum fakat bu işi yapan harici bir entegre varsa daha rahat olur.
Frekansın düşük olması sanırım işimi zorlaştırmaz.

Bu konuda fikirlerinize ihtiyacım var.

İyi çalışmalar.

Mucit23

STM32F103'de her bir Timerin Genellikle 4 Kanalı var. Fakat Bu kanalların hepsi ortak bir sayıcı kullanıyor. Dolayısıyla kanallardan farklı frekanslarda çıkışlar almak mümkün değil gibi.

94onur94

#2
Herhangi bir timerı aktif edip, istediğin maksimum frekansa göre kurulumu yap. Timer kesmesi içinde xxx değişkenini arttır ve istenilen değere geldiğinde işlem yaptırıp değeri sıfırla. Bu sayede istediğin sayıda pwm oluşturabilirsin.

Basit bir örnek; timer1 1KHz olarak set edildi. Saniyede 1000kez kesme oluşacak. Pwm1 değişkeni timer kesmesi içinde arttırılacak. Pwm1 değeri 2 oldumu led toggle komutu gerçekleşecek ve pwm1 sıfırlanacak. Bu sayede 1KHz olarak kurulu timer içinde 500Hz frekanslı %50 duty cycle pwm elde edilir. Değişken sıfırlama değerleri değiştirilerek duty cycle 0-100 arasında ayarlanabilir.

Umarım açıklayıcı olmuştur. Kolay gelsin...

Melih1802

Bu 2 üründen birini işlencin ile kontrol ederek yapabilirsin.

1Hz-150 Khz Sinyal Üreteci PWM Kurulu Modülü Darbe Frekansı Görev Döngüsü Ayarlanabilir Modülü LCD Ekran 3.3 V-30 V 1Hz-150 Khz
 http://s.aliexpress.com/QnABfumU?fromSns=Copy to Clipboard

2CH Bağımsız PWM Üreteci Görev Döngüsü Darbe Frekansı LED Dijital Tüp Modülü
 http://s.aliexpress.com/U7RfUvmq?fromSns=Copy to Clipboard

baran123

@94onur94 hocam bahsettiğin yöntemi anladım bunu deneyeceğim.

@Melih1802 hocam bu sistem yapacağım kart üzerinde olacak ve 16 kanal olması gerekiyor o yüzden bu tarz modüller kullanamam.

Melih1802

Modül üzerindeki entegreyi temin etsen ve 16 tane yaparak bunların butonlarını STM ile kontrol etsen olmuyormu?

baran123

Hocam ilk attığınız üründe zaten STM8S003 çipi var.
2. Üründe entegre bilgisi verilmemiş ama oda muhtemelen STM8S çipi.

16 tane böyle çip koymak kartı iyice büyütür.
Aslında bunu tek başına yapan 16 çıkışlı bir entegre olsa çok iyi olur.

Eğer yazılımsal çözüm işimi görmezse mecbur böyle küçük çipler ile halledeceğim.

ByTEK

#7
Alıntı yapılan: baran123 - 15 Haziran 2018, 20:41:47Hocam ilk attığınız üründe zaten STM8S003 çipi var.
2. Üründe entegre bilgisi verilmemiş ama oda muhtemelen STM8S çipi.

16 tane böyle çip koymak kartı iyice büyütür.
Aslında bunu tek başına yapan 16 çıkışlı bir entegre olsa çok iyi olur.

Eğer yazılımsal çözüm işimi görmezse mecbur böyle küçük çipler ile halledeceğim.

Benzer bir algoritmada shift register kullanmadan normal pinler kullanılarak yapılamaz mi ?

@Mucit23

http://arectron.com/yazilim/stm32f103-74hc595-ile-shift-pwm.html

Mucit23

Zaten yapılsa yazılımsal olarak yapılacak. Shift register ile yapılabilir

Melih1802


Sozuak

Alıntı yapılan: Melih1802 - 15 Haziran 2018, 22:24:19PCA9685 iş görürmü.

...All outputs are set to the same PWM frequency...