- UID
- 111776
- 性别
- 男
|
EY16的I/O通过ULN2003驱动继电器的线圈,继电器的触点接电机 (直流电机12V,正常3.4A,堵转6A)。
在进入main函数后,我在config寄存器中,禁止了COP、LVI。
如果不加电机,单片机以及继电器的触点动作一切正常。
如果电机加上去,单片机在电机运行过程中有时会复位。但读出SRSR寄存器,有时值为0,即表示此复位原因不是datasheet上所说明的七种原因中的一种;
有时值为0x40,表示是外部RST引脚复位。但前者占大多数情况。我原先RST引脚是悬空的,后在其上加了阻容电路,也没啥效果。
我也基本排除了程序跑飞,非法码,非法地址等等复位可能,所以对这个复位原因很是疑惑。
怀疑以下两种原因,请大侠指点:
1. 电机的运行给系统12V开关电源带来了波动
考虑到成本,现在的系统设计没有采用完全隔离。系统一个电源供电,电机电源输入端加了1000u的电解电容。
电机运行时,用示波器观察电源信号,是带来了少许噪声,但没超过7805的稳压范围。我在7805的5V输出端也加了大电容稳压
事实上用示波器也没量到5V信号有波动。那要是这样也只可能是POR、LVI等复位原因。
如果不增加成本,怎么做好隔离??
2. 电机通过继电器影响了EY16 的I/O??
虽然继电器在触点端不加电机时动作都对,但加上电机时,EY16 驱动ULN2003的I/O的电流是否比前者变化很大 ??
对于EY16的I/O,直接接到ULN2003去驱动继电器,这种情况下可有问题?看EY16的datasheet上,其I/O没有说有内部上拉。
那可要自己外接上拉? |
|