|
本帖最后由 Junix 于 2020-4-9 17:09 编辑
用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
复制代码
|
|