MT6253 所有非V1.0版本的datasheet都没有详细对各个GPIO的描述都不详尽。而V1.0版本的datasheet又必须要有MTK的证书连接到他们的服务器才能看到的。因此,以下列表的内容花了我不少时间收集才整理出来。在这里共享给大家,希望能起到参考的作用。
GPIO使用注意事项
一、GPIO应用的总体原则:
不管是什么平台,所有未使用的GPIO必须按如下设置:
1、外部没有上下拉电阻的GPIO必须内部设置为Output Low 状态。
2、如果IO未使用但外部有上拉,必须把该IO内部设置为输入上拉状态,
3、如果IO未使用但外部有下拉,必须把该IO内部设置为输入下拉状态。
4、禁止出现GPIO悬空状态
二、6253平台特殊管脚的应用
1、GPIO0
该引脚在刚开机而还没初始化GPIO寄存器前其状态InPut(只是输入,没PU也没PD),该
引脚是作IC debug使用的,如果刚开机时就把此脚拉高就会导致不能下载或不能开机。
因此必须用10K(一般是10K)下拉到地。但10K下拉会导致0.15mA左右的耗电,故最好用
100K下拉到GND。如果此脚不做其他作用,可以直接把它短路到地。
2、GPIO8~GPIO13
这些GPIO在系统未进行GPIO设置前默认是KROW,如有按键按下,会不断有扫描讯号输
出,此时必将导致由这些IO控制的器件产生状态异常,所以不建议使用GPIO8~GPIO13
作背光使能、开关切换等敏感控制。
3、GPIO18、GPIO65
如果这两个GPIO在设计中没被使用,那么一定要注意把设置为OutPut Low模式或者设置
为输入上拉或下拉,绝对不能悬空。不然会导致不规律的白屏重启
4、GPIO19
该IO与GPIO0一样在刚开机而还没初始化GPIO寄存器前其状态InPut(只是输入,没PU也
没PD),该引脚在刚开机时的高低电平状态决定了系统所采用的Memory的类型,如果为
高电平‘1’那么系统认为挂在总线上的是ADMUX类型的Memory。由于MT6253只支持ADMUX
类型的Memory,故该引脚必须外部上拉到Vio。如果刚开机时就把此脚拉高就不能下载或
不能开机。与GPIO0一样,用10K(一般是10K)上拉到Vio会导致0.15mA左右的耗电,故
最好用100K上拉到Vio。如果此脚不做其他作用,可以直接把它短路到Vio。
5、GPIO78、GPIO79、GPIO80
这三个GPIO与GPIO0和GPIO19一样,在开机在刚开机而还没初始化GPIO寄存器前其状态
InPut(只是输入,没PU也没PD)。使用中要注意它们默认是SIM2功能脚一般情况下就算
只有但SIM卡也不要把它们用作GPIO来使用(未经证实能否当作GPIO用)。
6、GPIO81、GPIO82
这两个GPIO默认是BPI_BUS4、BPI_BUS5,一般不能作为GPIO来使用。如果一定要作为
GPIO使用,软件必须打上MTK专用的补丁方能开启其GPIO的功能,另外听说MTK有专门
的文档说只有GPIO81能做GPIO用,GPIO82不能做GPIO来使用。所以在出原理图的时候
暂时不要把这两个IO口作为GPIO来用,切记。
三、MT6253各个GPIO的开机状态
从以上列表可以看出MT6253各个GPIO的开机状态除了GPIO0、GPIO19、GPIO78、GPIO79、
GPIO80这五个IO口是InPutInPut(只是输入,没PU也没PD)外,其他IO口在刚开机而还没初
始化GPIO寄存器前其状态都已经有默认的高低电平,要么是Output Low、要么是InPut PD或
InPut PU 。所以在设计原理图前必须按照实际应用要求来选择合适的GPIO。譬如对于高电平
有效的音频功放的使能脚不能用复位时默认为InPut PU的GPIO。对于按键灯的使能脚也一样
四、MT6253各个GPIO的IO电源
做驱动时一定要注意GPIO的IO电源,因为MT6253的各个GPIO电源不是全部都用VDD33的
1、GPIO14的IO电源是VDD33_EMI,也就是VM(即Memory电压,1.8V常开),由于目前
MT6253只支持1.8V的ADMUX,因此VDD33_EMI也就是1.8v的。所以采用GPIO14时一定
要注意它所控制的设备IO电压必须是1.8V的设备。
2、GPIO65~GPIO71这七个IO电源是VDD33_MSDC,也就是VMC(即T-FLASH卡的电源电
压),这个电压可编程控制为2.8V或3.0V,默认是3.0V的而且是常开的。所以采用这
七个IO做GPIO功能时一定要注意它所控制的设备IO电压最好是3.0V的,如果是2.8V的
设备那么就要编程使得VDD33_EMI(VMC)输出2.8V。不然3.0V的IO电源驱动2.8V的设
备会导致不必要的漏电(由于VDD33_EMI是常开的,漏电会一直存在而导致待机电流
偏大).若所控设备是2.8V而配置为2.8V时一定要注意所用的T-FLASH卡能否在2.8V下
工作。如果不能那就不能配置为2.8V的IO电压,也就不能用这些IO口来控制2.8V的设
备了.
3、GPIO78~GPIO80这三个IO电压是VSIM2.该IO电源电压也可以编程配置为1.8V和3.0V,
默认是1.8V(注意,其驱动电流只有20mA)。在做SIM2接口时由于这个电压是由插
在SIM2卡槽上的SIM卡电压决定的。所以在实际使用中它并不是软件控制的,是自动
控制的。现在还不清楚作GPIO使用时其IO电压是如何配置的。所以尽量不要用它们
做GPIO.
4、除了以上三点所列出的GPIO外其他的IO口电压都是VDD33,也就是Vio(2.8V常开)。
在做驱动软件是要注意,使用GPIO的时候一定要打开该IO的电源,否则该IO因为没有电压而
工作不正常(出现不管设置IO为高电平或低电平,实际测量到的IO电平都为低电平等不可控
的现象)。