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里的资源包下载方法

资源下载

  1. 在ubuntu电脑新建一个文件夹:
    sudo mkdir sources_nano
    cd  sources_nano
  2. 下载以下两个资源包:
    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
  3. 将资源包移到文件夹,并解压(实际操作的时候,请尽量用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/
  4. 解压资源
    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  (若出现报错按照系统提示操作,然后再次输入该行命令)

修改设备树

  1. 安装dtc工具
    sudo apt-get install -y device-tree-compiler
  2. 反编译出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
  3. 修改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模块
    Pe6.png
    将function修改为pwm2,将pull,tristate都修改为0x0.
    找到lcd_bl_pwm_pv0模块
    Lcd bl pwm pv0.png
    将function修改为pwm2,将pull,tristate都修改为0x0.

  4. 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
    Pwm-configuration-1.png
    键盘下选,配置管脚
    Pwm-configuration-2.png
    键盘下选,移动到pwm2和pwm0,并回车确定,有*号出现
    Pwm-configuration-3.png
    保存引脚
    Pwm-configuration-4.png
    重启
    Pwm-configuration-5.png
    指令开启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