04-拓展引脚
此文档用于用户快速使用或测试主板扩展引脚功能。
符号说明
SDK$
:指代源码路径console$
:泛指主板的命令行控制台。主板命令行控制台ADB$
:Android Debug Bridge 命令行工具,泛指可运行 ADB 的环境
扩展引脚
开发板板载扩展引脚功能
可用于连接外部设备(温度传感器、湿度传感器等)
与其他电路板或模块通信(I2C、SPI、UART等)
自定义GPIO功能
具体功能拓展详情查看引脚列表。
引脚列表标注了每个引脚的默认配置(带*号),同时给出该引脚所对应的可选择配置。
K7引脚列表

K7引脚电压

GPIO
K7主板扩展引脚可配置 GPIO 引脚,通过扩展引脚章节查看对应的 GPIO 引脚位置及编号。
扩展引脚默认GPIO引脚(带*号)已配置为输出口,可以控制GPIO输出高电平或低电平。
列举已经注册的GPIO控制节点
console$ ls /sys/class/leds/
GPIO0_A5 GPIO3_B0 GPIO3_D4 GPIO3_D5 PCIE_PWREN SDMMC0_PWREN fan mmc2:: work
下面控制GPIO的电平状态,$GPIO 需要对应列举出的GPIO名称
控制GPIO输出电平状态
控制 GPIO 输出高电平
console$ echo 1 > /sys/class/leds/$GPIO/brightness
控制 GPIO 输出低电平
console$ echo 0 > /sys/class/leds/$GPIO/brightness
示例:
控制 GPIO3_D4 输出高电平
console$ echo 1 > /sys/class/leds/GPIO3_D4/brightness
控制 GPIO3_D4 输出低电平
console$ echo 0 > /sys/class/leds/GPIO3_D4/brightness
CAN
K7主板扩展引脚可配置 CAN 接口,通过扩展引脚章节查看对应的 CAN 接口位置及编号。
查询当前CAN设备
下面以 CAN0 进行示例说明。
console$ ifconfig -a
...
can0 Link encap:UNSPEC Driver rk3576_canfd
NOARP MTU:16 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
RX bytes:0 TX bytes:0
Interrupt:63
...
可知设备名称为 can0
配置CAN
关闭CAN
console$ ip link set can0 down
设置仲裁段1M波特率,数据段3M波特率
console$ ip link set can0 type can bitrate 1000000 dbitrate 3000000 fd on
查看can0配置信息
console$ ip -details link show can0
启动CAN
console$ ip link set can0 up
CAN发送
发送(标准帧,数据帧,ID:123,date:DEADBEEF)
console$ cansend can0 123#DEADBEEF
发送(扩展帧,数据帧,ID:00000123,date:DEADBEEF)
console$ cansend can0 00000123##1DEADBEEF
CAN接收
开启打印,等待接收
console$ candump can0
回环模式测试
console$ ip link set can0 down
console$ ip link set can0 type can bitrate 500000 sample-point 0.8 dbitrate 2000000 sample-point 0.8 fd on loopback on
console$ ip -details -statistics link show can0
console$ ip link set can0 up
console$ echo 4096 > /sys/class/net/can0/tx_queue_len
console$ candump can0 &
console$ cansend can0 00000123##1DEADBEEF
can0 00000123 [04] DE AD BE EF
回环模式下,cansend 的数据可以通过 candump 接收。
PWM
K7主板扩展引脚可配置 PWM 接口,通过扩展引脚章节查看对应的 PWM 位置及通道号。
列举pwm节点
console$ ls /sys/class/pwm/
pwmchip0 pwmchip1 pwmchip2
列举对应pwm dts节点
console$ cat /sys/class/pwm/pwmchip*/device/uevent | grep FULLNAME
OF_FULLNAME=/pwm@27331000
OF_FULLNAME=/pwm@2ade6000
OF_FULLNAME=/pwm@2ade7000
对应关系如下,从上往下,对应 pwmchip0 到 pwmchip2
PWM0_CH1_M0 - pwm0_2ch_1 - pwm@27331000 - pwmchip0
PWM2_CH6_M2 - pwm2_8ch_6 - pwm@2ade6000 - pwmchip1
PWM2_CH7_M2 - pwm2_8ch_7 - pwm@2ade7000 - pwmchip2
配置PWM
示例:
软件默认已配置 PWM0_CH1_M0(带*号),下面以 PWM0_CH1_M0 进行说明。
设置 PWM0_CH1_M0 通道,对应 pwmchip0,周期10000ns,占空比5000ns,极性为normal
console$ echo 0 > /sys/class/pwm/pwmchip0/export
console$ echo 10000 > /sys/class/pwm/pwmchip0/pwm0/period
console$ echo 5000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
console$ echo normal > /sys/class/pwm/pwmchip0/pwm0/polarity
console$ echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable
配置成功后,可用万用表测量 PWM0_CH1_M0 引脚,电压应为1.6V左右
UART
K7主板扩展引脚可配置 UART 接口,通过扩展引脚章节查看对应的 UART 位置及通道号。
回环测试
软件默认已配置 UART8,下面以 UART8 进行示例说明。
RX、TX 进行硬件短接。
microcom 指定 UART8 进行通讯
console$ microcom -s 115200 /dev/ttyS8
示例:
root@linaro-alip:/# microcom -s 115200 -p /dev/ttyS8
[ 4218.137343] of_dma_request_slave_channel: dma-names property of node '/serial@2adb0000' missing or empty
connected to /dev/ttyS8
[ 4218.137431] dw-apb-uart 2adb0000.serial: failed to request DMA, use interrupt mode
Escape character: Ctrl-\
Type the escape character to get to the prompt.
hello uart word!
回环测试下,microcom 能够同时接收输出的字符
SPI
K7主板扩展引脚可配置SPI接口,通过扩展引脚章节查看对应的 SPI 位置及通道号。
回环测试
软件默认已配置 SPI4,下面以 SPI4 进行示例说明。
MISO、MOSI 进行硬件短接。

列出spi设备节点
console$ ls /dev/spi*
/dev/spidev4.0
指定设备进行测试
console$ spidev_test -D /dev/spidev4.0 -v -l -p "hello"
示例:
root@linaro-alip:/# ./spidev_test -D /dev/spidev4.0 -v -l -p "hello"
spi mode: 0x20
bits per word: 8
max speed: 500000 Hz (500 kHz)
TX | 68 65 6C 6C 6F __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ |hello|
RX | 68 65 6C 6C 6F __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ |hello|
工具网盘路径
3-SoftwareData\Linux_Spi_Tool\spidev_test
ADC
K7主板扩展引脚配备三路ADC,通过扩展引脚章节查看对应的 ADC 位置及通道号。
读取ADC值
console$ cat /sys/bus/iio/devices/iio\:device0/in_voltage*_raw
示例:
读取通道 4 的电压值
console$ cat /sys/bus/iio/devices/iio\:device0/in_voltage4_raw
3528
Last updated