我需要用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,然后再测管脚的电压?