Jetpack6.2 Jetson orin nx GPIO配置输出python jetson-gpio控制

部署运行你感兴趣的模型镜像

6.2以上的不能直接用jetson-gpio控制,需要配置过引脚才能用,写个笔记记录一下

解决问题的帖子引用

给出了两种方式,一种修改修Pinmux 配置后重新烧录系统。
另一种动态修改引脚配置,用busybox修改寄存器配置,官方修改方法

我这里用busybox修改,因为方便。

1. 获取引脚的 Pinmux 寄存器地址:

步骤 1:检查载板规格说明书。下载
引脚 31,对应 PQ.06
在这里插入图片描述

步骤 2:打开对应设备类型的引脚复用配置电子表格。下载
找到 PQ.06,对应SOC_GPIO33
在这里插入图片描述

步骤3:在 Orin 技术参考手册中找到与 SOC_GPIO33 对应的 PADCTL 寄存器。下载
在这里插入图片描述

2. busybox修改寄存器

配置GPIO11,BOARD编号33为输出
在这里插入图片描述

(1)上面查得:SOC_GPIO33:PQ6:
Pinmux 寄存器基地址为 0x2430000。

  • The Offset is 0x70.
  • The Pinmux register address is 0x2430070.

(2)查询寄存器。

busybox devmem 0x02430070

输出值为 0x00000454。

(3)修改寄存器,设置引脚为输出。

busybox devmem 0x02430070 w 0x004

3. python jetson-gpio控制

github地址:https://github.com/NVIDIA/jetson-gpio,照里面的安装
运行代码

import Jetson.GPIO as GPIO
import time

# Pin Definitions
output_pin = 31  

def main():
    # Pin Setup:
    GPIO.setmode(GPIO.BOARD)  # BCM pin-numbering scheme from Raspberry Pi
    # set pin as an output pin with optional initial state of HIGH
    GPIO.setup(output_pin, GPIO.OUT, initial=GPIO.HIGH)

    print("Starting demo now! Press CTRL+C to exit")
    curr_value = GPIO.HIGH
    try:
        while True:
            time.sleep(1)
            # Toggle the output every second
            print("Outputting {} to pin {}".format(curr_value, output_pin))
            GPIO.output(output_pin, curr_value)
            curr_value ^= GPIO.HIGH
    finally:
        GPIO.cleanup()

if __name__ == '__main__':
    main()

在这里插入图片描述

LED就在闪烁了

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值