LS1043a/LS1046a的GPIO3和GPIO7无法控制,一直是高电平。(已修复)
本帖最后由 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_31IRQ需要在rcw中加入下面两行。IRQ_BASE=1IRQ_EXT=3
GPIO2_12 IFC_CS_B需要在rcw中修改下面两行。IFC_GRP_E1_BASE=1IFC_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
您看一下原理图,这两个引脚被硬件拉高了 zhichao 发表于 2020-4-7 09:37
您看一下原理图,这两个引脚被硬件拉高了
我的原理图版本是1.2,原理图上看不出有上拉。
话说回来,上拉会导致无法输出低电平吗?这样的话,要怎么用这俩IO呢? 看错了,没有上拉,您看一下GPIO3和GPIO7是否复用成gpio功能,是否还有其他复用 zhichao 发表于 2020-4-7 11:08
看错了,没有上拉,您看一下GPIO3和GPIO7是否复用成gpio功能,是否还有其他复用
用的是ubuntu的原始镜像测试的。没有做任何改动。GPIO7就是一个GPIO,没有复用功能。GPIO3是和qspi的B复用的,这个也没有开启复用。而且我测过这两个IO的驱动能力还很强,不是弱上拉。所以能否检查一下核心板的电路图,看是怎么接出来的,感谢! Junix 发表于 2020-4-7 11:17
用的是ubuntu的原始镜像测试的。没有做任何改动。GPIO7就是一个GPIO,没有复用功能。GPIO3是和qspi的B复 ...
我也遇到到同样的问题,我用的1012核心板,按照技术支持说的修改了RCW,写入无效,默认值是啥就是啥,改不了:( majestli 发表于 2020-4-7 11:30
我也遇到到同样的问题,我用的1012核心板,按照技术支持说的修改了RCW,写入无效,默认值是啥就是啥,改 ...
改RCW是要把IO配置成GPIO模式吧,而不是配置成输出某种电平状态。 Junix 发表于 2020-4-7 11:46
改RCW是要把IO配置成GPIO模式吧,而不是配置成输出某种电平状态。
嗯,是的,改成GPIO模式了,但是后面在系统里面写入没有效果。 GPIO3和GPIO7应该默认是没有设置成gpio的,您再看一下 本帖最后由 Junix 于 2020-4-7 14:09 编辑
zhichao 发表于 2020-4-7 11:08
看错了,没有上拉,您看一下GPIO3和GPIO7是否复用成gpio功能,是否还有其他复用
嗯,我看了下手册,是需要设定一下。 majestli 发表于 2020-4-7 11:52
嗯,是的,改成GPIO模式了,但是后面在系统里面写入没有效果。
我测试是成功的。可以用heartbeat trigger触发高低电平变化。 Junix 发表于 2020-4-9 17:10
我测试是成功的。可以用heartbeat trigger触发高低电平变化。
我也遇到了同样的问题,请问怎样把GPIO3设置为GPIO模式呢? min 发表于 2020-8-18 16:24
我也遇到了同样的问题,请问怎样把GPIO3设置为GPIO模式呢?
GPIO2_12 IFC_CS_B
需要在rcw中修改下面两行。
IFC_GRP_E1_BASE=1
IFC_GRP_E1_EXT=0
页:
[1]