嵌入式爱好者

查看: 24035|回复: 12

[硬件咨询] LS1043a/LS1046a的GPIO3和GPIO7无法控制,一直是高电平。(已修复)

[复制链接]

1

主题

11

帖子

49

积分

i.MX6UL通行证i.MX8MM通行证RK3568通行证LS1043A\46A通行证FCU2301/FCU2302通行证i.MX RT通行证i.MX9352通行证

扫一扫,手机访问本帖
发表于 2020-4-6 09:49:00 | 显示全部楼层 |阅读模式
本帖最后由 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脚本内容如下:

  1. #!/bin/sh

  2. echo 460 > /sys/class/gpio/export
  3. echo out > /sys/class/gpio/gpio460/direction
  4. echo 461 > /sys/class/gpio/export
  5. echo out > /sys/class/gpio/gpio461/direction
  6. echo 462 > /sys/class/gpio/export
  7. echo out > /sys/class/gpio/gpio462/direction
  8. echo 463 > /sys/class/gpio/export
  9. echo out > /sys/class/gpio/gpio463/direction
  10. echo 511 > /sys/class/gpio/export
  11. echo out > /sys/class/gpio/gpio511/direction

  12. while true
  13. do
  14.     echo 0 > /sys/class/gpio/gpio460/value
  15.     echo 0 > /sys/class/gpio/gpio461/value
  16.     echo 0 > /sys/class/gpio/gpio462/value
  17.     echo 0 > /sys/class/gpio/gpio463/value
  18.     echo 0 > /sys/class/gpio/gpio511/value
  19.     echo output-low
  20.     sleep 1
  21.     echo 1 > /sys/class/gpio/gpio460/value
  22.     echo 1 > /sys/class/gpio/gpio461/value
  23.     echo 1 > /sys/class/gpio/gpio462/value
  24.     echo 1 > /sys/class/gpio/gpio463/value
  25.     echo 1 > /sys/class/gpio/gpio511/value
  26.     echo output-high
  27.     sleep 1
  28. done
复制代码






回复

使用道具 举报

0

主题

1173

帖子

2202

积分

发表于 2020-4-7 09:37:22 | 显示全部楼层
您看一下原理图,这两个引脚被硬件拉高了

点评

我的原理图版本是1.2,原理图上看不出有上拉。 话说回来,上拉会导致无法输出低电平吗?这样的话,要怎么用这俩IO呢?  详情 回复 发表于 2020-4-7 10:41
点评回复 支持 反对

使用道具 举报

1

主题

11

帖子

49

积分

i.MX6UL通行证i.MX8MM通行证RK3568通行证LS1043A\46A通行证FCU2301/FCU2302通行证i.MX RT通行证i.MX9352通行证

 楼主| 发表于 2020-4-7 10:41:25 | 显示全部楼层
zhichao 发表于 2020-4-7 09:37
您看一下原理图,这两个引脚被硬件拉高了

我的原理图版本是1.2,原理图上看不出有上拉。
话说回来,上拉会导致无法输出低电平吗?这样的话,要怎么用这俩IO呢?
点评回复 支持 反对

使用道具 举报

0

主题

1173

帖子

2202

积分

发表于 2020-4-7 11:08:52 | 显示全部楼层
看错了,没有上拉,您看一下GPIO3和GPIO7是否复用成gpio功能,是否还有其他复用

点评

GPIO7只有GPIO模式,不能复用为其他。飞凌是怎么测的呢?  详情 回复 发表于 2020-4-7 14:04
用的是ubuntu的原始镜像测试的。没有做任何改动。GPIO7就是一个GPIO,没有复用功能。GPIO3是和qspi的B复用的,这个也没有开启复用。而且我测过这两个IO的驱动能力还很强,不是弱上拉。所以能否检查一下核心板的电路  详情 回复 发表于 2020-4-7 11:17
点评回复 支持 反对

使用道具 举报

1

主题

11

帖子

49

积分

i.MX6UL通行证i.MX8MM通行证RK3568通行证LS1043A\46A通行证FCU2301/FCU2302通行证i.MX RT通行证i.MX9352通行证

 楼主| 发表于 2020-4-7 11:17:50 | 显示全部楼层
zhichao 发表于 2020-4-7 11:08
看错了,没有上拉,您看一下GPIO3和GPIO7是否复用成gpio功能,是否还有其他复用

用的是ubuntu的原始镜像测试的。没有做任何改动。GPIO7就是一个GPIO,没有复用功能。GPIO3是和qspi的B复用的,这个也没有开启复用。而且我测过这两个IO的驱动能力还很强,不是弱上拉。所以能否检查一下核心板的电路图,看是怎么接出来的,感谢!

点评

我也遇到到同样的问题,我用的1012核心板,按照技术支持说的修改了RCW,写入无效,默认值是啥就是啥,改不了  详情 回复 发表于 2020-4-7 11:30
点评回复 支持 反对

使用道具 举报

6

主题

19

帖子

52

积分

i.MX6UL通行证i.MX8MM通行证i.MX8MP通行证LS1012A通行证LS1043A\46A通行证

