第三课--MicroWRT 复用GPIO的使用

来自Microduino Wikipedia
跳转至: 导航搜索

本节教程主要介绍如何释放及使用GPIO复用引脚。因为受芯片资源的限制,一些GPIO引脚是复用的,有时候我们需要释放这些


7620A GPIO pin share scheme

我们查看7620A的datasheet,会看到如下的GPIO引脚。(注:如下资料来自MT7620 datasheet)

GPIO的注册

在openWrt的编译目录下,/target/linux/ramips/dts/mt7620n.dtsi里有对gpio的注册。 结合mt7620的datasheet里GPIO pin share schemes以及在mt7620n.dtsi里我们看到有, 将GPIO#0到GPIO#72(中间有仅仅做GPO或GPI的)分为四组GPIO0-GPIO3; 对应GPIO0是从GPIO#0开始到GPIO#23,一共有24个;对应GPIO1是从GPIO#24开始到GPIO#39,一共有16个; 对应GPIO2是从GPIO#40开始到GPIO#71,一共有32个;

GPIO组 GPIO引脚 引脚总数
GPIO group0 GPIO#0 ~ GPIO#23 24
GPIO group1 GPIO#24 ~ GPIO#39 16
GPIO group2 GPIO#40 ~ GPIO#71 32
GPIO group3 GPIO#72 1

GPIO 在dts中的描述:

文件:114.jpg
GPIO PIN in DTS
文件:115.jpg
GPIO PIN in DTS
文件:116.jpg
GPIO PIN in DTS
文件:117.jpg
GPIO PIN in DTS

注册GPIO引脚

我们的固件使用/target/linux/ramips/dts/MZK-750DHP.dts 作为基础,并进行功能的添加。如果想用GPIO接口首先要使能GPIO并且释放gpio引脚复用功能。 在本教程中,我们将复用WLED引脚来控制LED灯的亮灭。通过查7620A的datasheet,可以知道WLED引脚对应GPIO#72,及第4组GPIO。

1.首先来使能GPIO.

打开ZXK-750DHP.dts, 做如下修改。

文件:118.jpg
Enable GPIO

2.释放引脚复用功能

文件:119.jpg
Release GPIO

3.注册GPIO

dts里对设备的注册很简单,如gpio-leds的注册,compatible要与Led的驱动leds-gpio.c里compatible对应,label是设备的名字, 设备注册成功,在microWRT的文件系统下就会有 /sys/class/leds/microwrt:blue:air。

文件:1110.jpg
Release GPIO

在microWRT的WLED 引脚和GND引脚之间接上一个LED,然后通过下面的命令来控制LED灯的亮灭。

echo 1 > /sys/class/leds/microwrt\:blue\:air/brightness
echo 0 > /sys/class/leds/microwrt\:blue\:air/brightness

结果