烧录镜像
第一步,balenaEtcher 选择镜像文件
第二步,选择 SD 卡
第三步,现在烧录
校验失败
出错的 balenaEtcher 版本是 v1.19.21
balenaEtcher v2.1.4 重新烧写
上电运行
查看当前发行版类型
更新软件源
GPIO 翻转
点亮 LED
指示灯 LD9
指示灯 LD2
1. ❌LED 极性说明(从原理图可以看出)【不对啊,实测相反】
2. IO_EXP_TEST_LED 在 EVM 上的物理位置
3. 软件层控制 IO_EXP_TEST_LED(Linux)
4. I2C1 设备扫描
5. 创建 python 虚拟环境
安装 python-periphery 模块
🟢LD2 闪烁的python 代码 |
烧录镜像
第一步,balenaEtcher 选择镜像文件
wd_145315tn9lfsal68mqrqls.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
wd_145315vvj5e7bh3hdzg7wg.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
第二步,选择 SD 卡
wd_145315l9a0vgkiz2lgk290.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
第三步,现在烧录
wd_145315jffu315aqkqfz223.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
等待烧录完成
wd_145315iynnaqy5l1q150z1.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
wd_145316i686pvpppy1oop1b.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
烧录完进行校验
wd_145316nu5z44sp8fa3pxf1.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
校验失败
wd_145316x7e4010la5qg4hb7.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
出错的 balenaEtcher 版本是 v1.19.21
wd_145316ljbeljah6ejaq9nt.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
balenaEtcher v2.1.4 重新烧写
烧写成功,果然需要把 balenaEtcher 升级到最新版本。
wd_145316jjv0pssk0tcpb0j3.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
上电运行
wd_145316z3gm5s5g44zimi1j.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
xshell 串口登录
wd_145316if4rr1a44555qm9n.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
wd_145316pjollswhs3zjbkll.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
另一个终端使用 SSH 登陆
wd_145316eqtk8wpxwhzo8bx5.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
wd_145316b8c9gvgsfzq3skm8.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
查看当前发行版类型
lintex9527@am62lxx-evm:~$ cat /etc/os-release
PRETTY_NAME="Armbian-unofficial 25.11.0-trunk trixie"
NAME="Debian GNU/Linux"
VERSION_ID="13"
VERSION="13 (trixie)"
VERSION_CODENAME=trixie
DEBIAN_VERSION_FULL=13.1
ID=debian
HOME_URL="https://duckduckgo.com/"
SUPPORT_URL="https://community.armbian.com/"
BUG_REPORT_URL="https://armbian.atlassian.net/"
ARMBIAN_PRETTY_NAME="Armbian-unofficial 25.11.0-trunk trixie"
更新软件源
修改 /etc/apt/sources.list.d/debian.sources 为以下内容
# Debian 13 (trixie) - 清华大学镜像源 (ARM64 兼容)
Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/debian
Suites: trixie trixie-updates trixie-backports
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/debian-security
Suites: trixie-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
再执行 sudo apt update 和 sudo apt upgrade 即可。
wd_145316ge1c88vsq7svksf7.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
GPIO 翻转
先用 PulseView 逻辑分析仪接 J3.1 和 J2.3 测量默认的电压。
原理图如下:
wd_145316vie0j83wcd80aued.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
wd_145316idoa3paapk7owrtz.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
逻辑分析仪连接实物图
可以看到这两个管脚默认都是低电平。
wd_145316hjeblhxbbowwoe2w.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
【小插曲】见后文, EXP_PS_3V3_EN 在 U11 模块的 P05 管脚上,由 SOC 经 SoC_I2C1 控制TCA6424ARGJR IO扩展芯片输出。实际上内核已经实现此模块驱动绑定到 /dev/gpiochip2 line 5 上。
lintex9527@am62lxx-evm:~/workspace/daerwen-am62l-evm/tests$ sudo gpioinfo -c 2
[sudo] password for lintex9527:
gpiochip2 - 24 lines:
line 0: unnamed input
line 1: unnamed input
line 2: "UART1_FET_SEL" input
line 3: "MMC1_SD_EN" output consumer="regulator-2"
line 4: "VPP_EN" input
line 5: "EXP_PS_3V3_EN" output
line 6: "UART1_FET_BUF_EN" input
line 7: unnamed input
line 8: "DSI_GPIO0" input
line 9: "DSI_GPIO1" input
line 10: unnamed input
line 11: "BT_UART_WAKE_SOC_3V3" input
line 12: "USB_TYPEA_OC_INDICATION" input
line 13: unnamed input
line 14: unnamed input
line 15: "WLAN_ALERTn" input
line 16: "HDMI_INTn" input consumer="kernel"
line 17: "TEST_GPIO2" input
line 18: "MCASP0_FET_EN" input
line 19: "MCASP0_BUF_BT_EN" input
line 20: "MCASP0_FET_SEL" input
line 21: "DSI_EDID" input
line 22: "PD_I2C_IRQ" input
line 23: "IO_EXP_TEST_LED" output
在设置 /dev/gpiochip2 line 5 输出高电平后,即使能 EXP_PS_3V3_EN ,逻辑分析仪观察到 J3.1 的确拉高了。
wd_145316shtp99d6ii8d8wut.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
设置 /dev/gpiochip2 line 5 输出低电平后,逻辑分析仪观察到 J3.1 再次拉低。
点亮 LED
EVM 板载两颗 LED 【注意原理图和EVM用户手册不匹配,是EVM用户手册写错了。】
EVM 用户手册关于 LED 说明如下,实际上这里应该是 LD9。即 LD9 和 LD2 是用户测试 LED。
wd_145317y5b3erd3bxr5ox5b.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
wd_145317xcfyyayyaffnlddc.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
实际上 LD8 是 USB-Type C1 供电指示灯,在 J7 和 J8 中间。
wd_145317q6um6c38638nm8zg.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
wd_145317ys1347myb3b47my4.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
指示灯 LD9
EVM 用户指南有两颗用户测试 LED,这里选择 LD9,原理图上网表名为 SOC_GPIO0_123
但是通过 gpioinfo 查看 gpiochip0 line 123 发现它是呼吸灯。自上电之后快闪两下、停顿一下。
$ sudo gpioinfo -c 0 | grep 123
line 123: unnamed output consumer=am62-sk:green:heartbeat
放弃了,不需要手动控制这个 LD9。
指示灯 LD2
EVM 用户指南有两颗用户测试LED,这里选择 LD2,原理图上网表名为 IO_EXP_TEST_LED。
IO_EXP_TEST_LED 是 AM62L EVM 上的用户测试 LED,由 I²C GPIO 扩展器 TCA6424 控制,不直接连 SoC GPIO。
wd_145317kx1lxfmg100mkmao.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
AM62L EVM 上有两个 GPIO 扩展器(I²C IO Expander):
- U11:TCA6424A I/O Expander 0 (I2C address: 0x22)
- U10:TCA6424A I/O Expander 1 (I2C address: 0x23)
根据 EVM 用户指南 表 2-35 与原理图:
IO_EXP_TEST_LED 属于 I/O Expander 0(U11)的 P27 引脚。
也就是:
IO_EXP_TEST_LED = TCA6424A (0x22) → Port2 → Pin 7
硬件路径如下:
I2C1 (SoC) ──> TCA6424A (U11) ──> P27 Output ──> Rxxx(限流) ──> LD2(LED)──> 3.3V
❌LED 极性说明(从原理图可以看出)【不对啊,实测相反】
因此:
这是“低电平点亮”结构。
2. IO_EXP_TEST_LED 在 EVM 上的物理位置
LD2 在板面上靠近:
这是 EVM 上设计用于调试的小 LED。
wd_145317srhhyxslbprzhbby.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
3. 软件层控制 IO_EXP_TEST_LED(Linux)
因为它不是 SoC GPIO,而是 I2C → TCA6424 → IO 输出,控制方式必须用 I²C。
wd_145317dp29zmp9npz693me.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
wd_145317oswfs7swuk0o00id.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
4. I2C1 设备扫描
使用命令 sudo i2cdetect -y 1 进行扫描,找不到 0x22, 0x23 设备地址。
lintex9527@am62lxx-evm:~$ sudo i2cdetect -y 1
Warning: Can't use SMBus Quick Write command, will skip some addresses
0 1 2 3 4 5 6 7 8 9 a b c d e f
00:
10:
20:
30: -- -- -- -- -- -- -- --
40:
50: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- --
60:
70:
lintex9527@am62lxx-evm:~$
之后分别扫描了 0/1/2/3/4 都没有找到 0x22, 0x23 设备地址。
因此当前情况说明:
- ❗ 这是“设备树层绑定了驱动,所以不会显示地址”的典型现象;
- ❗ 驱动绑定方式不是传统 I2C 驱动,而是被注册成 GPIO Controller(gpiochip)
这种情况下:
- 你必须用 libgpiod / sysfs 来操作这些 IO
最后在 gpiochip2 中找到了 IO_EXP_TEST_LED。
lintex9527@am62lxx-evm:~$ sudo gpioinfo -c 2
gpiochip2 - 24 lines:
line 0: unnamed input
line 1: unnamed input
line 2: "UART1_FET_SEL" input
line 3: "MMC1_SD_EN" output consumer="regulator-2"
line 4: "VPP_EN" input
line 5: "EXP_PS_3V3_EN" input
line 6: "UART1_FET_BUF_EN" input
line 7: unnamed input
line 8: "DSI_GPIO0" input
line 9: "DSI_GPIO1" input
line 10: unnamed input
line 11: "BT_UART_WAKE_SOC_3V3" input
line 12: "USB_TYPEA_OC_INDICATION" input
line 13: unnamed input
line 14: unnamed input
line 15: "WLAN_ALERTn" input
line 16: "HDMI_INTn" input consumer="kernel"
line 17: "TEST_GPIO2" input
line 18: "MCASP0_FET_EN" input
line 19: "MCASP0_BUF_BT_EN" input
line 20: "MCASP0_FET_SEL" input
line 21: "DSI_EDID" input
line 22: "PD_I2C_IRQ" input
line 23: "IO_EXP_TEST_LED" input
gpioinfo -c gpiochip2说明:
- IO_EXP_TEST_LED 位于 gpiochip2 第 23 号引脚
- 电路为 高电平点亮 【参见下方 EVM 用户指南,且与我实测一致】
wd_145317bcxiz2inpfpenfx5.png (0 Bytes, 下载次数: 0)
下载附件
保存到相册
2026-4-10 14:53 上传
5. 创建 python 虚拟环境
输入命令创建虚拟环境
python3 -m venv .venv
python3 -m venv .venv
The virtual environment was not created successfully because ensurepip is not
available. On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.
apt install python3.13-venv
You may need to use sudo with that command. After installing the python3-venv
package, recreate your virtual environment.
Failing command: /home/lintex9527/workspace/daerwen/.venv/bin/python3
按照提示 sudo apt install python3.13-venv 即可。
安装 python-periphery 模块
输入命令 pip install python-periphery 即可。
lintex9527@am62lxx-evm:~/workspace/daerwen$ python3 -m venv .venv
lintex9527@am62lxx-evm:~/workspace/daerwen$ source .venv/bin/activate
(.venv) lintex9527@am62lxx-evm:~/workspace/daerwen$ pip install python-periphery
Collecting python-periphery
Downloading python_periphery-2.4.1-py2.py3-none-any.whl.metadata (1.5 kB)
Downloading python_periphery-2.4.1-py2.py3-none-any.whl (36 kB)
Installing collected packages: python-periphery
Successfully installed python-periphery-2.4.1
🟢LD2 闪烁的python 代码
"""
切记,运行此脚本需要使用下面的命令行:
sudo $(which python3) blink_ld2.py
LD2 在 M.2 Key 附近。
NOTE: successful.
"""
#!/usr/bin/env python3
from periphery import GPIO
from time import sleep
gpio_out = GPIO("/dev/gpiochip2", 23, "out")
def main():
i = 0
while i < 10:
print(f"loop {i}, ld2 -- on")
gpio_out.write(True)
sleep(1)
print(f"loop {i}, ld2 -- off")
gpio_out.write(False)
sleep(1)
i = i + 1
if __name__ == "__main__":
main()
print("====== Job Done ======")