TI中文支持网
TI专业的中文技术问题搜集分享网站

AM1808 u-boot/linux GPIO控制

我需要用gpio做输入输出,有些疑问,请高手指点一下。

1,我用gpio作为输出,3.3V经led电阻到gpio脚。结果,系统按住复位键后,LED灯亮。

放开reset键,灯变灭。(uboot linux启动后也是灭的)。

请问1808的gpio的复位后,是什么状态?u-boot和linux启动后又是什么状态?(我在datasheet里面没有找到,只说复位后是default state)。

我的系统需要gpio不管是复位时,上电时(uboot和linux启动和运行的工程中),一直到我的应用程序控制gpio前,状态都应该是一致的,要么是高,要么是低。

可目前看来不是这样。

请问该如何处理?

2,从ti的官网下载的源码,没有注册gpio-led。我按照一些文档,注册了struct gpio_led, gpio_led_platform_data, platform_data,并且

注册了,platform_device_register(),且注册后,ret值的正确的。说明注册是成功的。

在xconfig内核配置时,也选上了kernel feature 和 led support中选上了相应的选项。

但是内核启动后,在/sys/class/leds下面没有任何信息。

请问会是什么问题?

demo xie:

我在u-boot中,添加了gpio的控制,让GPIO输出为低电平,这样:在U-BOOT的运行时LED应该是亮的。

这时出现的情况是:

上电时,LED亮一下,马上就灭了,然后再是一直亮(这时u-boot启动起来了)。

不能做到让led一直亮嘛?

我在怀疑,是不是ubl里面就已经把gpio的输出改变了。这样我是不是还要修改ubl的代码。

Yaoming Qin:

回复 demo xie:

你可以不放ubl,让板子只是跑跑rom code,看板子起不起来

demo xie:

回复 Yaoming Qin:

我没这样测过。

我一直按住复位键,然后GPIO口输出就一直是低电平。

我认为这是芯片的特性。

我想唯一的办法就是当芯片处于复位状态下,用门电路来阻止GPIO输出。

Yaoming Qin:

回复 demo xie:

这个可以查查文档中pin脚reset后的状态

demo xie:

回复 Yaoming Qin:

yaoming,你好。最近一直在忙别的。今天又开始弄gpio。

按照你的指点,我看了下AXR3-6 4个管脚的情况。

复位后AXR3-5被配置为3-state的高阻态。AXR6被配置为了PRU0_R31[6]。

但是,我测试得到的情况是:AXR3-5复位后和u-boot启动后,为高电平。我测量时这几个gpio是悬空的。

我看了下u-boot代码,u-boot并没有对这几个gpio进行配置。

请问这是什么原因??按理应该是测量不到电压的。

demo xie:

回复 demo xie:

忘了说明,我用的是RMII,不是MII,所以pinmux()的时候没有初始化arx3-6这几个脚

demo xie:

回复 demo xie:

我今天在U-BOOT上加入了pinmux的值显示,显示pinmux(2)的值为0x0,这时AXR3-5应该是高阻态此时,但为何会有3.3v电压呢?

AM1808 initialization passed!

Booting TI User Boot Loader

   UBL Version: 1.65

   UBL Flashtype: NAND

Starting NAND Copy…

Valid magicnum, 0x55424CBB, found in block 0x00000006.

  DONE

.ere is pinmux(19): is 0x808000.000.

here is pinmux(2): 0x0.

NAND:  128 MiB

MMC:   davinci: 0

Bad block table found at page 65472, version 0x01

Bad block table found at page 65408, version 0x01

In:    serial

Out:   serial

Err:   serial

ARM Clock : 456000000 Hz

DDR Clock : 150000000 Hz

here is pinmux(19)1: is 0x808000.

here is pinmux(2)1: 0x0.

Net:   Ethernet PHY: GENERIC @ 0x00

DaVinci-EMAC

Hit any key to stop autoboot:  0

reading boot.scr

demo xie:

回复 demo xie:

我在u-boot下用md命令看了pinmux(2)寄存器的值,也是0x0。

Yaoming Qin:

回复 demo xie:

你能不能直接看看设置pinmux部分的代码,改改看

demo xie:

回复 Yaoming Qin:

不明白你的意思。

我在u-boot的两个地方加了pinmux(2)的显示,发现都是0x0。然后在u-boot启动后用md命令看内存,结果也是0x0。

但是,我测量pinmux(2)对应的一些管脚的电压,始终为3.3v,而不是高阻态。

你是让我在u-boot中给pinmux(2)赋值0x0,然后再测管脚的电压?

赞(0)
未经允许不得转载:TI中文支持网 » AM1808 u-boot/linux GPIO控制
分享到: 更多 (0)