Stm32 · Aralık 20, 2014 0

TLC5940 ile pwm

TLC5940Merhaba, uzun zaman oldu ne bloğuma nede kendime pek zaman ayıramıyorum bu aralar. Sebep belkide motosikletimi satmış olmam olabilir.
Malum bir hexapod işine girdim yazıyı takip ediyorsunuzdur diye umuyorum. Projede kullanılacak olan 18 adet RC servo yu kullanabilmek için 18, 20ms lik peryoda sahip pwm in üretilmesi gerekiyor. bunu doğrudan stm32f4discovery kitten alabilirim. ama bu bana 18 adet pin in buraya ayrılması demektir ki yokluk gören 8051 ile 16f84 ile çalışmak zorunda kalan bizim kuşak için pek uygun olmaz.

Aramalarım sonucu TI nin PWM Led driver nın bu iş için uygun olacağını düşündüm. Örnekleride bolca mevcut ama genelde Ardunio (hep yanlış yazarım şimdide doğrumu yanlış mı bilmiyorum) . Bu PWM sürücülerden iki çeşidini denedim TLC5947 ve TLC5940. İkisi arasındaki farklar aşağıda sıralanmıştır.

TLC5940 TLC5947
Data Vin (Min) (V) 3 3
Data Vin (Max) (V) 5.5 5.5
Output Channels 16 24    
Analog Dimming Steps 64
Data Input Serial Serial
Data Transfer Rate (Typ) (MHz) 30 30
Ch to Ch Accuracy (Typ) (+/- %) 1 2
Per Channel PWM Steps 4096 4096
Per Channel Drive (mA) 120 30
LED Voltage (Max) (V) 17 30
Special Features Fault Reporting  Internal GS Clock 
LED Open Detection Thermal Shutdown
Power Good/Error Flag
Operating Temperature Range (C) -40 to 85 -40 to 85

iki sürücüyü birbirinden ayıran fark, kanal sayıları ve PWM in üretilmesi için gerekli olan GSCLK in internal yada external olmasıdır. Benim projemde 50hz lik bir Pwm e ihtiyaç duyduğumdan tlc 5940 seçmiş bulunmaktayım.
 
Aşağıda kodları verilen sürücü ile ilk etapta 50hz lik bir pwm oluşturmadım. Basitce SPI arayüzünden bilgileri gönderdim ve GSCLK üreteke bu PWM i çıkıştaki ledlerde gözlemledim.

 

Ziyaretci : 120