Pulse Width Modulation (PWM)
GPIO | |||
---|---|---|---|
PWM-ECAP0 | pwmchip0/pwm0 | GPIO-12 | k3-am67a-t3-gem-o1-pwm-ecap0-gpio12.dtso |
PWM-ECAP1 | pwmchip1/pwm0 | GPIO-16 | k3-am67a-t3-gem-o1-pwm-ecap1-gpio16.dtso |
PWM-ECAP2 | pwmchip2/pwm0 | GPIO-18 | k3-am67a-t3-gem-o1-pwm-ecap2-gpio18.dtso |
PWM-0A | pwmchip3/pwm0 | GPIO-5 | k3-am67a-t3-gem-o1-pwm-epwm0-gpio5.dtso |
PWM-0B | pwmchip3/pwm1 | GPIO-14 | k3-am67a-t3-gem-o1-pwm-epwm0-gpio14.dtso |
PWM-1A | pwmchip5/pwm0 | GPIO-6 | k3-am67a-t3-gem-o1-pwm-epwm1-gpio6.dtso |
PWM-1B | pwmchip5/pwm1 | GPIO-13 | k3-am67a-t3-gem-o1-pwm-epwm1-gpio13.dtso |
PWM-2A | pwmchip7/pwm0 | FAN header | k3-am67a-t3-gem-o1-gpio-fan.dtso |
k3-am67a-t3-gem-o1-pwm-epwm0-gpio5-gpio14.dtso
PWM-1A ve PWM-1B birlikte aktif etmek için: k3-am67a-t3-gem-o1-pwm-epwm1-gpio6-gpio13.dtso
pwmchip3
ve pwmchip5
çipleri iki kanala sahiptir ve her bir kanal bir PWM cihazı olarak kullanılabiir.
Ancak bir PWM çipinin iki kanalına (örneğin PWM-0A ve PWM-0B) farklı periyot değerleri ATANAMAZ.
İki kanala aynı periyot değeri verildiği sürece farklı duty-cycle atanmasında bir sakınca yoktur./boot/uEnv.txt
dosyasındaki overlays
değişkenine
eklenmelidir. Overlay’ler hakkında detaylı bilgiye Device Tree bölümünden
erişilebilir.
Tüm overlay’ler aktif edildiğinde 1 tanesi FAN header’ından 7 tanesi 40-pin header’dan olmak üzere 8 ayrı PWM
arayüzü mevcuttur.
/sys/class/pwm
dizininden erişilebilmektedir. Bir PWM cihazını kullanabilmek için öncesinde export
işlemi yapılmış olmalıdır. Örneğin yukarıdaki tablo incelendiğinde PWM-ECAP0
arayüzünün pwmchip0
çipinin pwm0
cihazına karşılık gelmekte olduğu görülmektedir. Aşağıdaki komut ile export
yapıldıktan sonra
/sys/class/pwm/pwmchip0/pwm0
cihazı oluşur. echo 0
yazmamızın sebebi pwm0
yani 0
numaralı cihaz olmasıdır.
PWM-0B
arayüzü kullanılmak isteniyorsa aşağıdaki komutta gösterildiği gibi pwmchip3
çipinin pwm1
cihazı aktif edilmelidir. echo 1
yazmamızın sebebi pwm1
yani 1
numaralı cihaz olmasıdır.
export
işleminin ardından nanosaniye cinsinden period
ve duty_cycle
değişkenleri aşağıdaki örnekte gösterildiği
şekilde istenen değerlere ayarlanıp cihazın enable
değişkenine 1
atandıktan sonra PWM çıktısı alınabilir.
enable
değişkenine 0
atanabilir.
unexport
işlemi yapılabilir. Bu işlem sonrasında cihaz
sistemden kaldırılacaktır. echo 0
yazmamızın sebebi pwm0
yani 0
numaralı cihaz olmasıdır.