Jetson-nano-pwm
来自Waveshare Wiki
PWM
官方B01套件请直接参考打开PWM.
Jetson Nano B01 带emmc模组版本,也就是国产套件,无法通过jetson-io.py来直接配置40PIN引脚。这里提供直接修改设备树文件的方式来开启pwm. 笔者目前只验证了JetPack4.6.2, 本次操作需要重装系统,请用户谨慎操作。
硬件准备
1. Ubuntu电脑主机或者虚拟机
2. Jetson Nano 主板
3. Micro USB数据线
软件设置 (Host PC)
需要在系统资源上修改设备树文件,如果你之前用SDK Manager安装过系统镜像,可以直接在上面修改。 如果没有的话,请参考以下资源下载部分先进行操作,以下资源包是Jetpack4.6.2版本的,如果你需要别的版本资源包下载,请参考FAQ里的资源包下载方法。
资源下载
-
在ubuntu电脑新建一个文件夹:
sudo mkdir sources_nano cd sources_nano
- 下载以下两个资源包:
https://developer.nvidia.com/embedded/l4t/r32_release_v7.2/t210/jetson-210_linux_r32.7.2_aarch64.tbz2 https://developer.nvidia.com/embedded/l4t/r32_release_v7.2/t210/tegra_linux_sample-root-filesystem_r32.7.2_aarch64.tbz2
- 将资源包移到文件夹,并解压(实际操作的时候,请尽量用tag按键自动补齐指令)
sudo mv ~/Downloads/Jetson-210_Linux_R32.7.2_aarch64.tbz2 ~/sources_nano/ sudo mv ~/Downloads/Tegra_Linux_Sample-Root-Filesystem-R32.7.2_aarch64.tbz2 ~/sources_nano/
- 解压资源
tar -xjf Jetson-210_Linux_R32.7.2_aarch64.tbz2 cd Linux_for_Tegra/rootfs/ tar -xjf ../../Tegra_Linux_Sample-Root-Filesystem-R32.7.2_aarch64.tbz2 cd ../ sudo ./apply_binaries.sh (若出现报错按照系统提示操作,然后再次输入该行命令)
修改设备树
- 安装dtc工具
sudo apt-get install -y device-tree-compiler
- 反编译出dts文件
cd kernel/dtb sudo dtc -I dtb -O dts -o tegra210-p3448-0002-p3449-0000-b00.dts tegra210-p3448-0002-p3449-0000-b00.dtb
- 修改dts文件
sudo cp tegra210-p3448-0002-p3449-0000-b00.dts tegra210-p3448-0002-p3449-0000-b00-bak.dts sudo gedit tegra210-p3448-0002-p3449-0000-b00.dts
找到pe6模块
将function修改为pwm2,将pull,tristate都修改为0x0.
找到lcd_bl_pwm_pv0模块
将function修改为pwm2,将pull,tristate都修改为0x0.
- Ctrl+S保存文件,并重新编译为dtb. 注意,如果你还需要修改SD卡等操作,请一起操作。主要不要修改错位置,否则容易导致系统无法正常启动。
sudo dtc -I dts -O dtb -o tegra210-p3448-0002-p3449-0000-b00.dtb tegra210-p3448-0002-p3449-0000-b00.dts
重新烧录系统
-
将nano设置为recovery烧录模式,接入ubuntu电脑。注意,这里不支持只更新dtb分区,因此需要重新烧录整个系统,烧录系统后需要重新做开机配置,因此,请提前将HDMI屏幕和键盘连接到nano上。
cd ../../ sudo ./flash.sh jetson-nano-emmc mmcblk0p1
完成开机配置
在终端输入以下指令
echo 0 > /sys/class/pwm/pwmchip0/export echo 8333333 > /sys/class/pwm/pwmchip0/pwm0/period echo 4166667 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable sudo cat /sys/kernel/debug/pwm
官方B01套件打开PWM
- 终端输入
sudo /opt/nvidia/jetson-io/jetson-io.py
选择Configure Jetson 40Pin Header
键盘下选,配置管脚
键盘下选,移动到pwm2和pwm0,并回车确定,有*号出现
保存引脚
重启
指令开启PWM
echo 0 > /sys/class/pwm/pwmchip0/export echo 8333333 > /sys/class/pwm/pwmchip0/pwm0/period echo 4166667 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable sudo cat /sys/kernel/debug/pwm