你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 硬件(软件?)问题搞不定,超级奇怪又难搞,高手进....  

[复制链接]
asmmcu 提问时间:2018-12-22 16:43 /
大家好,,请教大家一个问题 。
故障描述(有点长):电路见图
我用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多天了,问题一直找不出来。感 觉自已很没用。

请大家帮帮忙分析一下。这个到底是硬 件的什么 问题造 成的。应该怎样改进。谢谢。。



电路图

电路图

电路板图

电路板图
收藏 1 评论59 发布时间:2018-12-22 16:43

举报

59个回答
五哥1 回答时间:2018-12-23 00:32:59
不在样机里测试时候,是否带负载? 会不会是芯片质量问题?看看电容质量?蜂鸣器是有源的?外部晶振是否有问题,这类怪现象,多半和晶振质量不好有关。如果是内部晶振,则加装质量良好的外接测试下,否则就改用内部晶振测试。负载加上后,出问题就要看看电源部分是否稳定。换个电池驱动看看,找出问题的大概就好解决了

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

asmmcu 回答时间:2019-1-9 20:39:00
现在基本上是软件的问题。
另一工程 师写了个ADC测试程 序测试硬件,跑了4天了。一点问题都 没有。
前天我向原工程 师拿到了他的程序,发现他的程 序的中断没写好,定时中断里执行的众多函数而时间超时及各定时中断优先级设置混乱。低级中断内容设置成抢断模式,抢占后造成高级的中断内容不能执行。
“测温ADC是以DMA方式采集,,估计是DMA采集时,出现中断超时或抢占后引起DMA内存操作失控而对寄存器乱写。”引号内的判断是我估计的,不一定是。。。这个要STM32的技术支持来解释一下。
拿到原程 序员写的程 序后,叫新来的程 序员把他的程序中的DMA的ADC采集方式改了,,把各个中断里执行的函数移出中断外,,再设置好优先级。重新编译下载到板子上跑。。到今天有三天了。没有出现ADC口拉低现象,复位脚 也没拉低,,,看,用原程 序员的程 序修改过后跑,也没出现ADC或其它端品拉低的现象,这应该可以判定是软件的问题造 成的。
但是,
今 天叫原程序员按新程 序员的方法修改他的程 序,结果碰硬钉子了。原程 序员还是坚持说 他的程 序没错,还说,要写自已写去。。。。。。嗯。。。这个。。。真不好办了。
asmmcu 回答时间:2018-12-24 10:11:13
@ watershade

"1、你说的beep对ADC的那个影响能再描述清楚一点吗?能做一个不接Beep的电路测试一下吗?
2、感觉电路从ADC引入干扰的可能行不打。而且这种干扰按道理是不可回复的。但是你的电路中ADC进入的地方是一个10K的电阻呀。一般没有问题。另外是不是每个拖焊就好了?那如果不拖焊的话,吧电断掉然后测量一下,有关系的那几个引脚是否短路,电阻是多少?再找一块正常的测试一下。
3、请问一下电源怎么提供的?和电机的电源应该不一样吧?"

1,BEEP脚是接到UNL2003(12V供电的,继电器驱动IC)的一个输入脚,UNL2003的输出脚接到有源蜂鸣器 。
2,感觉是程 序有问题,,因为我做了多块板,单 片机也换供应商了,型 号也换了RCT6同时测了,板也换厂打了,,,还是那个ADC15有问题 ,,,但程序员不同意。
3,电源是变压器降压整流,再稳压5 V,,再LDO3.3V供电。。。没有死过机或复位。


现在就是就这个ADC有问题。。。。我觉得是不是芯片有配置功能程 序员没吃透?
asmmcu 回答时间:2018-12-22 16:49:31
搞不定。。。。。。头痛。。。。。。
宝马雕车香满 回答时间:2018-12-22 16:57:08
确定硬件问题?
asmmcu 回答时间:2018-12-22 17:04:19
我是做硬 件的,先找硬 件的问题。
因为拖焊后,好了,然后不装在样机里测(测时样机不运行,就待机也会出现ADC15拉低),就放在我办公桌面上通电一天一夜也不会出现ADC15拉低的现象。但装机后就不确定了。
wenyangzeng 回答时间:2018-12-22 17:37:20
本帖最后由 wenyangzeng 于 2018-12-22 21:38 编辑

1000W左右的制冷压缩机和水泵在启动和停止瞬间在继电器触点上的火花干扰足够引起STM32死机,应该加装中间继电器并将这部分设备远离主板。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

asmmcu 回答时间:2018-12-22 18:32:01
没有死机。。。从来没死过机。
七哥 回答时间:2018-12-22 23:51:07
硬件问题的可能性大。
该隔离隔离,该屏蔽屏蔽。注意开关电源、蜂鸣器、继电器等电磁元件与MCU电路远离。
原理、PCB有必要发一下。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

五哥1 回答时间:2018-12-23 00:37:28
理论上讲STM32F103RE的芯片国产的多,高仿的芯片在市场上是存在的(GD32),你不妨用F4系列的芯片来做。
pythonworld 回答时间:2018-12-23 08:49:26
R21有用吗?为什么加上?
watershade 回答时间:2018-12-23 12:56:30
再问一下几个细节:
1、你说的beep对ADC的那个影响能再描述清楚一点吗?能做一个不接Beep的电路测试一下吗?
2、感觉电路从ADC引入干扰的可能行不打。而且这种干扰按道理是不可回复的。但是你的电路中ADC进入的地方是一个10K的电阻呀。一般没有问题。另外是不是每个拖焊就好了?那如果不拖焊的话,吧电断掉然后测量一下,有关系的那几个引脚是否短路,电阻是多少?再找一块正常的测试一下。
3、请问一下电源怎么提供的?和电机的电源应该不一样吧?

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

asmmcu 回答时间:2018-12-24 08:22:23
R21加上的原因是防止接错线,把高压加到该端口。
asmmcu 回答时间:2018-12-24 08:26:57
现在问题困扰的是,,“这个STM32 的ADC端口会被 拉低,而且重新上电也不能被重新配置,保持拉低状态,。”    这个是不是STM32 是有锁定端口功能?却又不能被程序配置?知道是怎样触发这个问题 的,就可以采用针对办法解决。
Kevin_G 回答时间:2018-12-24 10:13:09
期待大神的答案
1234下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版