发表于 2020-4-7 11:30:05 | 显示全部楼层
Junix 发表于 2020-4-7 11:17
用的是ubuntu的原始镜像测试的。没有做任何改动。GPIO7就是一个GPIO,没有复用功能。GPIO3是和qspi的B复 ...

我也遇到到同样的问题,我用的1012核心板,按照技术支持说的修改了RCW,写入无效,默认值是啥就是啥,改不了:(

点评

改RCW是要把IO配置成GPIO模式吧,而不是配置成输出某种电平状态。  详情 回复 发表于 2020-4-7 11:46
点评回复 支持 反对

使用道具 举报

1

主题

11

帖子

49

积分

i.MX6UL通行证i.MX8MM通行证RK3568通行证LS1043A\46A通行证FCU2301/FCU2302通行证i.MX RT通行证i.MX9352通行证

 楼主| 发表于 2020-4-7 11:46:54 | 显示全部楼层
majestli 发表于 2020-4-7 11:30
我也遇到到同样的问题,我用的1012核心板,按照技术支持说的修改了RCW,写入无效,默认值是啥就是啥,改 ...

改RCW是要把IO配置成GPIO模式吧,而不是配置成输出某种电平状态。

点评

嗯,是的,改成GPIO模式了,但是后面在系统里面写入没有效果。  详情 回复 发表于 2020-4-7 11:52
点评回复 支持 反对

使用道具 举报

6

主题

19

帖子

52

积分

i.MX6UL通行证i.MX8MM通行证i.MX8MP通行证LS1012A通行证LS1043A\46A通行证

发表于 2020-4-7 11:52:43 | 显示全部楼层
Junix 发表于 2020-4-7 11:46
改RCW是要把IO配置成GPIO模式吧,而不是配置成输出某种电平状态。

嗯,是的,改成GPIO模式了,但是后面在系统里面写入没有效果。

点评

我测试是成功的。可以用heartbeat trigger触发高低电平变化。  详情 回复 发表于 2020-4-9 17:10
点评回复 支持 反对

使用道具 举报

0

主题

1173

帖子

2202

积分

发表于 2020-4-7 14:03:29 | 显示全部楼层
GPIO3和GPIO7应该默认是没有设置成gpio的,您再看一下
点评回复 支持 反对

使用道具 举报

1

主题

11

帖子

49

积分

i.MX6UL通行证i.MX8MM通行证RK3568通行证LS1043A\46A通行证FCU2301/FCU2302通行证i.MX RT通行证i.MX9352通行证

 楼主| 发表于 2020-4-7 14:04:18 | 显示全部楼层
本帖最后由 Junix 于 2020-4-7 14:09 编辑
zhichao 发表于 2020-4-7 11:08
看错了,没有上拉,您看一下GPIO3和GPIO7是否复用成gpio功能,是否还有其他复用

嗯,我看了下手册,是需要设定一下。
点评回复 支持 反对

使用道具 举报

1

主题

11

帖子

49

积分

i.MX6UL通行证i.MX8MM通行证RK3568通行证LS1043A\46A通行证FCU2301/FCU2302通行证i.MX RT通行证i.MX9352通行证

 楼主| 发表于 2020-4-9 17:10:24 | 显示全部楼层
majestli 发表于 2020-4-7 11:52
嗯,是的,改成GPIO模式了,但是后面在系统里面写入没有效果。

我测试是成功的。可以用heartbeat trigger触发高低电平变化。

点评

min
我也遇到了同样的问题,请问怎样把GPIO3设置为GPIO模式呢?  详情 回复 发表于 2020-8-18 16:24
点评回复 支持 反对

使用道具 举报

2

主题

6

帖子

14

积分

发表于 2020-8-18 16:24:48 | 显示全部楼层
Junix 发表于 2020-4-9 17:10
我测试是成功的。可以用heartbeat trigger触发高低电平变化。

我也遇到了同样的问题,请问怎样把GPIO3设置为GPIO模式呢?

点评

本帖最后由 Junix 于 2020-4-9 17:09 编辑 用linux脚本测试,GPIO3和GPIO7一直输出高电平1.8V。 GPIO4~GPIO6正常输出,电平可以反转。 在uboot环境下操作寄存器 (1)进入uboot后,测试GPIO3~GPIO7的  详情 回复 发表于 2020-8-25 11:10
点评回复 支持 反对

使用道具 举报

1

主题

11

帖子

49

积分

i.MX6UL通行证i.MX8MM通行证RK3568通行证LS1043A\46A通行证FCU2301/FCU2302通行证i.MX RT通行证i.MX9352通行证

 楼主| 发表于 2020-8-25 11:10:33 | 显示全部楼层
min 发表于 2020-8-18 16:24
我也遇到了同样的问题,请问怎样把GPIO3设置为GPIO模式呢?




GPIO2_12 IFC_CS_B[3]
需要在rcw中修改下面两行。
IFC_GRP_E1_BASE=1
IFC_GRP_E1_EXT=0
点评回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-11-24 09:00

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表