GPIO的上电状态是什么?


35

通电后,GPIO的状态是什么?例如高,低,Hi-Z?

加载时,是否还有任何操作系统会更改任何GPIO的状态?希望不会。


除非在数据表中,否则您可能必须对其进行测量才能确定。Linux并不“知道” GPIO,因此在启动过程中不会更改它们(除非您创建了一个启动脚本),但是ROM总是有可能。
恶意

@Malvineous,您不正确。Linux确实了解GPIO,并且支持已内置在内核中。这里是一些文档: kernel.org/doc/Documentation/gpio.txt
Emmaly Wilson 2012年

2
@DustyWilson:对不起,如果我不清楚,我的意思是核心Linux内核在启动过程中没有使用GPIO。它仅使它们可用于用户空间和特定驱动程序。因此,在启动过程中,常规内核不应更改GPIO引脚的状态。
恶意

@Malvineous:啊,知道了。
艾玛莉·威尔逊

Answers:


11

感谢russellstrong,我在这里找到了答案。我引用下面的相关部分

我已经得出有关上拉电阻器/电路对下拉电阻器的灵敏度的结论。首次启动时,RPi没有将GPIO设置为输出。它打开下拉电阻740毫秒。

我已经使用了两个18K电阻(3v3-> GPIO-> GND)来精确查看引脚的状况。这是痕迹。蓝线是3v3电源,黄线是GPIO线。

在此处输入图片说明


你能稍微澄清一下吗?当Raspberry Pi启动时,GPIO设置为高阻抗输入状态吗?
亚历克斯·张伯伦

1
@AlexChamberlain,看来Broadcom芯片以下拉菜单启动,但是加载程序清除了下拉菜单,因此它们将具有高阻抗(输入)
John La Rooy 2012年

9

当开始使用推荐的Debian发行版作为RPi时,GPIO被禁用。您必须分别启用每个引脚。

如果通过/ sys进行操作,您会发现“ Sysfs中的路径”很有趣(在http://www.kernel.org/doc/Documentation/gpio.txt中搜索)。特别是,您将通过“导出”来启用图钉。以下任何命令均假定您以root特权(sudo或其他方式)运行,或者您已更改了要修改的虚拟文件的权限/所有权。

echo 4 > /sys/class/gpio/export

这将启用GPIO引脚4,然后使/ sys / class / gpio / gpio4存在,其中包含多个虚拟文件。这些文件包括“方向”(定义是输入引脚还是输出引脚),“值”(对于输入是只读的,对于输出是可写的,并且包含当前值),以及其他文件。

echo out > /sys/class/gpio/gpio4/direction # set it as an output pin
echo 1 > /sys/class/gpio/gpio4/value # set the value to ON
echo 0 > /sys/class/gpio/gpio4/value # set the value to OFF
echo in > /sys/class/gpio/gpio4/direction # set it as input
cat /sys/class/gpio/gpio4/value # get the value
echo 4 > /sys/class/gpio/unexport # disables pin 4 and removes the gpio4 directory

当然,您可能更喜欢使用一些预先存在的库来执行与您选择的语言一起提供或与之兼容的GPIO。但是,如果您想要简单的东西,则可以直接与sysfs接口以执行非常基本的GPIO。


这是有帮助的。我查看了数据表,但找不到引脚的默认状态。如果您要通过引脚控制事物并且不希望在os加载时打开外围设备,那么这非常重要。
约翰·拉鲁伊

3
这是一个很好的答案,但是我不确定它是否真的可以回答这个问题。启用后,GPIO立即处于什么状态?和方向设定?
亚历克斯·张伯伦

@gnibbler:我相信您只需要测试一下。我自己前几天尝试过,关于弹奏或弹奏的东西,我没有发现任何意外。我不知道或保证我的经历是预期的。我想说的是,您应该将万用表或类似的引脚扔到要测试的引脚上,然后重新启动或重新启动Pi多次以进行测试。我看到的是所有引脚都关闭,好像Pi没电,直到我自己启用每个引脚。
艾玛莉·威尔逊

@DustyWilson,也许它们被设置为输入而没有上拉或下拉。这意味着,如果连接到FET,它们将有效地浮空;如果未在栅极上添加上拉/下拉电阻,则会引起随机行为
John La Rooy 2012年

确实... cat /sys/class/gpio/gpio4/direction说“中”。我在数据表中看到,无法读取上拉/下拉状态。我会尝试对其进行
评估
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.