我的产品需要使用tm4c123的三个gpio口控制3个继电器的开关,继电器的吸合电流有独立的电源供电,tm4c123的3个IO我是
直接连接到继电器的3个控制信号上,当中没有加电阻。目前我碰到的问题是,在测试中经常会出现这个问题,GPIO拉高时继电器正常吸合,此时万用表量
GPIO输出为3.3V,继电器正常吸合,但有时过了一段时间继电器会吸合失效,此时去量GPIO的输出电压,只有零点几伏,我可以肯定我程序没有对gpio做置0操
作。此时程序还在正常执行,说明tm4c123没有重启,设备没有复位。 我对GPIO配置为:
GPIOPadConfigSet(GPIO_PORTE_BASE, GPIO_PIN_0, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD);,
配置方向为OUTPUT。
我想请教一下出现这种GPIO输出不稳定的情况是否可以通过加大GPIO输出驱动电流来改善?以及gpio配置时是否需要配置为pull up?
谢谢!
xyz549040622:
驱动继电器,肯定是需要隔离的,你这不隔离,肯定要出问题的。用三极管或者光耦做隔离驱动吧。
alex c:
回复 xyz549040622:
谢谢你的回复
是我描述有误,硬件设计这里tm4c123 io到继电器这里是有光耦隔离的 但是没有加电阻,所以我想是否可以把io设成推挽加上拉的模式,这样是否会稳定。此外还有一个问题请教,当IO设成output模式时,是否可以用gpioread函数读到此io引脚的电平输出状态?
alex c:
回复 xyz549040622:
alex c:
回复 xyz549040622:
谢谢您的耐心回复。
1.我上传了我的电路图,我的cpu板和继电器板是分开的,TM4C123 io出来后通过连接器和继电器板相连,
光耦在继电器板上。
2. 您说的在IO出来串个电阻就可以量到IO的实际电平,这个量是指用万用表去量是吗?我用GPIOPinRead读的话还是只能读到
我设置的电平而不是实际的电平是吗?
xyz549040622:
回复 alex c:
如果我没看错的话,你的光耦的接法不对,光电二极管这边接MCU,三极管那边接继电器,你的接法看不懂
TI中文支持网



