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