瑞芯微Rockchip开发者社区
直播中

李超

7年用户 1325经验值
私信 关注
[问答]

LS1043a_LS1046a的GPIO3和GPIO7无法控制,一直是高电平怎么解决?


用linux脚本测试,GPIO3和GPIO7一直输出高电平1.8V。
GPIO4~GPIO6正常输出,电平可以反转。

在uboot环境下操作寄存器
(1)进入uboot后,测试GPIO3~GPIO7的默认电平都是1.8V。
(2)修改0x02300000 为0xffffffff,修改0x02310000 为0xffffffff,意思就是把所有IO的方向都设置为输出。
(3)GPIO4~GPIO6都为低电平,GPIO3和GPIO7还是1.8V。
所以操作寄存器也无法控制GPIO3和GPIO7为低电平。


修改RCW之后验证是可以的。
GPIO7 = GPIO1_31  IRQ[11]

需要在rcw中加入下面两行。

IRQ_BASE=1

IRQ_EXT=3


GPIO2_12 IFC_CS_B[3]

需要在rcw中修改下面两行。

IFC_GRP_E1_BASE=1

IFC_GRP_E1_EXT=0





linux脚本内容如下:

  • #!/bin/sh
  • echo 460 > /sys/class/gpio/export
  • echo out > /sys/class/gpio/gpio460/direction
  • echo 461 > /sys/class/gpio/export
  • echo out > /sys/class/gpio/gpio461/direction
  • echo 462 > /sys/class/gpio/export
  • echo out > /sys/class/gpio/gpio462/direction
  • echo 463 > /sys/class/gpio/export
  • echo out > /sys/class/gpio/gpio463/direction
  • echo 511 > /sys/class/gpio/export
  • echo out > /sys/class/gpio/gpio511/direction
  • while true
  • do
  •     echo 0 > /sys/class/gpio/gpio460/value
  •     echo 0 > /sys/class/gpio/gpio461/value
  •     echo 0 > /sys/class/gpio/gpio462/value
  •     echo 0 > /sys/class/gpio/gpio463/value
  •     echo 0 > /sys/class/gpio/gpio511/value
  •     echo output-low
  •     sleep 1
  •     echo 1 > /sys/class/gpio/gpio460/value
  •     echo 1 > /sys/class/gpio/gpio461/value
  •     echo 1 > /sys/class/gpio/gpio462/value
  •     echo 1 > /sys/class/gpio/gpio463/value
  •     echo 1 > /sys/class/gpio/gpio511/value
  •     echo output-high
  •     sleep 1
  • done


回帖(4)

李飞

2022-1-6 09:34:56
受到警告
提示: 作者被禁止或删除 内容自动屏蔽
举报

乔婧

2022-1-6 09:35:06
改RCW是要把IO配置成GPIO模式吧,而不是配置成输出某种电平状态。
举报

孟佳

2022-1-6 09:35:11
GPIO2_12 IFC_CS_B[3]
需要在rcw中修改下面两行。
IFC_GRP_E1_BASE=1
IFC_GRP_E1_EXT=0
举报

王桂荣

2022-1-6 09:35:17

  • GPIO3和GPIO7应该默认是没有设置成gpio的,您再看一下
举报

更多回帖

发帖
×
20
完善资料,
赚取积分