Kickpi-Book
  • KICKPI Document
  • K5(A133)
    • A133中文文档
      • 02-KICKPI-K5C硬件介绍
      • 02-KICKPI-K5硬件介绍
      • 10-系统镜像烧录
      • 11-SDK源码编译
      • 12-硬件功能使用说明
      • 13-硬件工厂测试
      • 20-LCD功能调试
      • 21-LRADC按键配置
      • 31-Android10.0 Tablet系统定制
      • 32-Ubuntu16.04 系统定制
      • 33-Kernel 驱动定制
      • 34-K5C主板供电
  • K2B/K2C(H618)
    • zh
      • 01-主板介绍
        • 01-KICKPI-K2B硬件介绍
        • 02-KICKPI-K2C硬件介绍
      • 02-入门必读
        • 01-网盘目录说明
        • 02-快速使用
        • 03-功能测试
        • 04-扩展引脚
      • 03-镜像烧录
        • 01-SD卡烧录
        • 02-USB线烧录
      • 04-SDK编译
        • 01-编译环境搭建
        • 02-LINUX_SDK源码编译
        • 2. Android SDK编译
      • 05-外设驱动
        • RTC
      • 06-Android系统定制
        • Android常用系统定制
      • 07-Linux系统定制
        • Linux常用系统定制
      • 08-进阶
        • 14-Secure Boot
        • 硬件工厂测试
        • 44-Keybox
  • K1/K1B/K3/K8(RK3568/RK3562/RK3588)
    • zh
      • 01-主板介绍
        • 01-RK芯片对比介绍
        • 02-KICKPI-K1硬件介绍
        • 03-KICKPI-K1B硬件介绍
        • 04-KICKPI-K3硬件介绍
        • 06-KICKPI-K8硬件介绍
      • 02-入门必读
        • 01-网盘目录说明
        • 02-快速使用
        • 02-快速使用
        • 02-快速使用
        • 03-功能测试
        • 04-拓展引脚
      • 03-镜像烧录
        • 01-USB线烧录
      • 04-SDK编译
        • 01-编译环境搭建
        • 02-LINUX SDK 编译
        • 03-ANDROID SDK 编译
      • 05-外设驱动
        • GPIO
        • Kernel
        • LCD
        • PWM
        • RTC
      • 06-ANDROID系统定制
        • 01-Android常用系统定制
        • 07-Android NPU YOLOV5 目标检测
      • 07-LINUX系统定制
        • 01-Linux常用系统定制
        • 02-Linux安装VNC
        • 03-Linux Docker环境搭建
        • 04-Linux QT环境搭建
        • 05-Linux NPU YOLOV5S 目标检测
      • 08-进阶
        • 01-硬件工厂测试
        • 02-硬件老化测试
        • 03-固件解包和打包
  • K7(RK3576)
    • zh
      • 01-主板介绍
        • 01-KICKPI-K7硬件介绍
      • 02-入门必读
        • 01-网盘目录说明
        • 02-快速使用
        • 03-功能测试
        • 04-拓展引脚
      • 03-镜像烧录
        • 01-获取镜像文件
        • 02-USB线烧录
      • 04-SDK编译
        • 01-编译环境搭建
        • 02-Linux_SDK编译
        • 03-Android_SDK编译
      • 05-外设驱动
        • ADC
        • PWM
      • 06-ANDROID系统定制
        • 01-Android常用系统定制
      • 07-LINUX系统定制
        • 01-Linux常用系统定制
        • 02-Linux Docker环境搭建
        • 03-Linux NPU YOLOV5S 目标检测
        • 04-Linux_Deepseek大模型
        • 05-Linux_VNC远程控制
      • 08-进阶
        • ADB功能使用
        • 进阶测试
  • K4B(T113-S3)
    • T113-S3中文文档
      • 01-KICKPI-K4B硬件介绍
      • 10-系统镜像烧录
      • 11-SDK源码编译
      • 12-硬件功能测试
      • 13-硬件工厂测试
      • LCD功能调试
      • 20-Ubuntu20.04系统定制
      • Buildroot_QT5配置
      • Buildroot系统定制
  • common
    • zh
      • adb
        • ADB教程
      • android
        • 02-ADC
      • bluetooth
        • bootanimation
      • display
        • FPC接口介绍
      • linux
        • SSH
        • bluetoothctl教程
        • qt
Powered by GitBook
On this page
  • 串口
  • GPIO
  • GPIO工具使用
  • 使用演示
  • GPIO控制
  • GPIO编号查询
  • sys gpio控制
  • 示例功能配置
  • GPIO输出
  • GPIO按键
  • 修改UART控制端口
  • 添加uart2支持
  • TTL转485模块
  • TTL转232模块接线
  1. K2B/K2C(H618)
  2. zh
  3. 02-入门必读

04-扩展引脚

Last updated 3 days ago

串口

测试工具

使用 USB 转 TTL线

image-20241231145656021

TTL普通串口

使用串口工具连接

软件测试方法

串口测试采用stty命令,。。。。

PC设置串口

主板设置串口

ttyAS5为串口5 对应管脚PH2 PH3 115200是波特率

stty -F /dev/ttyAS5 ispeed 115200 ospeed 115200 cs8 

向串口发送数据

echo kickpi > /dev/ttyAS5  

接收数据

cat /dev/ttyAS5 

GPIO

GPIO工具使用

板卡:K2B

工具下载网盘地址路径

h618_data\3-SoftwareData软件资料\GPIO_tools

将wiringKP.tar.gz在板卡上解压

