大家好,,请教大家一个问题 。 故障描述(有点长):电路见图 我用STM32F103RET6 做了一块制冷机的控制主板,板上有2继电器控制220V交流电通断制冷压缩机及水泵电机,两个的功率小于1000W。 板上有多路ADC采集,3路温度(ADC15,ADC14,ADC7)及1路电压(ADC1),一个蜂鸣器(接ADC8,数字口)。 主板焊好硬件下载程序后装进样机通电测试,正常,,,过了N小时( 时间不确定)后, STM32芯片的ADC15端口会自动拉成低电平不变了,即该脚电压不再受所接的温度电阻电路的信号电压控制了。。导致温度值测不了了。 感觉这个ADC15端口象被置了0一样。(我断开温度电阻电路还是低,不关外部电路的事)。。。而且样机断电后,重新上电, 这个ADC15端口也是保持一直是低的。不能被重启程序重新配置。象是锁死了,坏了一样。之 后每次开机ADC15均拉低了。 以为是芯片的端口坏了,, 但是,用烙铁把STM32芯片片拖焊一下,,ADC端口就又好了。又可正常 测量了。于是装机再测,但N小时后,,就又会重复出现。 还有更怪的,这个ADC15引脚的旁边引脚是接一蜂鸣器(ADC8脚),平时为低。,当出现ADC15 端口被 拉低时,,让蜂鸣器引脚拉高, 结果,ADC15脚 也跟着拉高了。跟随蜂鸣器引脚电平(ADC8脚) 的变化,同时受控。 (已排除了板子短路问题,也重新找另一打板厂打过板了。焊接板子也没用助焊剂的) 已做了5 块以上的板子都有这个现象。。。其中一块板子,用于测电压的ADC1也出现了拉低现象,,另有一块还出现了ADC15先拉低,N小时后,ADC14拉低,ADC7也拉低了。 我找硬 件问题10多天了,问题一直找不出来。感 觉自已很没用。 请大家帮帮忙分析一下。这个到底是硬 件的什么 问题造 成的。应该怎样改进。谢谢。。 |
çµè·¯å¾
çµè·¯æ¿å¾
评分
查看全部评分
另一工程 师写了个ADC测试程 序测试硬件,跑了4天了。一点问题都 没有。
前天我向原工程 师拿到了他的程序,发现他的程 序的中断没写好,定时中断里执行的众多函数而时间超时及各定时中断优先级设置混乱。低级中断内容设置成抢断模式,抢占后造成高级的中断内容不能执行。
“测温ADC是以DMA方式采集,,估计是DMA采集时,出现中断超时或抢占后引起DMA内存操作失控而对寄存器乱写。”引号内的判断是我估计的,不一定是。。。这个要STM32的技术支持来解释一下。
拿到原程 序员写的程 序后,叫新来的程 序员把他的程序中的DMA的ADC采集方式改了,,把各个中断里执行的函数移出中断外,,再设置好优先级。重新编译下载到板子上跑。。到今天有三天了。没有出现ADC口拉低现象,复位脚 也没拉低,,,看,用原程 序员的程 序修改过后跑,也没出现ADC或其它端品拉低的现象,这应该可以判定是软件的问题造 成的。
但是,
今 天叫原程序员按新程 序员的方法修改他的程 序,结果碰硬钉子了。原程 序员还是坚持说 他的程 序没错,还说,要写自已写去。。。。。。嗯。。。这个。。。真不好办了。
"1、你说的beep对ADC的那个影响能再描述清楚一点吗?能做一个不接Beep的电路测试一下吗?
2、感觉电路从ADC引入干扰的可能行不打。而且这种干扰按道理是不可回复的。但是你的电路中ADC进入的地方是一个10K的电阻呀。一般没有问题。另外是不是每个拖焊就好了?那如果不拖焊的话,吧电断掉然后测量一下,有关系的那几个引脚是否短路,电阻是多少?再找一块正常的测试一下。
3、请问一下电源怎么提供的?和电机的电源应该不一样吧?"
1,BEEP脚是接到UNL2003(12V供电的,继电器驱动IC)的一个输入脚,UNL2003的输出脚接到有源蜂鸣器 。
2,感觉是程 序有问题,,因为我做了多块板,单 片机也换供应商了,型 号也换了RCT6同时测了,板也换厂打了,,,还是那个ADC15有问题 ,,,但程序员不同意。
3,电源是变压器降压整流,再稳压5 V,,再LDO3.3V供电。。。没有死过机或复位。
现在就是就这个ADC有问题。。。。我觉得是不是芯片有配置功能程 序员没吃透?
因为拖焊后,好了,然后不装在样机里测(测时样机不运行,就待机也会出现ADC15拉低),就放在我办公桌面上通电一天一夜也不会出现ADC15拉低的现象。但装机后就不确定了。
1000W左右的制冷压缩机和水泵在启动和停止瞬间在继电器触点上的火花干扰足够引起STM32死机,应该加装中间继电器并将这部分设备远离主板。
评分
查看全部评分
该隔离隔离,该屏蔽屏蔽。注意开关电源、蜂鸣器、继电器等电磁元件与MCU电路远离。
原理、PCB有必要发一下。
评分
查看全部评分
1、你说的beep对ADC的那个影响能再描述清楚一点吗?能做一个不接Beep的电路测试一下吗?
2、感觉电路从ADC引入干扰的可能行不打。而且这种干扰按道理是不可回复的。但是你的电路中ADC进入的地方是一个10K的电阻呀。一般没有问题。另外是不是每个拖焊就好了?那如果不拖焊的话,吧电断掉然后测量一下,有关系的那几个引脚是否短路,电阻是多少?再找一块正常的测试一下。
3、请问一下电源怎么提供的?和电机的电源应该不一样吧?
评分
查看全部评分