Firefly开源社区

打印 上一主题 下一主题

[硬件交流] 通过官方底板i2c接口所接出的第三方扩展板上的20地址总是显示UU

154

积分

0

威望

0

贡献

技术小白

积分
154

通过官方底板i2c接口所接出的第三方扩展板上的20地址总是显示UU

发表于 2022-8-2 11:03:27      浏览:4773 | 回复:5        打印      只看该作者   [复制链接] 楼主
问题描述及复现步骤:
本帖最后由 music1913 于 2022-8-2 15:38 编辑

因 rv1126 官方底板默认仅引出2个 gpio 接口,但我需要4个,通过早期的交流,我被告之可以通过编译内核,更改一组 uart 接口为 gpio 接口的方法来满足需求 ,详细讨论可见原帖子:https://dev.t-firefly.com/thread-122181-1-1.html

但发现通过此方法扩展出来的额外 gpio 口与底板原生的2个 gpio 物理距离过远,不利于接线。同时产品未来也可能需要更多的 gpio 口,仍可能满足不了。

因我对硬件了解非常有限,某第三方硬件设计方在听取了我的需求后,帮我设计了一块扩展板,扩展板上设计了多个 gpio 口,以供外部 gpio 传感器接入, 同时此扩展板接入官方底板的 i2c 接口并通讯,然后我方应用程序通过发送 i2c 通讯消息至官方底板,以间接来控制扩展板上的 gpio 口,并最终行使控制外部传感器的功能。

在接好扩展板与官方底板的 i2c 连线后,我运行 i2cdetect 以及其它几个命令得到以下结果:

  1. sudo i2cdetect -y -r 1
  2.      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
  3. 00:          -- -- -- -- -- -- -- -- -- -- -- -- --
  4. 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  5. 20: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  6. 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  7. 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  8. 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  9. 60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
  10. 70: -- -- -- -- -- -- -- 77

  11. lsmod
  12. Module                  Size  Used by
  13. galcore               319488  0


  14. cat /etc/modules
  15. # /etc/modules: kernel modules to load at boot time.
  16. #
  17. # This file contains the names of kernel modules that should be loaded
  18. # at boot time, one per line. Lines beginning with "#" are ignored.
复制代码


应注意的是:其中 68,77 是扩展板上的加速度、气压计传感器(它俩本身也是 i2c 接口的),它俩均已经可正常工作,即通过我的应用程序都可以正常的去读数和操。

但可以见到,位于扩展板上 20x 地址上的 gpio 口,则一直显示 UU,通过大概了解,它代表了此地址被占用,所以我的应用程序还无法操作此 gpio 口,请问这个问题如何处理呢?

此为扩展板的一些参数:











none.zip

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

回复

使用道具 举报

1万

积分

14

威望

13

贡献

管理员

Rank: 9Rank: 9Rank: 9

积分
11182

优秀版主

发表于 2022-8-2 14:38:02        只看该作者  沙发
你要用 I2C 的脚就需要再内核把 对应的 i2c 总线关掉啊 ,不然肯定无法使用 gpio 功能。
回复

使用道具 举报

154

积分

0

威望

0

贡献

技术小白

积分
154
发表于 2022-8-2 14:48:49        只看该作者  板凳
本帖最后由 music1913 于 2022-8-2 15:38 编辑
板蓝根 发表于 2022-8-2 14:38
你要用 I2C 的脚就需要再内核把 对应的 i2c 总线关掉啊 ,不然肯定无法使用 gpio 功能。

不太理解您的意思。
对于rv1126底板来说,我的扩展板是一个 i2c 设备,是吗?不过同时扩展板上又可以挂载多个 gpio 接口,这样的需求需要改内核吗?
回复

使用道具 举报

1万

积分

14

威望

13

贡献

管理员

Rank: 9Rank: 9Rank: 9

积分
11182

优秀版主

发表于 2022-8-2 14:54:53        只看该作者  地板
明白了,我以为你是想用 i2c 复用成 gpio。你的意思是你接了这颗 i2c 扩展 gpio 芯片,那么你在内核上添加了对应驱动了吗?设备树添加对应节点了吗?
回复

使用道具 举报

154

积分

0

威望

0

贡献

技术小白

积分
154
发表于 2022-8-2 16:16:38        只看该作者  5#
本帖最后由 music1913 于 2022-8-2 16:18 编辑
板蓝根 发表于 2022-8-2 14:54
明白了,我以为你是想用 i2c 复用成 gpio。你的意思是你接了这颗 i2c 扩展 gpio 芯片,那么你在内核上添加 ...

搜索了一把,好像没太找到 TCA9534 相关驱动的信息,仅看到这样一个文件:https://github.com/torvalds/linu ... gpio/gpio-pca953x.c     还请帮忙提供一些指点哦?
还以后续的“到内核添加对应驱动”,“设备权添加节点”,请问这些步骤有文档可供参考吗?
谢谢!
回复

使用道具 举报

1万

积分

14

威望

13

贡献

管理员

Rank: 9Rank: 9Rank: 9

积分
11182

优秀版主

发表于 2022-8-2 17:34:12        只看该作者  6#
你可以参考一下我们的适配的另一款扩展 gpio 芯片来配置 PCA9555。但是你没有从事过内核工作的话很难搞,这些都是 BSP 工程师的工作,如果贵公司没有相关工程司还是请走商务流程,或者看看第三方能否适配呢。
回复

使用道具 举报

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

本版积分规则

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