Firefly开源社区

123
发表新贴
打印 上一主题 下一主题

[技术讨论] 如何访问底板上特定规格的GPIO接口

154

积分

0

威望

0

贡献

技术小白

积分
154

如何访问底板上特定规格的GPIO接口

发表于 2022-6-7 10:35:26      浏览:16474 | 回复:20        打印      只看该作者   [复制链接] 楼主
问题描述及复现步骤:
本帖最后由 music1913 于 2022-6-20 12:44 编辑

我的需求是通过JD4主板上的 GPIO 接口,接入4路 3.3V (来自4个外部传感器)电平信号。
即我有4个外部传感器,它们共 输入/输出 4路3.3V 电平信号,所以需要板子提供3.3V 电平信号的 GPIO 接口4个。
查看了文档,搜索 GPIO 关键字,好像只能看到以下几个相关信息:






所标注的3个接口中,一个注明电平是3.3V,一个注明电平为1.8V,一个为


请问:
如何增加我所需要规格的GPIO接口数?
如何在 Python 代码中引用到这些接口?





none.zip

154 Bytes, 下载次数: 2, 下载积分: 灯泡 -1 , 经验 -1

回复

使用道具 举报

154

积分

0

威望

0

贡献

技术小白

积分
154
发表于 2022-6-24 15:23:46        只看该作者  沙发
请问有人能帮忙看一下吗
回复

使用道具 举报

1万

积分

7

威望

0

贡献

技术大神

Rank: 8Rank: 8

积分
11422

突出贡献

发表于 2022-7-6 16:15:54        只看该作者  板凳
1、GPIO2_C0和GPIO0_D6是输出和输入3.3V。另外两个GPIO的话就需要你自己从底板里面引出来了。
2、python 调用就是普通的 gpio 口调用方式
回复

使用道具 举报

13

积分

0

威望

0

贡献

技术小白

积分
13
发表于 2022-7-6 21:35:25        只看该作者  地板
799959745 发表于 2022-7-6 16:15
1、GPIO2_C0和GPIO0_D6是输出和输入3.3V。另外两个GPIO的话就需要你自己从底板里面引出来了。
2、python  ...

那么在调用GPIO2_C0和GPIO0_D6时针脚号pin是多少呢
回复

使用道具 举报

1万

积分

7

威望

0

贡献

技术大神

Rank: 8Rank: 8

积分
11422

突出贡献

发表于 2022-7-7 14:23:23        只看该作者  5#
new_per 发表于 2022-7-6 21:35
那么在调用GPIO2_C0和GPIO0_D6时针脚号pin是多少呢

你可以看下官网的维基教程:https://wiki.t-firefly.com/iCore-3568JQ/driver_gpio.html
这些都是通用的
回复

使用道具 举报

13

积分

0

威望

0

贡献

技术小白

积分
13
发表于 2022-7-7 23:45:25        只看该作者  6#
799959745 发表于 2022-7-7 14:23
你可以看下官网的维基教程:https://wiki.t-firefly.com/iCore-3568JQ/driver_gpio.html
这些都是通用的

谢谢,可以计算得到pin number, GPIO2_C0 pin 80可以正常使用,但是GPIO0_D6 pin 30不能使用,通过echo 30 > /sys/class/gpio/export导出时报错:-bash: echo: write error: Device or resource busy,
是因为这个口已经被使用了吗?

gpioerror.png (26.25 KB, 下载次数: 816)

gpioerror.png
回复

使用道具 举报

13

积分

0

威望

0

贡献

技术小白

积分
13
发表于 2022-7-8 12:47:19        只看该作者  7#
799959745 发表于 2022-7-6 16:15
1、GPIO2_C0和GPIO0_D6是输出和输入3.3V。另外两个GPIO的话就需要你自己从底板里面引出来了。
2、python  ...

为什么一块板子上只有这么少的gpio口是可用的呢?有没有哪些针脚可能是共用的呢?可以作为gpio口也可以作为其他功能针脚呢?
回复

使用道具 举报

1万

积分

7

威望

0

贡献

技术大神

Rank: 8Rank: 8

积分
11422

突出贡献

发表于 2022-7-8 15:06:48        只看该作者  8#
本帖最后由 799959745 于 2022-7-8 15:27 编辑
new_per 发表于 2022-7-7 23:45
谢谢,可以计算得到pin number, GPIO2_C0 pin 80可以正常使用,但是GPIO0_D6 pin 30不能使用,通过echo 3 ...

1、规格书标错了,GPIO0_D6 应该改成 GPIO1_A1 。
2、GPIO口是很多的,但是需要配合底板的功能使用。一般都是买核心板然后根据需求自己制作底板的。如果不想自己制作底板,只能根据规格书将你使用到的GPIO引出来了
回复

使用道具 举报

154

积分

0

威望

0

贡献

技术小白

积分
154
发表于 2022-7-8 15:24:36        只看该作者  9#
799959745 发表于 2022-7-8 15:06
1、规格书标错了,GPIO0_D6 应该改成 GPIO1_A0 。
2、GPIO口是很多的,但是需要配合底板的功能使用。一 ...

多谢回复。

关于问题2:
直觉上,一块底板只有2个默认引出的GPIO,是不是也太少了呢? 请问有什么临时的办法,让我不用自己去做一块底板,而用比较简单的方法额外让我现在可以再引出2(共4)个GPIO吗?
回复

使用道具 举报

1万

积分

7

威望

0

贡献

技术大神

Rank: 8Rank: 8

积分
11422

突出贡献

发表于 2022-7-8 16:41:56        只看该作者  10#
你可以使用串口4当作GPIO普通管脚使用。分别是:(UART4_TX)GPIO2_A6 和 (UART4_RX)GPIO2_A7。需要在设备树rv1126-firefly-rk809.dtsi把uart4的配置关掉:
  1. /*
  2. &uart4 {
  3.         pinctrl-0 = <&uart4m1_xfer>;
  4.         status = "okay";
  5. };
  6. */
复制代码
回复

使用道具 举报

返回列表
123
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表