由于工作中要去掉安卓层,所以接下来调试GPIO的时候做了以下工作,大神绕过就好
(这部分本人也是粘贴的,同事做的)
GPIO管脚分配
1. 内核源码查看
$ vim linux-3.4/arch/arm/mach-sunxi/include/mach/gpio.h
从中查看以及参考寄存器手册不难看出
GPIO编号 = 组编号BASE + 组内编号
例如: PB3 ==>
32 (PB : SUNXI_PB_BASE 32) + 3(PB3: 3) = 35
即:PB3 的GPIO编号为 35
2. 根据GPIO标号使用GPIO使用
1) 内核配置
① 进入linux-3.4 目录
$ cd linux-3.4
② 复制配置a33_vstar配置选项
$ cp a33_vstar_defconfig .config
③ 修改配置选项
$ make ARCH=arm menuconfig
Device Drivers --->
-*- GPIO Support --->
[ ] /sys/class/gpio/...(sys interface)(目的是为了给用户层提供操作接口,才有接下来的步骤)
选择 *
2) 编译内核,烧录至开发板。 详情点击跳转(嘿嘿,你可别真信了)
3) 运行开发板
① 进入gpio操作的目录下
cd /sys/class/gpio
② 操作方法(以PB3--GPIO编号为35 为例)
导出 /sys/class/gpio# echo 35 > export
取消导出 /sys/class/gpio# echo 35 > unexport
/sys/class/gpio# cd gpio35
设置方向 /sys/class/gpio/gpio35# echo out > direction
注: out --输出 in --输入
查看方向 /sys/class/gpio/gpio35# cat direction
设置输出 /sys/class/gpio/gpio35# echo 1 > value
注: 0 --低电平 1 --高电平
查看输出 /sys/class/gpio/gpio35# cat value
3. 调试过程中遇到的问题
1) GPIO 编号在操作手册中未明确给出,需要自己计算。
2) GPIO在调试时发现个别引脚,存在高电平输出时引脚电压只有 0.5V,如PB3 。
接下来的话会介绍pwm的调试过程
1. 查找LCD设备
cd /sys/devices
find . -name “*lcd*”
经查找和尝试,发现/sys/devices/virtual/disp/disp/attr/lcdbl 为背光控制的操作文件
2. 背光操作方法
命令行: echo 0 > /sys/devices/virtual/disp/disp/attr/lcdbl
背光控制参数范围:0 ~ 255
其中,0表示最暗,255表示最亮。
注意:(去看芯片手册,嘿嘿)
A33_vstar 具有PWM功能的引脚有2个。
15 | LCD-PWM/PWM0 |16 |TP-RST/PWM1/PH1
其中PH0 为LCD背光控制引脚,PH1为触摸屏reset引脚。
离线
Спасибо, что поделились!
离线