问题:硬件研发同事在调试一块TMS32F28027产品电路板时发现GPIO34出现上电控制正常,运行中只要Reset芯片,系统进入锁死状态,GPIO34引脚外部直接通过一个510欧电阻驱动光耦TLP181。据同事描述只有这个引脚驱动光耦的时候会出现这个问题,换用其它引脚驱动光耦,或则光耦去掉换成驱动LED都不会发生这个问题。
相关原理图如下:
处理过程:首先查TI此芯片相关手册,发现GPIO34是普通GPIO复用比较输出端,对于端口使用方面没有任何问题,然后对于光耦驱动部分首先怀疑IO引脚驱动力不够问题,换用1k电阻问题依旧。此后查找思路转换到软件IO口配置部分,仔细查看代码初始化IO部分发现IO口配置无问题。此时问题陷入瓶颈,于是在网络上查找此芯片GPIO34相关的内容,发现芯片手册上未提及关于GPIO34内容,其实GPIO34除了手册上提及两个功能外还有第三个功能,芯片Boot选择脚,此引脚和另外两引脚状态决定了芯片上电后引导选择,当上电后GPIO34处于低电平的时候会使芯片进入Boot Rom等待状态,遂怀疑因为光耦容性的关系和驱动力关系(据手册芯片IO只能输出3mA),当reset时候因为某种原因拉低了此引脚使芯片进入了等待状体。于是在引脚和光耦间加一级三极管缓冲后问题解决。
回顾:引脚输出能力要提前预估,对于特殊引脚一定要查清后再使用。