怎么防止GPIO口一上电就就是高电平?
GPIO也有2k的下拉电阻不管用,将下拉电阻地质200欧姆才可以,用的28069,在28035上没有此问题,难道就是因为28069运行速度快?
主程序:
void main(void)
{
InitSysCtrl();//感觉从程序一上电后,GPIO就是高电平
InitGpio();//直到在初始GPIO中,将GPIO拉低,高电平才消失
InitEPwm();
memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (Uint32)&RamfuncsLoadSize);
InitFlash();
DINT;
Susan Yang:您可以看一下 www.ti.com/…/spruh18h.pdf 的
GPxPUD
GPIO端口上电是默认输入高阻态,但是有些IO是内部上拉是使能的,所以在系统上电后,没有程序初始化的情况下,会测试到GPIO是高电平
如 Table 1-83. GPIO Port B Internal Pullup Disable (GPBPUD) Register Field Descriptions 的
Enable the internal pullup on the specified pin. (default for GPIO58-GPIO50))
GPIO复位后默认被内部上拉了,所以呈现高电平。
怎么防止GPIO口一上电就就是高电平?
GPIO也有2k的下拉电阻不管用,将下拉电阻地质200欧姆才可以,用的28069,在28035上没有此问题,难道就是因为28069运行速度快?
主程序:
void main(void)
{
InitSysCtrl();//感觉从程序一上电后,GPIO就是高电平
InitGpio();//直到在初始GPIO中,将GPIO拉低,高电平才消失
InitEPwm();
memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (Uint32)&RamfuncsLoadSize);
InitFlash();
DINT;
user3900194:
回复 Susan Yang:
如何设置,上电后是低电平呢?一上电是高电平很危险的,如果是上下互补的MOS管,先有主电话,GPIO都是高电平,很容易直通管子,造成坏管。
怎么防止GPIO口一上电就就是高电平?
GPIO也有2k的下拉电阻不管用,将下拉电阻地质200欧姆才可以,用的28069,在28035上没有此问题,难道就是因为28069运行速度快?
主程序:
void main(void)
{
InitSysCtrl();//感觉从程序一上电后,GPIO就是高电平
InitGpio();//直到在初始GPIO中,将GPIO拉低,高电平才消失
InitEPwm();
memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (Uint32)&RamfuncsLoadSize);
InitFlash();
DINT;
Susan Yang:
回复 user3900194:
参考 processors.wiki.ti.com/…/General_Purpose_IO_(GPIO)_FAQ_for_C2000
好像没有特别的办法,我再次确认之后给您回复
怎么防止GPIO口一上电就就是高电平?
GPIO也有2k的下拉电阻不管用,将下拉电阻地质200欧姆才可以,用的28069,在28035上没有此问题,难道就是因为28069运行速度快?
主程序:
void main(void)
{
InitSysCtrl();//感觉从程序一上电后,GPIO就是高电平
InitGpio();//直到在初始GPIO中,将GPIO拉低,高电平才消失
InitEPwm();
memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (Uint32)&RamfuncsLoadSize);
InitFlash();
DINT;
Susan Yang:
回复 user3900194:
目前最有效的方法就是加下拉电阻了
怎么防止GPIO口一上电就就是高电平?
GPIO也有2k的下拉电阻不管用,将下拉电阻地质200欧姆才可以,用的28069,在28035上没有此问题,难道就是因为28069运行速度快?
主程序:
void main(void)
{
InitSysCtrl();//感觉从程序一上电后,GPIO就是高电平
InitGpio();//直到在初始GPIO中,将GPIO拉低,高电平才消失
InitEPwm();
memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (Uint32)&RamfuncsLoadSize);
InitFlash();
DINT;
user3900194:
回复 Susan Yang:
我加了2k电阻效果不大,加到500欧姆,才有效果,电阻太小,PWM输出时功耗太大了
怎么防止GPIO口一上电就就是高电平?
GPIO也有2k的下拉电阻不管用,将下拉电阻地质200欧姆才可以,用的28069,在28035上没有此问题,难道就是因为28069运行速度快?
主程序:
void main(void)
{
InitSysCtrl();//感觉从程序一上电后,GPIO就是高电平
InitGpio();//直到在初始GPIO中,将GPIO拉低,高电平才消失
InitEPwm();
memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (Uint32)&RamfuncsLoadSize);
InitFlash();
DINT;
灰小子:
回复 user3900194:
建议提供下电路原理图。
一般加4.7k或者10k的电阻就可以。具体还有要看外围电路。
怎么防止GPIO口一上电就就是高电平?
GPIO也有2k的下拉电阻不管用,将下拉电阻地质200欧姆才可以,用的28069,在28035上没有此问题,难道就是因为28069运行速度快?
主程序:
void main(void)
{
InitSysCtrl();//感觉从程序一上电后,GPIO就是高电平
InitGpio();//直到在初始GPIO中,将GPIO拉低,高电平才消失
InitEPwm();
memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (Uint32)&RamfuncsLoadSize);
InitFlash();
DINT;
mangui zhang:
回复 user3900194:
这种情况也就是程序未控制IO口的状态下出现IO口状态不定 导致开关管导致的误操作
我以前的设计中使用2K以下下拉电阻就能保证IO口为低电平你这个500才起效果可能你
外部电路造成了回路 需分析这种只能通过硬件解决一般开关管输入都是高阻
怎么防止GPIO口一上电就就是高电平?
GPIO也有2k的下拉电阻不管用,将下拉电阻地质200欧姆才可以,用的28069,在28035上没有此问题,难道就是因为28069运行速度快?
主程序:
void main(void)
{
InitSysCtrl();//感觉从程序一上电后,GPIO就是高电平
InitGpio();//直到在初始GPIO中,将GPIO拉低,高电平才消失
InitEPwm();
memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (Uint32)&RamfuncsLoadSize);
InitFlash();
DINT;
user3900194:
回复 mangui zhang:
非常感谢,那我找下外部电路试试看
TI中文支持网



