跳到主要内容

pinmux

Duo的引脚名

PIN NAMEPin#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

符合预期

  • carbonfix
  • logan-milkv