04-拓展引脚

扩展引脚

K1引脚列表

image-20240420181207097

K1B引脚列表

image-20240914152349051

K3引脚列表

image-20250312141333883

K8引脚列表

944056094ce6a949b748c927edbef52

GPIO

开发板的扩展引脚中默认配置多路可控GPIO。

首先,通过扩展引脚章节,确认GPIO引脚位置、编号,参考以下步骤可对指定GPIO进行状态控制。

用户层控制GPIO电平

默认软件拓展引脚中配置为GPIO一般都注册为此方式控制

此方式可控制引脚输出高电平或低电平

查看GPIO注册列表

$ ls /sys/class/leds/

gpio1b0/ gpio1b2/ gpio1d4/ gpio3b6/ 
gpio1a4/ gpio1b1/ gpio1d0/ gpio3b5/ gpio4c4/

命令行控制GPIO

$ echo 1 > /sys/class/leds/gpio3b6/brightness
$ echo 0 > /sys/class/leds/gpio3b6/brightness

UART

各系列板卡扩展脚一般都有默认配置一路或多路UART,连接好对应要使用的UART,可以按下面的方法进行测试

  • 确认使用的串口号

查看对应的节点是否存在

$ ls /dev/ttyS*

例如 uart4 对应 /dev/ttyS4

使用 microcom 进行通信测试

Android默认安装有microcom

$ microcom -s 115200 /dev/ttyS4

如串口4查找到的节点为 /dev/ttyS4

-s 设置波特率为 115200

使用minicom验证:

Linux建议使用minicom

第一次安装需要配置一下:

  • minicom -s 将 Serial port setup>> F Hardware Flow Control 关掉

  • Esc按键或回车返回上一层选择Save setup as dfl保存

  • Exit from Minicom 退出

使用命令:

$ minicom -b 9600 -D /dev/ttyS3

默认显示:接收的内容会打印出来,发送的内容无打印

crt+A 进入控制 B-Z命令 Z为help

Ctrl+A X
退出程序

Ctrl+A W

启用/禁用自动换行,默认禁用

Ctrl+A E

启用/禁用输入显示,默认禁用

Ctrl+A C

清屏

或者使用echo直接发送

$ stty -F /dev/ttyAS3 -a 	//可以看默认波特率
$ stty -F /dev/ttyAS3 115200 	//可以设置
$ echo "123" > /dev/ttyAS3

PWM

RK3568 有4个PWM模块,每个PWM模块有4路PWM,一共有16路PWM

用户层配置PWM输出

Extend 40Pin接口 包含多路PWM,以PWM3通道为例,按照以下命令进入PWM配置

按照示例配置参数设置成功后,可用万用表测量PWM3引脚,正确电压应为1.6V左右

示例:设置PWM3通道,周期10000ns,占空比5000ns,极性为normal

PWM路径为/sys/class/pwm,pwmchip* 则按你使能顺序从0开始排序 设置pwmchip0如下:

$ echo 0 > /sys/class/pwm/pwmchip0/export
$ echo 10000 > /sys/class/pwm/pwmchip0/pwm0/period
$ echo 5000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
$ echo normal > /sys/class/pwm/pwmchip0/pwm0/polarity
$ echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable
  • 如何确认 pwmchip 对应的 pwm

$ find /sys/devices/ | grep pwmchip | grep uevent
/sys/devices/platform/fd8b0020.pwm/pwm/pwmchip1/uevent
/sys/devices/platform/fd8b0010.pwm/pwm/pwmchip0/uevent
/sys/devices/platform/fd8b0030.pwm/pwm/pwmchip2/uevent

fd8b0010.pwm 为 dts 对应的节点

ADC

主板扩展引脚配备DC,通过扩展引脚章节查看对应的 ADC 位置及通道号。

下面以 SARADC_VIN3 进行示例说明。

读取ADC值

$ cat /sys/bus/iio/devices/iio\:device0/in_voltage*_raw

示例:

读取通道3的电压值

#  cat /sys/bus/iio/devices/iio\:device0/in_voltage3_raw
3528

CAN

适用平台:RK3568 / RK3576 / RK3588

RK部分芯片支持原生CAN接口,通常引出到扩展引脚上,具体位置可查看扩展引脚部分

芯片原生CAN接口 不可直接使用,需要增加外部电平转接电路

查询当前⽹络设备

$ ifconfig -a

CANFD配置

关闭CAN

$ ip link set can0 down

设置比特率500KHz

$ ip link set can0 type can bitrate 500000

打印can0信息

$ ip -details -statistics link show can0

启动CAN

$ ip link set can0 up

CAN FD发送

发送(标准帧,数据帧,ID:123,date:DEADBEEF):

$ cansend can0 123#DEADBEEF

发送(标准帧,远程帧,ID:123)

$ cansend can0 123#R

CAN接收

开启打印,等待接收

$ candump can0

回环模式测试

方法一:

启动can后,io输⼊命令开启回环⾃测(基地址根据实际dts启动的can配置)

$ io -4 0xfea60000 0x8415

0xfea60000 为 K8 CAN0 的 dts 节点

回环模式下,cansend 后 candump 可以接收。

示例

  • 终端1

开启回环模式测试,并监听 can

root@linaro-alip:/# io -4 0xfea60000 0x8415
root@linaro-alip:/# candump can0
  can0  123   [4]  DE AD BE EF
  • 终端2

发送命令

root@linaro-alip:/# cansend can0 123#DEADBEEF

方法二:

开启回环测试

$ ip link set can0 type can loopback on

后台运行开启打印

$ candump can0 &

发送命令

$ cansend can0 123#DEADBEEF

SPI

工具位置

$ kernel/tools/spi/spidev_test.c

编译

$ make CROSS_COMPILE=~/path-to-toolchain/gcc-xxxxx-toolchain/bin/xxxx-linux-gnu-

选择 kernel 所⽤ CROSS_COMPILE

回环模式测试

$ spidev_test -D /dev/spidev0.0 -v -l -p "hello"

主控做 Master 端

MISO、MOSI 进行短接

  • 示例

root@linaro-alip:/data# ./spidev_test -D /dev/spidev0.0 -v -l -p "hello"
spi mode: 0x24
bits per word: 8
max speed: 500000 Hz (500 kHz)
TX | 68 65 6C 6C 6F __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __  |hello|
RX | 68 65 6C 6C 6F __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __  |hello|

Last updated