GPIO口一是个比较重要的概念,用户可以通过GPIO口和硬件进行数据交互(如UART),控制硬件工作(如LED、蜂鸣器等),读取硬件的工作状态信号(如中断信号)等。GPIO口的使用非常广泛。
一、 设置硬件环境连接VS子板 从dm8168扩展出来的GPIO连接到了VS子板的J1接口
二、配置编译linux内核1》 在linux-2.6.37-psp04.00.00.12/arch/arm/mach-omap2/ board-TI8168evm.c文件的558行添加
TI816X_MUX(SC1_DATA, OMAP_MUX_MODE2),
TI816X_MUX(SC0_DET, OMAP_MUX_MODE2),
配置GP0[24] GP1[9]管脚为GPIO管脚
2》 配置linux内核 使能Device Drivers –》 GPIO Support –》 /sys/class/gpio
三、启动开发板四、创建GPIO节点
echo 24 》 /sys/class/gpio/export
echo 41 》 /sys/class/gpio/export
五、设置GPIO方向cd /sys/class/gpio/gpio24
echo “out” 》 direcTIon
cd /sys/class/gpio/gpio41
echo “out” 》 direction
六、改变GPIO值cd /sys/class/gpio/gpio24
echo 1 》 value
cd /sys/class/gpio/gpio41
echo 1 》 value
使用万用表测量VS子板 –》JP1 –》1 或3管脚为高电平
cd /sys/class/gpio/gpio24
echo 0 》 value
cd /sys/class/gpio/gpio41
echo 0 》 value
使用万用表测量VS子板 –》JP1 –》1 或3管脚为低电平
七、运行C测试程序运行gpio0-24-test 或gpio1-9-test测试例程,使用示波器可以看到频率为1HZ的方波
一、Follow these steps for controlling the GPIO lines from sysfs entries
a. Export, which GPIO pin you want to control. Below steps are done with respect to GPIO30 (an example
$ echo 30 》 /sys/class/gpio/export
b. Change the GPIO pin direction to in/out
$ echo “out” 》 /sys/class/gpio/gpio30/direction
$ echo “in” 》 /sys/class/gpio/gpio30/direction
c. Changing the value
$ echo 1 》 /sys/class/gpio/gpio30/value
$ echo 0 》 /sys/class/gpio/gpio30/value
d. Unexport the GPIO pin
$ echo 30 》 /sys/class/gpio/unexport
Sysfs entries are created from 0 - 63 in case of DM816X because it has two GPIO banks 0 and 1.
Note: GPIO‘s which are used already in the drivers can not be control from sysfs, unless untill driver export that particular pin.
Run these commands for knowing what are the GPIO’s already requested in the drivers.
$ mount -t debugfs debugfs /sys/kernel/debug
$ cat /sys/kernel/debug/gpio
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)