0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

迅为RK3588开发板 | 在高性能处理器上如何使用GPIO

北京迅为电子 2024-09-19 14:57 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

wKgaombryzSAR5-uAAJUUr_cLsM526.png

------------------------------------

注:详细使用可参考《【北京迅为】itop-3588开发板驱动开发指南》

GPIO基本概念

GPIO,即General-Purpose Input/Output,指的是可以由软件控制的通用输入输出引脚。每个GPIO引脚可以配置为输入或输出,用来读取外部设备的状态(如按键)或控制外设(如LED、马达等)

GPIO应用领域

GPIO作为嵌入式设备中不可或缺的接口,在以下多个领域有广泛应用:

智能家居用于控制和监测家电、灯光、窗帘、传感器等智能设备,通过GPIO引脚读取传感器状态或发送控制信号

工业自动化GPIO用于连接和控制工业机器、机器人、传感器等设备,通过简单的开关控制机制实现自动化流程。

物联网IoT):GPIO在物联网设备中广泛应用,用于与传感器、执行器(如继电器)等设备通信,实现数据采集和设备控制。

汽车电子在车载系统中,GPIO用于与各种车载传感器和执行器连接,提供控制信号,如车灯、门锁、报警器等的控制。

机器人技术:GPIO用于控制机器人中的电机、传感器和其他外部设备,实现精准的硬件控制和反馈处理。

使用RK3588处理器上的GPIO接口

在RK3588平台上,GPIO的使用非常灵活,既可以通过内核提供的sysfs接口进行控制,也可以通过debugfs进行调试。下面我们将介绍如何通过这两种方式来操作GPIO。

01

01GPIO选择

wKgZombryzSALiBeAADznCKytL8968.png

可以看到5号管脚的网络标号为UART9_RX_M0_BT,然后打开pin脚复用手册,根据这个网络标号进行搜索,查找到的复用内容如下所示:

wKgaombryzaAXN0EAAGiMqWcT5Y509.png

可以看到GPIO引脚编号GPIO2_C4,我们将LED的正极连接到这GPIO,负极连接到GND。

02

02使用sysfs接口控制GPIO

GPIO软件编程方式有多种,可以写驱动程序调用GPIO函数操作GPIO,也可以直接通过操作寄存器的方式操作GPIO,还可以通过sysfs方式实现对GPIO的控制。


sysfs接口是Linux内核提供的一种标准方式,允许用户在用户空间操作GPIO。通过简单的命令行操作,就可以控制GPIO引脚,点亮或熄灭LED。这里我们使用较为简单的用户空间控制GPIO的方法,通过配置GPIO为输出模式,向其写入高电平(1)或低电平(0)来控制LED的开关。

引脚号计算

引脚编号=控制寄存器的寄存器基数+控制引脚寄存器位数。

GPIO2_PC4 pin脚计算方法:

bank = 2; //GPIO2_C4=> 2, bank ∈ [0,4]group = 2; //GPIO2_C4 => 2, group ∈ {(A=0), (B=1), (C=2), (D=3)}X = 4; //GPIO2_C4=>4, X ∈ [0,7]number = group * 8 + X = 2 * 8 + 4 =20;pin = bank*32 + number= 2 * 32 + 20 = 84;

▸ 导出GPIO引脚

echo 84> /sys/class/gpio/export

wKgZombryzSAJ4G9AACr820_1Rs032.png

▸ 配置GPIO为输出模式

接下来,设置该GPIO引脚为输出模式:

echo "out" > /sys/class/gpio/gpio84/direction

wKgaombryzSAYpgpAABek-uwZYM855.png

▸ 控制LED开关

通过向GPIO的value文件写入1或0来控制LED的状态:

打开LED:

echo 1 > /sys/class/gpio/gpio84/value

wKgaombryzSAVhKSAABglsdbU40249.png

关闭LED:

echo 0 > /sys/class/gpio/gpio84/value

wKgaombryzWAABUwAABi-cENrps017.png

▸释放GPIO引脚

使用完毕后,可以将GPIO从用户空间移除:

echo 84> /sys/class/gpio/unexport

wKgaombryzWATco4AACzZVu7EeY010.png

03

03GPIO调试

在更高级的调试场景中,debugfs文件系统提供了对GPIO引脚状态和复用情况的深入查看和调试能力。可以通过以下步骤获取GPIO的详细信息:

▸ 查看GPIO的输入/输出模式、上拉/下拉设置等电气属性

cat /sys/kernel/debug/pinctrl/pinctrl-rockchip-pinctrl/pinconf-pins | grep 84

wKgZombryzWAIyLKAABuTBkluw8338.png

▸ 查看每个引脚的功能模式、引脚复用选择以及其他相关的配置信息

cat /sys/kernel/debug/pinctrl/pinctrl-rockchip-pinctrl/pinmux-pins| grep 84

wKgZombryzWAFafmAABq3Un-RRY147.png

