这是我的电路图,元件参数是按照图焊接的,R34没有1欧电阻在手上,直接短接了,在芯片焊上去之后,接上电机,可以正常运行。但是总是在调试一会儿之后就有输出出现问题。已经换了3颗芯片了。主要的问题就是没有输出。现在板子上的那颗,M2正转可以,反转无输出;M3反转可以,正转无输出。不管怎么改程序都不行。
电机正反转程序如下:
因为有经过光耦,所是负逻辑,定时器的周期是900单位
void Motor1_Run(unsigned int speed,unsigned int dir)
{
unsigned int i; if(dir==0) //正转
{
TIM_SetCompare3(TIM4,speed); TIM_SetCompare4(TIM4,900-speed); Motor1_Status=1;
}
else //反转
{
TIM_SetCompare3(TIM4,900-speed); TIM_SetCompare4(TIM4,speed); Motor1_Status=2;
} PBout(10)=0; //RESET_AB=0—–>
TIM_Cmd(TIM4, ENABLE); //使能TIM4
}
Alvin Zheng:
出现问题的芯片输出端有没有出现短路烧毁的状况?
没有输出的时候有FAULT报错吗?
Mingmao Gong:
回复 Alvin Zheng:
都没有出现烧毁的情况,我用的模式是000,换一个新的芯片上去,电机总是能通过按键实现正反转,但多按几次按键之后,电机就只能向一个方向转了。测试了fault引脚,没有错误输出。电机转动的时候,恒流源显示电流不到1A。已经废了四五个芯片了,不明白是什么问题,哎。
后面又遇到奇怪的问题,就是又换了一个芯片,然后输出电压严重偏低,电机转速极慢,但却能实现正反转。
Alvin Zheng:
回复 Mingmao Gong:
仅靠描述,无法判断你所说的问题。在工作时候,有没有办法看一下输出到电机两端的电压波型。并检查一下主电源,charge pump的电压。
你说的开关是用来切换方向的吗?怎么连接和操作的?