myers
February 7, 2023, 7:57am
1
I have a custom-designed carrier board for NANO. I use 12V FAN(maximum rpm: 5000 RPM) and level shift circuit on PWM and tach signal(5V level). Sometimes I will read extremely high rpm.
How can I read the normal rpm?
nvidia@tegra-ubuntu:~$ cat /sys/class/hwmon/hwmon1/rpm_measured
272727
nvidia@tegra-ubuntu:~$ cat /sys/devices/pwm-fan/target_pwm
120
nvidia@tegra-ubuntu:~$ cat /sys/class/hwmon/hwmon1/rpm_measured
263157
nvidia@tegra-ubuntu:~$ cat /sys/class/hwmon/hwmon1/tach_enable
1
nvidia@tegra-ubuntu:~$ cat /sys/class/hwmon/hwmon1/rpm_measured
265486
nvidia@tegra-ubuntu:~$ echo 160 | sudo tee /sys/devices/pwm-fan/target_pwm
[sudo] password for nvidia:
160
nvidia@tegra-ubuntu:~$ cat /sys/class/hwmon/hwmon1/rpm_measured
66371
nvidia@tegra-ubuntu:~$ cat /sys/class/hwmon/hwmon1/rpm_measured
65789
nvidia@tegra-ubuntu:~$ cat /sys/class/hwmon/hwmon1/rpm_measured
48622
nvidia@tegra-ubuntu:~$ cat /sys/class/hwmon/hwmon1/rpm_measured
4133
nvidia@tegra-ubuntu:~$ cat /sys/class/hwmon/hwmon1/rpm_measured
4135
nvidia@tegra-ubuntu:~$ echo 150 | sudo tee /sys/devices/pwm-fan/target_pwm
150
nvidia@tegra-ubuntu:~$ cat /sys/class/hwmon/hwmon1/rpm_measured
3963
nvidia@tegra-ubuntu:~$ cat /sys/class/hwmon/hwmon1/rpm_measured
3944
nvidia@tegra-ubuntu:~$ cat /sys/class/hwmon/hwmon1/rpm_measured
3943
nvidia@tegra-ubuntu:~$ echo 140 | sudo tee /sys/devices/pwm-fan/target_pwm
140
nvidia@tegra-ubuntu:~$ cat /sys/class/hwmon/hwmon1/rpm_measured
51369
nvidia@tegra-ubuntu:~$ cat /sys/class/hwmon/hwmon1/rpm_measured
3785
nvidia@tegra-ubuntu:~$ cat /sys/class/hwmon/hwmon1/rpm_measured
3779
nvidia@tegra-ubuntu:~$ echo 120 | sudo tee /sys/devices/pwm-fan/target_pwm
120
nvidia@tegra-ubuntu:~$ cat /sys/class/hwmon/hwmon1/rpm_measured
32679
nvidia@tegra-ubuntu:~$ cat /sys/class/hwmon/hwmon1/rpm_measured
37128
nvidia@tegra-ubuntu:~$ cat /sys/class/hwmon/hwmon1/rpm_measured
60975
nvidia@tegra-ubuntu:~$ echo 90 | sudo tee /sys/devices/pwm-fan/target_pwm
90
nvidia@tegra-ubuntu:~$ cat /sys/class/hwmon/hwmon1/rpm_measured
23622
nvidia@tegra-ubuntu:~$ cat /sys/class/hwmon/hwmon1/rpm_measured
112781
hello myers,
may I know which Jetpack release version you’re working with?
it’s sysfs for recording the rpm value, could you please dig into kernel driver,
please examine pwm_val
it’s setting correctly within the driver side.
i.e. $public_soruces/kernel_src/kernel/nvidia/drivers/thermal/pwm_fan.c
myers
February 14, 2023, 6:38am
4
Hi Jerry,
The pwm seems to be set correctly but the rpm is abnormal.
static ssize_t fan_target_pwm_store(struct device *dev,
struct device_attribute *attr, const char *buf,
size_t count)
{
struct fan_dev_data *fan_data = dev_get_drvdata(dev);
int ret, target_pwm = -1;
ret = sscanf(buf, "%d", &target_pwm);
if ((ret <= 0) || (!fan_data) || (target_pwm < 0))
return -EINVAL;
mutex_lock(&fan_data->fan_state_lock);
if (target_pwm > fan_data->fan_cap_pwm)
target_pwm = fan_data->fan_cap_pwm;
dev_err(dev, "Debug: target_pwm =%d\n", target_pwm);
fan_update_target_pwm(fan_data, target_pwm);
mutex_unlock(&fan_data->fan_state_lock);
return count;
}
hello myers,
may I also know which Jetpack release version you’re working with?
please check release tag, $ cat /etc/nv_tegra_release
for confirmation.
myers
February 14, 2023, 7:32am
6
Hi Jerry,
Sorry, I use Jetpack4.6.2 .
nvidia@tegra-ubuntu:~$ cat /etc/nv_tegra_release
# R32 (release), REVISION: 7.2, GCID: 30192233, BOARD: t210ref, EABI: aarch64, DATE: Wed Apr 20 21:34:48 UTC 2022
myers
February 20, 2023, 9:20am
10
Hi Jerry,
Do you have any update about the problem?
hello myers
may I know the DT code snippets or relevant drivers for your rpm reading.
myers
February 21, 2023, 7:15am
12
Hi Jerry,
The attachment is my device tree and I don’t modify any drivers. I only use sysfs to get the fan rpm.
tegra210-p3448-0002-p3449-0000-b00.dts (321.8 KB)
please double check you’ve use fan with 5V, also make sure their connections are proper.
Pin1 → GND
Pin 2 → 5V
Pin 3 → Tach
Pin 4 → PWM
RPM measurement should work after proper fan with proper connections used and enable tach from software (i.e. # echo 1 > tach_enable
)
myers
February 22, 2023, 9:03am
14
Hi Jerry,
Yes, I use level shift circuit and the pin define is same with yours. You can find the tach_enable is 1 in the log.
kayccc
March 15, 2023, 2:34am
15
Sorry for the late response, is this still an issue to support? Thanks
myers
March 15, 2023, 7:24am
16
Hi kaycc,
Sure, I don’t find any solution yet. Do you have any suggestions?