关于pwm控制舵机

你好,我想用Xavier的pin15(GPIO27-PWM2)和Xavier NX的pin32(GPIO07)做PWM用来控制舵机。
看到其他文档上写要设置pinmux,请问是否是必须要设置?如果必须要设置,具体的步骤是什么?

下面的文件已从官网下载,但不知道怎样修改能达到要求。
Jetson_AGX_Series_DevKit_Pinmux_Configuration_Template.xlsm
Jetson_Xavier_NX_Pinmux_Configuration_Template_v1.06.xlsm

舵机控制准备使用Jetson.GPIO包,但现在使用示波器无法抓取到对应的方波

hello 1248529,

you may also refer to MB1 Platform Configuration chapter for PWM configurations,
thanks

链接里提到的 /bootloader/<platform|ver>/BCT/和/hardware/nvidia/platform/t19x//tegra194-mb1-bct-pinmux-gpio-P2972-.cfg这些目录,在Xavier里安装的Ubuntu上都找不到,这些应该去哪里修改?
MB1 Image从哪里可以找到?

根据https://elinux.org/Jetson/AGX_Xavier_Update_Pinmux
问题1.
关于xlsm文件的改法,假设设置用Xavier的pin15(GPIO27-PWM2)为PWM,是否只需要把下图红框的位置改为GP_PWM1?


问题2.
为了确定其他的pin的配置跟xlsm模板一致,有什么方法可以比较修改前后的PWM相关的设置?
问题3.
$JETPACK_ROOT/Xavier/Linux_for_Tegra/kernel/pinmux/t19x/README.txt
这个目录是在哪个位置?是通过SDK Manager下载的吗?
问题4.

Flash Device

$ cd JETPACK_ROOT/Xavier/Linux_for_Tegra/ sudo ./flash.sh jetson-xavier mmcblk0p1
这一步是在哪里操作?是Xavier之外的系统吗?跟Xavier应该怎样连接?

hello 1248529, please describe your issue in English for better understanding for all developers.

thanks for your reply,I think I have found the directory,

Please just answer the following questions

Question 1
As for the modification of xlsm file, suppose that Xavier’s pin15 (gpio27-pwm2) is set as PWM, do I just change the position of the red box in the figure below to “GP_PWM1”?

Question 2
In order to make sure that the configuration of other pins is consistent with the xlsm template, how to compare the PWM related settings before and after modification?

Question 4
" Flash Device

$ cd JETPACK_ROOT/Xavier/Linux_for_Tegra/ sudo ./flash.sh jetson-xavier mmcblk0p1"
Is it operating in a system other than Xavier? How should I connect to Xavier?

hello 1248529,

those columns mark as light orange were settings filled by customers.
you should found the warning messages while you configure PWM as Input, please also revise it for proper settings.

you may compare the generated dtsi files for verification.

I’m not sure I understand your Question-3 and 4. you may install JetPack release image with SDKManager.
after that, there will be release image store to your local machine, you can reflash the board with the flash scripts.
thanks

thanks for your reply
About Question1, Is it working by just “GP_PWM1”,“Output” are setted

NewQuestion,
Is it same If I want to change pinmux of Xavier_NX?
use Jetson_Xavier_NX_Pinmux_Configuration_Template_v1.06.xlsm to generate dtsi file then use python to generate tegra19x-mb1-pinmux-p2888-0000-a04-p2822-0000-b01.cfg to reflash the board?
Which dtsi file is used by Xavier Nx default?

hello 1248529,

please refer to flash messages about dtsi file you’re using,
for example,

[ 464.1538 ] Writing partition kernel-dtb with tegra194-p3668-all-p3509-0000_sigheader.dtb.encrypt
[ 464.1617 ] [................................................] 100%

besides using pinmux spreadsheets for board customization,
you might also check Configuring the 40-Pin Expansion Header chapter for an alternative way by using Jetson‑IO python tool to have pin configuration.
thanks

I tried to modify the xlsm file and then flash to the board, but it didn’t work。
Step1.modify xlsm file


Step2.use pinmux-dts2cfg.py to generate tegra19x-mb1-pinmux-p2888-0000-a04-p2822-0000-b01.cfg
Step3.sudo ./flash.sh jetson-xavier mmcblk0p1
Step4.use PWM in python(pwm = GPIO.PWM(output_pin, frequency_hz))

cfg file(.cfg file is not allowed to upload,so changed to .cfg.txt):
tegra19x-mb1-pinmux-p2888-0000-a04-p2822-0000-b01.cfg.txt (29.6 KB)

The problem when python called
File “gpioDemo.py”, line 50, in
main()
File “gpioDemo.py”, line 33, in main
pwm = GPIO.PWM(output_pin, frequency_hz)
File “/usr/local/lib/python3.6/dist-packages/Jetson/GPIO/gpio.py”, line 587, in init
self._ch_info = _channel_to_info(channel, need_pwm=True)
File “/usr/local/lib/python3.6/dist-packages/Jetson/GPIO/gpio.py”, line 115, in _channel_to_info
return _channel_to_info_lookup(channel, need_gpio, need_pwm)
File “/usr/local/lib/python3.6/dist-packages/Jetson/GPIO/gpio.py”, line 109, in _channel_to_info_lookup
raise ValueError(“Channel %s is not a PWM” % str(channel))
ValueError: Channel 15 is not a PWM

hello 1248529,

you’re asking NX pinmux issue in post#10 and using Xavier’s pinmux in post#12;
may I have your confirmation that which platform you’re working with?
thanks

Xavier
head -n 1 /etc/nv_tegra_release

R32 (release), REVISION: 1.0, GCID: 14531094, BOARD: t186ref, EABI: aarch64, DATE: Wed Mar 13 07:41:08 UTC 2019

The platform of post #12 is Xavier,Version information:
head -n 1 /etc/nv_tegra_release

R32 (release), REVISION: 1.0, GCID: 14531094, BOARD: t186ref, EABI: aarch64, DATE: Wed Mar 13 07:41:08 UTC 2019

In fact, the PWM settings of both platforms need to be solved,
using post #11 ( /opt/nvidia/jetson-io/jetson-io.py), The Problem in Nx platform is resolved,thanks