Using PWM_D on VIM2

@parumsancto Ihave test it just now . It work fine . Maybe you should use the least release firmware

and check with those command

khadas@Khadas:~$ fdtget /boot/dtb/kvim2_linux.dtb /pwm@c1108640 status
khadas@Khadas:~$ fdtget /boot/dtb/kvim2_linux.dtb /pwm@c11086c0 status

OK, I install VIM2_Ubuntu-xfce-bionic_Linux-4.9_arm64_EMMC_V20191231.img.
Then enable pwm@c1108640

root@Khadas:~# fdtput -t s /dtb.img /pwm@c1108640 status okay

and reboot.
After that

root@Khadas:~# fdtget /boot/dtb/kvim2_linux.dtb /pwm@c1108640 status
root@Khadas:~# fdtget /boot/dtb/kvim2_linux.dtb /pwm@c11086c0 status

Then I try:

root@Khadas:~# echo 1 > /sys/class/pwm/pwmchip4/export
root@Khadas:~# echo 1000000 > /sys/class/pwm/pwmchip4/pwm1/period
root@Khadas:~# echo 500000 > /sys/class/pwm/pwmchip4/pwm1/duty_cycle
root@Khadas:~# echo 1 > /sys/class/pwm/pwmchip4/pwm1/enable

but nothing changed - no meander on pin 35!

@parumsancto not /sys/class/pwm/pwmchip4 , it’s /sys/class/pwm/pwmchip0

root@Khadas:~# echo 1 > /sys/class/pwm/pwmchip0/export
root@Khadas:~# echo 1000000 > /sys/class/pwm/pwmchip0/pwm1/period
root@Khadas:~# echo 500000 > /sys/class/pwm/pwmchip0/pwm1/duty_cycle
root@Khadas:~# echo 1 > /sys/class/pwm/pwmchip0/pwm1/enable

No meander.

Is it normal?

gpio pwm 18 512
warn : (pwmWrite):THis function is not supported by KHADAS Board.

Command “gpio write [pin] [1\0]” works normal.

Are your physical pins surely connected? I have test it yesterday, It work fine . How did you confirm whether it took effect ?

I was connected an oscilloscope to pins 40 and 35. And in parallel was connected LED through resistor (200 Ohm).
After “echo 1 > /sys/class/pwm/pwmchip0/pwm1/enable” no meander on oscilloscope and LED don’t light. If connect anode to pin 20 (not 35) then LED light britely.

@parumsancto You can’t see the light flickering at this frequency, you should only connect an oscilloscope to view.If you can’t adjust the parameters of the oscilloscope, you can use the auto mode

Yes, but I can see different brightness on different duty cycle. Now I see nothing: no light and no meander on oscilloscope.
What other ways to control PWM_D pin?


root@Khadas:/home/khadas# echo 1 > /sys/class/pwm/pwmchip0/export 
root@Khadas:/home/khadas# echo 1000000 > /sys/class/pwm/pwmchip0/pwm1/period
root@Khadas:/home/khadas# echo 500000 > /sys/class/pwm/pwmchip0/pwm1/duty_cycle
root@Khadas:/home/khadas# echo 1 > /sys/class/pwm/pwmchip0/pwm1/enable

Did you follow my steps to test ?

1 Like

I do same.

@parumsancto Do your oscilloscope and the board share the same GND?

Yes. I can see some signals on other pins, but not on pin 35.

@parumsancto Have you made any changes to the board? Except for the hardware problem, I can’t think of other reasons

No. I just install VIM2_Ubuntu-xfce-bionic_Linux-4.9_arm64_EMMC_V20191231.img via USB_Burning_Tool_v2.2.0, then boot to ubuntu, connect via ssh, tunrn on pwm “fdtput -t s /dtb.img /pwm@c1108640 status okay”, reboot and do Using PWM_D on VIM2

I’ll get a new one VIM2 in a couple of weeks. I’ll try the same actions on new one board.
Is there any way to control PWM_D pin width wiringPI library functions?

Can you download this deb package and install , then try again after reboot .

Upload linux-dtb-amlogic-4.9_0.9.2_arm64.deb to /home/khadas and install

root@Khadas:/home/khadas# dpkg -i linux-dtb-amlogic-4.9_0.9.2_arm64.deb
(Reading database … 108291 files and directories currently installed.)
Preparing to unpack linux-dtb-amlogic-4.9_0.9.2_arm64.deb …
Unpacking linux-dtb-amlogic-4.9 (0.9.2) over (0.8.1) …
Setting up linux-dtb-amlogic-4.9 (0.9.2) …
root@Khadas:/home/khadas# reboot now

Trying use PWM_D

root@Khadas:~# echo 1 > /sys/class/pwm/pwmchip0/export
root@Khadas:~# echo 1000000 > /sys/class/pwm/pwmchip0/pwm1/period
root@Khadas:~# echo 500000 > /sys/class/pwm/pwmchip0/pwm1/duty_cycle
root@Khadas:~# echo 1 > /sys/class/pwm/pwmchip0/pwm1/enable

and I see

Trying change duty cycle

root@Khadas:~# echo 800000 > /sys/class/pwm/pwmchip0/pwm1/duty_cycle

Looks like working.


@parumsancto OK, We already know the reason

What is the reason? Why PWM_D didn’t work?
Why gpio pwm [18] [1-1024] didn’t work?

@parumsancto wiringPi in khadas board not supprts Hardware PWM, just software PWM .

Because the pin control use for PWM_D not configiure in dts.