pinmux
Duo的引脚名
PIN NAME | Pin# | Pin# | PIN NAME |
---|---|---|---|
GP0 | 1 | 40 | VBUS |
GP1 | 2 | 39 | VSYS |
GND | 3 | 38 | GND |
GP2 | 4 | 37 | 3V3_EN |
GP3 | 5 | 36 | 3V3(OUT) |
GP4 | 6 | 35 | |
GP5 | 7 | 34 | |
GND | 8 | 33 | GND |
GP6 | 9 | 32 | GP27 |
GP7 | 10 | 31 | GP26 |
GP8 | 21 | 30 | RUN |
GP9 | 12 | 29 | GP22 |
GND | 13 | 28 | GND |
GP10 | 14 | 27 | GP21 |
GP11 | 15 | 26 | GP20 |
GP12 | 16 | 25 | GP19 |
GP13 | 17 | 24 | GP18 |
GND | 18 | 23 | GND |
GP14 | 19 | 22 | GP17 |
GP15 | 20 | 21 | GP16 |
GP25 | LED |
引脚复用配置
注意,Duo 的很多引脚功能是复用的,在使用应用程序(比如 wiringX, pinpong)来控制Duo各引脚的功能时,要先确认一下引脚当前的状态是不是自己需要的功能, 如果不是,可以用duo-pinmux
命令来切换为所需功能
直接执行 duo-pinmux
命令可以看该命令的使用方法
[root@milkv-duo]~# duo-pinmux
pinmux for duo
duo-pinmux -p <== List all pins
duo-pinmux -l <== List all pins and its func
duo-pinmux -r pin <== Get func from pin
duo-pinmux -w pin/func <== Set func to pin
比如 Duo 的物理1
脚,想查看其复用状态,首先要知道该引脚的名字,在上图中已有标注,1脚的名字是GP0
,查看其复用状态,用duo-pinmux -r
后面加上引脚名字
[root@milkv-duo]~# duo-pinmux -r GP0
GP0 function:
[ ] JTAG_TDI
[ ] UART1_TX
[ ] UART2_TX
[ ] GP0
[v] IIC0_SCL
[ ] WG0_D0
[ ] DBG_10
可以看到当前功能为IIC0_SCL
,是 I2C0 的 SCL 功能,如果要把 1 脚配置成 GPIO,可以通过以下命令设置,duo-pinmux -w 引脚名字/功能
duo-pinmux -w GP0/GP0
此时再次查看该引复用状态
[root@milkv-duo]~# duo-pinmux -r GP0
GP0 function:
[ ] JTAG_TDI
[ ] UART1_TX
[ ] UART2_TX
[v] GP0
[ ] IIC0_SCL
[ ] WG0_D0
[ ] DBG_10
看到已经配置为GP0
了
同样,如果要配置 1 脚为串口 UART1 的 TX,需执行
duo-pinmux -w GP0/UART1_TX
检查复用状态
[root@milkv-duo]~# duo-pinmux -r GP0
GP0 function:
[ ] JTAG_TDI
[v] UART1_TX
[ ] UART2_TX
[ ] GP0
[ ] IIC0_SCL
[ ] WG0_D0
[ ] DBG_10
符合预期