I need your assistance regarding the abnormal RPM readings I keep on getting from Jetson Xavier NX.
Observations are noted below. Why are the values abnormally large and random? Looking forward to your prompt response. Thanks!
Observations:
- When the fan speed measured by the tachometer is tabulated, the values are ridiculously large and random:
$ while true; do cat /sys/devices/generic_pwm_tachometer/hwmon/hwmon1/rpm; sleep 1; done
1463415
769231
504202
504202
495868
1463415
1538462
1463415
1538462
495868
372671
495868
1500000
1500000
769231
372671
750000
750000
495868
1463415
1500000
1363636
750000
750000
495868
1463415
1500000
504202
495868
495868
1363636
1538462
At least based on the look-up-table below, the RPM shouldn’t exceed hundreds of thousands even if we set PWM to max value of 255
- look-up-table to check the actual fan rotate speed based on PWM settings
$ cd /sys/class/hwmon/hwmon2/
/sys/class/hwmon/hwmon2$ cat cur_pwm
120
/sys/class/hwmon/hwmon2$ cat pwm_rpm_table
(Index, RPM, PWM, RRU, RRD)
(0, 0, 0, 40, 40)
(1, 1000, 130, 2, 2)
(2, 2000, 160, 1, 1)
(3, 3000, 200, 1, 1)
(4, 4000, 255, 1, 1)
(5, 5000, 255, 1, 1)
(6, 6000, 255, 1, 1)
(7, 7000, 255, 1, 1)
(8, 10000, 255, 1, 1)
(9, 11000, 255, 1, 1)
- set and get commands for PWM duty cycle work just fine
$ sudo -i
root:~# echo 255 > /sys/devices/pwm-fan/target_pwm
root:~# cat /sys/devices/pwm-fan/target_pwm
255
root:~# echo 120 > /sys/devices/pwm-fan/target_pwm
root:~# cat /sys/devices/pwm-fan/target_pwm
120
root:~# exit
logout
- interesting even, when i set duty cycle to max (255) and read the RPM values continuously, the values fluctuate as follows:
$ cat /sys/devices/pwm-fan/target_pwm
255
$ while true; do cat /sys/devices/generic_pwm_tachometer/hwmon/hwmon1/rpm; sleep 1; done
2820
2821
2824
2824
2822
2824
2825
2826
2824
2821
2818
2823
2824
2823
2822
2820
2821
2823
2824
2824
2824
2826
2826
- then when i set to min (0), RPM eventually goes 0
$ cat /sys/devices/pwm-fan/target_pwm
0
$ while true; do cat /sys/devices/generic_pwm_tachometer/hwmon/hwmon1/rpm; sleep 1; done
1428571
1538462
750000
1463415
495868
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Additional note:
It seems there’s a similar topic asking if the RPM readings have some sort of multiplier but it was closed without proper response.