【问题标题】:Misunderstanding beaglebone GPIO pinmux误解 beaglebone GPIO pinmux
【发布时间】:2014-12-15 05:10:47
【问题描述】:

我正在使用使用 Linux 内核 3.17.4、Fedora 21 ARM 的 beaglebone black。如果我考虑内核引脚 8(gpio0[8] 或 P8.35)...

$ sudo grep 'pin 8 ' /sys/kernel/debug/pinctrl/44e10800.pinmux/pinmux-pinsyieldpin 8 (44e10820.0): (MUX UNCLAIMED) (GPIO UNCLAIMED)

$ sudo grep 'pin 8 ' /sys/kernel/debug/pinctrl/44e10800.pinmux/pins 产生pin 8 (44e10820.0) 00000027 pinctrl-single

据我所知,引脚 8 在模式 7 下通过下拉电阻启用接收。

然后$ echo 8 | sudo tee -a /sys/class/gpio/export 创建/sys/class/gpio/gpio8$ echo out | sudo tee -a /sys/class/gpio/gpio8/direction 将其设置为 out。 $ echo 1 | sudo tee -a /sys/class/gpio/gpio8/value 应该将引脚设置为高电平。

我的观察是,虽然value 文件读取为高电平,但来自 gpio 引脚的电压却很低。

如果我将“8”更改为“60”,我可以控制该引脚,但文件系统开始变得异常,可能是因为该引脚被用于某事。值得注意的是,图钉显示:pin 60 (44e108f0.0) 00000030 pinctrl-single

所以我的问题是 -- 为什么 pin 8 (gpio0[8] 或 P8.35) 不工作?

【问题讨论】:

    标签: fedora beagleboneblack gpio


    【解决方案1】:

    我错误地认为内核引脚计算为 32 * N + M 对应于 gpioN[M]。内核引脚由 44e10 的偏移量决定。

    上面的pin 8有偏移820,对应gpio0[22]p8.19。如果导出 22 并检查 p8.19,就会产生所需的结果。

    有趣的是,关于这一事实的许多博主文档都是不正确的。我不会链接到这些网站以防止它们扩散。另一方面,这篇文章是完全准确的,帮助我理解了发生了什么:

    http://www.valvers.com/embedded-linux/beaglebone-black/step04-gpio/

    【讨论】:

      猜你喜欢
      • 2015-03-09
      • 2021-08-24
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 2022-11-10
      • 1970-01-01
      • 1970-01-01
      • 2013-09-26
      相关资源
      最近更新 更多