通过这个文件,你可以确认每个引脚的当前复用配置,例如某个引脚可能被复用为UART、SPI等设备的控制引脚。如果想要重新配置为GPIO引脚,可以通过设备树进行调整。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开发板
    +关注

    关注

    25

    文章

    6139

    浏览量

    113606
  • GPIO
    +关注

    关注

    16

    文章

    1313

    浏览量

    55738
  • RK3588
    +关注

    关注

    8

    文章

    497

    浏览量

    7066
  • 迅为电子
    +关注

    关注

    0

    文章

    83

    浏览量

    305
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RK3588开发板Android系统烧写及注意事项

    RK3588开发板Android系统烧写及注意事项
    的头像 发表于 12-03 15:17 6365次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3588</b><b class='flag-5'>开发板</b>Android系统烧写及注意事项

    基于RK3588开发板实现高性能机器狗主控解决方案- AI能力实战:YOLOv5目标检测例程

    基于RK3588开发板实现高性能机器狗主控解决方案- AI能力实战:YOLOv5目标检测例程
    的头像 发表于 11-28 11:32 1115次阅读
    基于<b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3588</b><b class='flag-5'>开发板</b>实现<b class='flag-5'>高性能</b>机器狗主控解决方案- AI能力实战:YOLOv5目标检测例程

    iTOP-RK3588S开发板/核心瑞芯微RK3588S处理器6TOPS算力内置NPU

    性能强 iTOP-3588S开发板采用瑞芯微RK3588S处理器,是全新一代AloT高端应用芯片,搭载八核64位CPU,四核Cortex-A
    发表于 04-10 11:13

    RK3588 vs RK3576开发板旗舰与次旗舰的终极对决

    RK3588 vs RK3576开发板旗舰与次旗舰的终极对决
    的头像 发表于 03-24 14:09 1600次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3588</b> vs <b class='flag-5'>RK</b>3576<b class='flag-5'>开发板</b>旗舰与次旗舰的终极对决

    RK3588 EVB开发板原理图讲解【八】 RK3588 power Tree

    GPU负载高时自动通知RK860-2调高CPU电压 RK3588 Power Tree完整版图太大,截图看不完,需要的可以下载附件完成版。 RK3588 EVB开发板原理图 往
    发表于 03-01 11:38

    性能强者再升级】RK3588开发板16GB+128GB高配3588核心发布!

    性能强者再升级】RK3588开发板16GB+128GB高配3588核心
    的头像 发表于 02-20 15:22 1862次阅读
    【<b class='flag-5'>性能</b>强者再升级】<b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3588</b><b class='flag-5'>开发板</b>16GB+128GB高配<b class='flag-5'>3588</b>核心<b class='flag-5'>板</b>发布!

    电子发布16GB+128GB高配3588核心

    北京电子推出了搭载瑞芯微旗舰级处理器RK3588开发板——iTOP-RK3588。自发布以
    的头像 发表于 02-20 13:45 972次阅读

    Banana Pi开源社区基于瑞芯微RK3588开发板,DeepSeek开发利器

    Banana Pi开源社区基于瑞芯微RK3588开发板,DeepSeek开发利器
    的头像 发表于 02-19 18:25 3267次阅读
    Banana Pi开源社区基于瑞芯微<b class='flag-5'>RK3588</b><b class='flag-5'>开发板</b>,DeepSeek<b class='flag-5'>开发</b>利器

    分享 |基于RK3588开发板部署测试DeepSeek模型

    分享 |基于RK3588开发板部署测试DeepSeek模型
    的头像 发表于 02-18 14:26 2085次阅读
    分享 |<b class='flag-5'>迅</b><b class='flag-5'>为</b>基于<b class='flag-5'>RK3588</b><b class='flag-5'>开发板</b>部署测试DeepSeek模型

    RK3588S开发板/核心介绍

    性能强 iTOP-3588S开发板采用瑞芯微RK3588S处理器,是全新一代AloT高端应用芯片,搭载八核64位CPU,四核Cortex-A
    发表于 02-13 14:40

    RK3588开发板上部署并测试DeepSeek模型

    DeepSeek免费向全球开发者开放,加速了AI技术普及。   RK3588性能优势 RK3588作为一款高性能AI芯片,采用了8nm LP
    的头像 发表于 02-09 09:36 3245次阅读
    <b class='flag-5'>在</b><b class='flag-5'>RK3588</b><b class='flag-5'>开发板</b>上部署并测试DeepSeek模型

    RK3588开发板实时系统编译-Preemption系统/ Xenomai系统编译-获取Linux源码包

    rk3588_linux_XXXXXXX.tar.gz(XX...为名称的简写)”解压压缩包。 解压后会生成一个 rk3588_linux 文件夹,如下图所示 更多内容可以关注
    发表于 01-09 11:03

    RK3588开发板Android 系统修改屏幕分辨率和 density

    下的 topeet_rk3588.mk 文 件,如下图所示: 将编译好的镜像烧写到开发板,启动开发板,输入以下命令查看像素密度,如下图所示, 界面屏幕像素密度也发生了变化。 wm d
    发表于 12-27 11:07

    瑞芯微RK3588开发板Android修改kernel logo

    -android12/kernel-5.10/logo_kernel.bmp 下的 logol_kernel.bmp 即可。作者替换后 logo 显示效果如下图所示: 更多内容可以了解RK3588
    发表于 12-24 10:56

    RK35883588S开发板/核心选型硬件的区别

    1路HDMI_TX、1路千兆以太网、3路MIPI 摄像头接口、2路USB2.0等,虽然也支持多种接口,但相对来说,它的接口类型更加传统和经典。 RK3588S开发板: 大家
    发表于 12-20 15:40