可执行文件和库文件分别放到/usr/bin和/usr/lib目录下

gpio readall //获取所有管脚状态
gpio read <wPi>        //读管脚电平
gpio mode <wPi> <mode> //设置管脚工作模式 (当前版本支持设置out/int/up/down 模式)
gpio write <wPi> <val> //设置管脚输出电平

使用演示

设置PH5为输出模式,输出高电平

其中PC管脚输出电压为1.8V,PH管脚输出电压为3.3V

kickpi@kickpi:~$ gpio mode 0 out
kickpi@kickpi:~$ gpio read 0
0
kickpi@kickpi:~$ gpio write 0 1
kickpi@kickpi:~$ gpio read 0
1
kickpi@kickpi:~$

可使用万用表测得此时PH5管脚为高电平

设置PH5为输入模式

kickpi@kickpi:~$ gpio mode 0 in
kickpi@kickpi:~$ gpio mode 0 down
kickpi@kickpi:~$ gpio read 0
0
kickpi@kickpi:~$//短接管脚3和管脚4
kickpi@kickpi:~$ gpio read 0
1
kickpi@kickpi:~$

GPIO控制

GPIO编号查询

cat /sys/kernel/debug/pinctrl/300b000.pinctrl/pins

sys gpio控制

将GPIO释放出来,通过/sys/class/gpio进行控制

步骤一 修改管脚状态

/sys/class/gpio/export 只能导出UNCLAIMED状态的 gpio

查看所需管脚是否是UNCLAIMED状态

cat /sys/kernel/debug/pinctrl/300b000.pinctrl/pinmux-pins

管脚非UNCLAIMED状态 说明管脚被内核注册了,需要修改设备树,注释掉其默认功能

PH2 PH3 做举例

查询管脚状态,发现PH2 PH3作为了uart5

vim longan/device/config/chips/h618/configs/p2/linux-5.4/board-*.dts  //android
vim source/kernel/linux-5.4-h618/arch/arm64/boot/dts/sunxi/sun50iw9-kickpi-k2b.dts //Linux

关闭默认功能

步骤二

​ 编译镜像,重新烧录

步骤三

​ 确认gpio未被注册

root@kickpi:~# cat /sys/kernel/debug/pinctrl/300b000.pinctrl/pinmux-pins | grep PH

​ 能够看到PH2 PH3未被使用,且对应 pin 值为 226 227

步骤四

​ 通过 /sys/class/gpio/export 注册 PH2,PH3 并进行控制

通过结点下的内容控制 gpio , 常用如下

设置GPIO方向

echo in > /sys/class/gpio/gpio226/direction
echo out > /sys/class/gpio/gpio226/direction

设置GPIO值

cat /sys/class/gpio/gpio226/value 		// 读取
echo 1 > /sys/class/gpio/gpio226/value	// 配置高电平
echo 0 > /sys/class/gpio/gpio226/value  // 配置低电平

示例功能配置

GPIO输出

K2B开发板默认配置两路GPIO输出功能,分别为PC12(12脚)、PC7(14脚)

注意:其他引脚已配置为其他功能,若要配置为GPIO功能,则需要先把默认功能去掉

其中PC管脚输出电压为1.8V,PH管脚输出电压为3.3V

GPIO输出 提供两种控制方式,分别为gpio-leds、gpio_para

gpio-leds

gpio-leds 是LINUX内核自带的GPIO控制驱动,可实现丰富的控制方式

系统中目录位于/sys/class/leds

以下示例为 系统运行指示灯配置,实现心跳闪烁功能

/{
		gpio-leds {
                compatible = "gpio-leds";
                status = "okay";

                sys_led {
                        label="sys_led";
                        gpio = <&pio PI 16 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                };
        };
};

gpio_para

gpio-para 是全志的GPIO控制驱动,可实现简单的电平高低控制

系统中目录位于/sys/class/gpio_sw

以下示例为 扩展引脚PC7、PC12的配置

&soc {
        gpio_para {
                gpio_num = <2>;
                gpio_pin_1 = <&pio PC 7 GPIO_ACTIVE_HIGH>;
                gpio_pin_2 = <&pio PC 12 GPIO_ACTIVE_HIGH>;
                status = "okay";
        };
};

GPIO按键

/{
		gpio-keys {
                compatible = "gpio-keys";
                status = "okay";
                autorepeat;

                power {
                        label = "Power Key";
                        linux,code = <KEY_POWER>;
                        gpio = <&pio PC 2 GPIO_ACTIVE_LOW>;     /* PC7 */
                        wakeup-source;
                        debounce-interval = <100>;
                };
        };
};

修改UART控制端口

修改debug_uart到你想用的uart,取消就用未使能的uart口

uart0固定会打印uboot日志

+++ b/source/kernel/linux-5.4-h618/arch/arm64/boot/dts/sunxi/uEnv/uEnv.txt
@@ -4,4 +4,4 @@ console=both
 disp_mode=1080p60
 fb0_width=1920
 fb0_height=1080
-debug_uart=ttyAS0
+debug_uart=ttyAS3

添加uart2支持

PH6,7,8,9默认为SPI PH4,5默认为I2C 要将PH5 PH6作为UART2使用,则原先的默认功能就要关闭,uart2功能要打开

TTL转485模块

模块接uart5接线图

TTL转232模块接线

模块接uart5接线图

66637824ee48c91b31130503a4400149
image-20250314150200725
image-20250326115428401
image-20250326133713399
image-20250326142700157
image-20250326142738724
cf9c366bb88d7214bc93412cbc0accb3
image-20250324195428239
image-20250324195442978