在启动过程中启用Raspberry Pi GPIO15(RXD0)上拉电阻的原因是什么?

时间:2017-07-12 15:23:25

标签: raspberry-pi3 gpio

在树莓派3上,所有GPIO引脚都通过"输入"的方向通电。每个引脚都有一个上拉电阻和一个与之相关的下拉电阻。通过断电或复位保持这些电阻的状态。 (这就是为什么没有办法读取这些电阻的状态,因为它们在复位后可能不知道。)

我编写了一个程序,强制禁用所有拉电阻,这样就不会将线拉高或拉低,然后重新启动。 / sys / class / gpio / * / direction和值都表示成功。

复位后,除了:

外,所有引脚都在输入方向上升,没有使能上拉电阻
  • GPIO2:上拉(没问题,由于外部焊接的i2c上拉 电阻器)
  • GPIO3:上拉(没问题,由于外部焊接的i2c上拉电阻)
  • GPIO14:(TXD0)下拉电阻已经以某种方式重新启用!
  • GPIO15:(RXD0)上拉电阻已经以某种方式重新启用!

我之前已经使用raspi-config来禁用串行控制台日志记录和串行uart。所以我认为启动过程中的任何内容都不应改变控制GPIO14和GPIO15的外设寄存器。

在启动过程中,重新配置GPIO15(RXD0)和GPIO14(TXD0)引脚以启用其上拉/下拉电阻以及如何将其停止?

1 个答案:

答案 0 :(得分:0)

我发现了一件事:

broadcom芯片组上的上拉/下拉电阻配置是非易失性的。 (这就是为什么你无论如何都无法查询它们的状态;因为芯片不知道它们在启动时是什么,并且不能自己查询它们.CPU只能设置它们。)

因此,如果关闭所有上拉/下拉电阻,除了GPIO2和3之外,raspian分布引脚与输出/高阻配置中的所有引脚一起启动,因为这些是带有物理上拉电阻焊接的I2C引脚在船上。 Tx GPIO引脚也读取高电平但我认为是由于蓝牙系统在内核中初始化而我不知道如何禁用它。

因此,如果您将所有引脚设置为输入/ hi-z并禁用上拉/下拉,它将在重启后以这种方式出现(除非您在内核中启用某些内容或以后更改它们)电)