扩展引脚
K1引脚列表
K1B引脚列表
K3引脚列表
K8引脚列表
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,可以按下面的方法进行测试
查看对应的节点是否存在
例如 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保存
使用命令:
$ minicom -b 9600 -D /dev/ttyS3
默认显示:接收的内容会打印出来,发送的内容无打印
crt+A 进入控制 B-Z命令 Z为help
或者使用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
$ 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
下面以 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接口 不可直接使用,需要增加外部电平转接电路
查询当前⽹络设备
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)
CAN接收
开启打印,等待接收
回环模式测试
方法一:
启动can后,io输⼊命令开启回环⾃测(基地址根据实际dts启动的can配置)
$ io -4 0xfea60000 0x8415
0xfea60000 为 K8 CAN0 的 dts 节点
回环模式下,cansend 后 candump 可以接收。
示例
开启回环模式测试,并监听 can
root@linaro-alip:/# io -4 0xfea60000 0x8415
root@linaro-alip:/# candump can0
can0 123 [4] DE AD BE EF
发送命令
root@linaro-alip:/# cansend can0 123#DEADBEEF
方法二:
开启回环测试
$ ip link set can0 type can loopback on
后台运行开启打印
发送命令
$ 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|