demoxiedemoxie 发表于 2012-5-16 08:24:12

AM1808 u-boot/linux GPIO控制

需要用gpio做输入输出,有些疑问,请高手指点一下。
1,我用gpio作为输出,3.3经led电阻到gpio脚。结果,系统按复位键后,LED灯亮。
放开reset键,灯变灭。(uboot linux启动后也是灭的)。
请问1808的gpio的复位后,是什么状态?u-boot和linux启动后又是什么状态?(我在datasheet里面没有找到,只说复位后是default state)。
我的系统需要gpio不管是复位时,上电时,一直到我的应用程序控制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下面没有任何信息。
请问会是什么问题?

谢谢大家。

demoxiedemoxie 发表于 2012-5-16 08:50:20

我再实验了一下,我一上电,led会亮一下马上就灭了。这是应该是在启动u-boot。我在怀疑,是不是ubl里面就已经把gpio的输出改变了。这样我是不是还要修改ubl的代码。

demoxiedemoxie 发表于 2012-5-16 11:02:10

我在u-boot中,添加了gpio的控制,让GPIO输出为低电平,这样:在U-BOOT的运行时LED应该是亮的。
这时出现的情况是:
上电时,LED亮一下,马上就灭了,然后再是一直亮(这时u-boot启动起来了)。
不能做到让led一直亮嘛?

demoxiedemoxie 发表于 2012-6-30 11:10:21

问题解决了,AM1808的高阻态是假的高阻态。必须在管脚上下拉一个小于3K的电阻,否则输出为高电平。
页: [1]
查看完整版本: AM1808 u-boot/linux GPIO控制