MTK feature phone GPIO设置

、使用Drv_Tool配置GPIO相应参数(具体配置参照硬件原理图,填充即可)

MTK feature phone GPIO设置_第1张图片

1.各列参数说明:
1.1.Def.Mode: 表示开机后gpio模块初始化后的GPIO的模式,每个GPIO pin最多有7种模式,MODE0总是为GPIO mode.。

1.2.M0--M7:M0-M1-M3-M4-M5-M6-M7各个GPIO的模式分别代表Def.Mode各个模式是enable还是disable的状态。

备注:

1)GPIO一般有4种模式M0/M1/M2/M3,是指在gpio模块初始化以后,我们需要选用的gpio模式的种类和个数,如GPIO0有如下M0,M1,M2,M3四种工作模式:0:GPIO,1:CMRST,2:CLKM0,3:DSP_GPO0。

2)Def.Mode 和M0--M7 总共9列组合用来设置GPIO的模式。


1.3.InPull En:表示enable Inpull 还是disable Inpull。(Only valid when GPIO is input mode)

1.4.InPull SelHigh:表示是否需要拉高(上拉)。(Only valid when GPIO is input mode and "InPull En" is enable)

备注:

1)是否enable pull 取决于连接到这个GPIO pin脚的外围设备

2)如果为enable pull ,则可以配置成 pull-up or pull down.


1.5.R0/R1:


1.6.Def.Dir:表示开机后gpio模块初始化后的GPIO的输入输出方向配置。

1.7.In/Out:表示gpio模块初始化以后,我们需要选用的输入或输出方向。

备注:

1)每个GPIO pin都可以配置成input or output.。

2)Def.Dir和In/Out:三列组合起来一起用于配置GPIO的输入输出方向。

3)如果GPIO pin如果是output pin,则output value 可以配置成high(1) or low(0).

4)如果GPIO pin如果是input pin,则input value 可以配置成high(1) or low(0).


1.8.INV:GPIO 的数值是否可以被改变。(The GPIO data can be inverted or un-inverted)

备注:此项暂不使用,默认全部不勾选,不处理不考虑。

1.9.OutHigh:It set the default output value is high(1).(Only valid when GPIO is output mode)

1.10.VarName1/2/3:给gpio口一个名称,这样你就可以在程序里使用初始化的名字来调用这个gpio口。

备注:VarName2/3 is for special class when  a GPIO pin is shared  between two applications or modules.


1.11.Uem GPIO String:作调试用,在工程模式的dev->GPIO里面可以检查到。



二、GPIO有关的函数

1.void GPIO_ModeSetup(kal_uint16 pin, kal_uint16 conf_dada)

功能:设置GPIO的工作模式是作为GPIO,还是作为专有功能接口。
参数:
pin:GPIO 的pin脚号,对应于原理图上MTK62XX 主CPU芯片的上的GPIO标号
conf_dada:值有0~7。其中0是表示作为GPIO模式,其他根据专有功能的不同进行设置。
 
2.void GPIO_InitIO(char direction, char port)
功能:初始化GPIO的工作方向是作为输入,还是作为输出
参数:
direction:工作方向,0表示输入,1表示输出
port:GPIO的pin脚
 
3.char GPIO_ReadIO(char port)
功能:从GPIO读取数据
参数:
port:GPIO的pin脚
 
4.void GPIO_WriteIO(kal_char data, kal_char port)
功能:往GPIO写数据
参数:
data: 1表示给高电平,0表示给低电平
port:GPIO的pin脚

备注:这些函数在Gpio.C中可以找到。 


eg:具体GPIO操作:

GPIO_ModeSetup(led_signal_power_en_pin, 0); //GPIO pin模式设置成GPIO模式
GPIO_InitIO(1, led_signal_power_en_pin); //输出方向
GPIO_WriteIO(1, led_signal_power_en_pin); //写入高电平


三、GPIO其他事项说明
1.GPIO口在系统上电的时候,有的是默认高电平,有的是默认低电平,这是MCU内部决定的,软件无法更改,但是在系统开机过程中,会对GPIO进行初始化,MCU中有几个GPIO模式初始化寄存器,通过这个寄存器给GPIO设置初始模式。

2.这个初始化过程在Gpio_Drv.C中的函数GPIO_init()中,项目开始的时候,先要检查这个部分的模式设置是否正确。

3.GPIO的设置相对来讲比较简单,只要仔细参对原理图,基本上就可以将GPIO配置好。当然有些时候GPIO配置好了也达不到效果,就需要和硬件工程师一起来进行检测分析,测量对应电路的工作电压或电流,来判断工作是否正常。总之在前期的调试方面,多跟硬件工程师沟通、讨论、分析,会很快解决问题。

你可能感兴趣的:(MTK feature phone GPIO设置)