nvidia xavier nx平台PWM模块调试
1. 前言
使用GPIO 7作为PWM8和GPIO 14作为PWM 7
在发布32.4.1版本上使用Jetson_Xavier_NX_Module_Pinmux_Configuration_Template。
提到的引脚作为gpio工作,但我无法将它们配置为pwm。
2.修改cfg文件
不像Jetson Nano,
Xavier NX使用cfg文件(tegra19x-mb1-pinmux-p3668-a01.cfg)
来控制pinmux而不是dtb。
我能够看到GPIO14作为PWM工作,而我不能看到GPIO7作为PWM。
因此,我将GPIO14的cfg设置复制到tegra19x-mb1-pinmux-p3668-a01.cfg中的GPIO7中。
从电子表格创建dts文件后,请检查下面路径下的README文件,以使用python脚本生成新的cfg文件。
~/nvidia/nvidia_sdk/JetPack_4.4_DP_Linux_DP_JETSON_XAVIER_NX/Linux_for_Tegra/kernel/pinmux/t19x$ ls
addr_info.txt mandatory_pinmux.txt pinmux-dts2cfg.py README.txt
gpio_addr_info.txt pad_info.txt por_val.txt
3. 调试结果
我又试了一次,结果还是一样。GPIO14可以工作,但GPIO7不能工作。
我修改了(tegra19x-mb1-pinmux-p3668-a01.cfg),将GPIO7的值改为GPIO14,如下所示。cfg文件中“GPIO14”的值为
pinmux.0x0243d038 = 0x00000410; # gp_pwm2_px2: gp, tristate-enable, input-disable, lpdr-disable
但GPIO7的值为:
pinmux.0x0243d030 = 0x00000415; # gp_pwm3_px3: rsvd1, pull-down, tristate-enable, input-disable, lpdr-disable. So I changed GPIO7 to
pinmux.0x0243d030 = 0x00000410; # gp_pwm3_px3: gp, tristate-enable, input-disable, lpdr-disable
在编译& 刷机后,我使用下面的说明来尝试触发模块上的PWM信号:
为了弄清楚GPIO7是否映射到3个pwm器件中的任何一个。
(3280000.pwm, 32c0000.pwm, 32f0000.pwm)
我在所有3上尝试了这些命令,并探测了一个pwm信号的引脚没有成功
CONFIG_PWM_SYSFS=y
cd 32X0000.pwm/pwm/pwmchipY
echo 0 > export
cd pwm0
echo 200000 > period
echo 100000 > duty_cycle
echo 1 > enable
4. 检查pinmux
GPIO 7是PWM 8, GPIO14是PWM5
gpio7:
pinmux.0x02430040 = 0x00000056; # soc_gpio44_pr0: rsvd2, pull-down, tristate-enable, input-enable, io_high_voltage-disable, lpdr-disable
gpio14:
pinmux.0x02434090 = 0x00000414; # soc_gpio12_ph0: rsvd0, pull-down, tristate-enable, input-disable, lpdr-disable
在两个寄存器中都将值改为0x455并检查PWM信号吗?
测试后没有任何改变。
GPIO 14在示波器上仍然显示为PWM信号,但GPIO7保持在0。
在这个cfg文件中进行了更改:
tegra19x-mb1-pinmux-p3668-a01.cfg。
该文件存在于两个地方,都被修改了。
更改如下:
pinmux.0x02430040 = 0x00000455; # NVIDIA says GPIO7 = PWM8
pinmux.0x02434090 = 0x00000455; # NVIDIA says GPIO14 = PWM5
在pinmux电子表格上,GPIO07与GP_PWM8相同,但GPIO14是GP_PW6。
GPIO7应该是这样的
pinmux.0x02430040 = 0x00000401; # soc_gpio44_pr0: gp, tristate-disable, input-disable, lpdr-disable
GPIO14是这样的:
pinmux.0x02434098 = 0x00000401; # soc_gpio13_ph1: gp, tristate-disable, input-disable, lpdr-disable
5. 查看dts
将pinmux配置电子表格与pinmux.cfg文件进行比较,
我确定GPIO14/PWM6的寄存器是0x02434098,而GPIO7/PWM8的寄存器是0x02430040。
就像我之前说的,GPIO14/PWM6默认情况下工作,没有任何改变,
但是当GPIO7/PWM8被分配与GPIO14/PWM6相同的值时,GPIO7/PWM8保持低值,
例如0x455, 0x401, 0x409, 0x405, GPIO7/PWM8从不工作。
然而,GPIO14/PWM6的值变化似乎只影响启动duty_cycle/ cur_pwm值,即它是130还是0。
所有与PWM相关的节点在设备树上都是开启的
wm@3280000 {
status = “okay”;
};
pwm@32c0000 {
status = “okay”;
};
pwm@32d0000 {
status = “okay”;
};
pwm@32f0000 {
status = “okay”;
};
pwm@c340000 {
status = “okay”;
};
6. 对比gpio寄存器
正确的寄存器是:
gpio7:(Pin 32 on 40-pin header)
pinmux.0x02430040 = 0x00000056; # soc_gpio44_pr0: rsvd2, pull-down, tristate-enable, input-enable, io_high_voltage-disable, lpdr-disable
gpio14: (FAN pin present on SOC)
pinmux.0x02434090 = 0x00000414; # soc_gpio12_ph0: rsvd0, pull-down, tristate-enable, input-disable, lpdr-disablegpio7:(40针头部上的32针)
pinmux 0x02430040 = 0 x00000056;# soc_gpio44_pr0: rsvd2,下拉,trstate -enable, input-enable, io_high_voltage-disable, lpdr-disable
gpio14:(FAN引脚在SOC上)
pinmux 0x02434090 = 0 x00000414;# soc_gpio12_ph0: rsvd0, pull-down, trstate -enable, input-disable, lpdr-disable
pinmux 0x02434098 = 0 x00000401;# soc_gpio13_ph1是CPU_OVR_VID引脚,也指向GPIO14。
风扇PWM引脚在默认情况下是不使用的,使用CPU_OVR引脚,它已经被配置为PWM。
所以是有效的
在GPIO14的工作case中转储以下寄存器
0x02434098 (GPIO14: PWM6: CPU_OVR_VID)
0 x02434090 (GPIO14 PWM5):
以下是将0x02430040更改为0x401后的值。同时,在示波器的40引脚头上的pin32是0。
busybox devmem 0x02430040
0x00000401
busybox devmem 0x02434090
0x00000414
busybox devmem 0x02434098
0x00000401
7. 查询gpio是否在切换
不使用引脚作为PWM,保持gpio
短针31和32在40针头部
echo 424 > /sys/class/gpio/export
echo 416 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio416/direction
echo in > /sys/class/gpio/gpio424/direction
echo 1 > /sys/class/gpio/gpio416/value
cat /sys/class/gpio/gpio424/value
##在32脚测量电压,应该是3.3V
echo 0 > /sys/class/gpio/gpio416/value
cat /sys/class/gpio/gpio424/value
##检查32脚电压,应该是0V
重复步骤7的步骤3-4次。
- 分享
- 举报
-
浏览量:7957次2021-06-04 16:25:58
-
浏览量:9458次2021-04-27 17:56:41
-
浏览量:7442次2021-05-11 17:51:48
-
浏览量:9488次2021-05-26 14:17:15
-
浏览量:11483次2021-02-05 14:30:37
-
浏览量:10896次2021-05-06 16:22:01
-
2021-05-06 16:03:00
-
浏览量:5259次2021-05-10 17:48:42
-
浏览量:7103次2021-05-11 17:04:57
-
浏览量:9249次2021-05-19 17:32:00
-
浏览量:7511次2021-05-20 17:08:14
-
浏览量:9415次2021-05-25 17:31:40
-
浏览量:7114次2021-05-20 16:37:42
-
浏览量:7931次2021-05-25 15:32:16
-
2021-04-23 15:54:21
-
浏览量:4697次2021-05-17 17:26:59
-
浏览量:7213次2021-07-31 15:26:23
-
浏览量:5938次2021-05-28 13:52:17
-
浏览量:4314次2021-07-22 14:48:32
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
free-jdx
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明