APEX ORIN NANO GPIO 数字输出#

硬件连接#

接口引脚定义#

接口名称

DB9针脚序号

接口说明

设备节点

DI_0

1

GPIO IN

/dev/gpio/di0

DI_1

2

GPIO IN

/dev/gpio/di1

DO_0

3

GPIO OUT

/dev/gpio/do0

DO_1

4

GPIO OUT

/dev/gpio/do1

GND

6-9


DO硬件规格#


说明

应用条件

Vref

用户外部供电

3.3V~36V

R

用户外接上拉电阻

R>Vref/0.5A(0.5A为DO芯片的驱动电流最大值)

R电阻封装耐受功率>Idrv²*R(Idrv = Vref/R)

Vout

当输出逻辑高时,Vout = Vref

当输出逻辑低时,Vout = 0

Vout对接外部设备的IO端口使用。

禁止外部电源直连到Vout,否则导致Vout端口启动被动保护,导致IO信号异常。

emitt

Emitter的缩写,发射极

emitt引脚需与外部设备的IO GND直接连接。

colle

Collector的缩写,集电极


DO使用方式#

对GPIO接口使用的示例如下

sudo /opt/miivii/features/gpio/bin/miivii_set_do_level <DO number> <level: 0/1> <duration(seconds) of level>

# <DO number>:表示DO的序号,0表示DO1,1表示DO1,以此类推;
# <level: 0/1>:表示需要设置的电平,0表示低电平,1表示高电平;
# <duration(seconds) of level>:电平持续时间,单位为秒。在此期间,DO的电平为<level: 0/1>的状态;超过电平持续时间后,DO恢复为之前状态。
# 请注意,Linux内核从4.8版本开始,GPIO  SYSFS接口被标为过时,并且在Jetpack 6.0开始不再支持,并推荐通过libgpiod来进行GPIO操作。因此不支持不设置保持时间的方式。

# 例: 设置DO0为高电平,保持时间为20秒。
#sudo /opt/miivii/features/gpio/bin/miivii_set_do_level 0 1 20

示例代码编译

cp -r /opt/miivii/features ~/
cd ~/features/gpio
sudo make;

GPIO问题排查#

现象:设备开机后串口无法通信#

解决办法:#

硬件环境检查

操作步骤

​检查物理接口状态

- 观察串口接口是否存在变形、断裂或氧化等物理损坏。
- ​**若发现损坏**:联系设备厂商售后服务。

​交叉验证测试

- ​**方法1**:将串口线缆及外设连接到另一台正常设备,测试能否通信:
  - ​**另一台设备正常** → 当前设备硬件故障,需联系售后;
  - ​**另一台设备异常** → 检查线缆或外设是否损坏。
- ​**方法2**​(无其他设备时):
  - 使用测试线短接当前设备的两个串口(例如串口A与串口B)。
  - 通过串口调试工具测试自发自收:
    - ​**收发正常** → 原外设或线缆故障;
    - ​**收发失败** → 设备硬件或系统异常。

短接测试

- 使用杜邦线将故障串口口和其他串口口进行短接,使用串口调试工具收发验证RS232/485/422引脚定义以及收发验证方法参考使用手册
    - 如两个串口口可正常通信,则建议检查线缆以及串口外设是否存在故障
    - 如两个串口口不可正常通信,则执行"排查项:检查串口是否正确配置"

串口配置检查

操作步骤

​查看当前串口配置

- 

在终端输入命令(根据实际串口节点调整,如/dev/ttyS0):

# 查看波特率等参数  
stty -F /dev/ttyS0 -a  
- ​**关键参数**:
  - 波特率(**baud rate**)需与外设完全一致(例如115200、9600等)。

​修正配置问题

- ​**若波特率不一致**:
  - 

修改串口配置,使其与外设匹配(需管理员权限):

 # 示例:设置为115200波特率 
 stty -F /dev/ttyS0 115200 
- ​**若配置一致仍失败**:进入系统环境排查。

系统镜像验证

操作步骤

​重新刷写系统镜像

- 从设备厂商获取最新系统镜像文件,完成刷写(操作前备份数据)。
- ​**刷写后验证**:
  - ​**通信恢复** → 原系统软件环境异常,需自行排查配置;
  - 

仍异常 → 运行诊断脚本提交日志:

# RS232串口诊断(示例)  
curl -sSL https://support.example.com/diagnose_rs232.sh | sh  
# RS485/422串口诊断(示例)  
curl -sSL https://support.example.com/diagnose_rs485.sh | sh