打印

AVR M16芯片ISP接口干扰原因分析与抗干扰措施(探讨)

[复制链接]
2940|29
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
前一段时间,有位朋友说他们有一款产品,主芯片使用的是M16单片机,用了几年一直很稳定,最近一段时间在东北一个客户家里,频繁出现机器程序错乱无法运行,的情况,且一旦出现故障,重新上电后也不能用;
这些电路板换回来后,只要重新烧写FLASH,就正常了。

经过网上讨教,并认真考虑,有了一些收货,不敢保证全对,写出来大家一起看看,或许受益。

相关帖子

沙发
中国机器|  楼主 | 2015-2-10 19:25 | 只看该作者
本帖最后由 中国机器 于 2015-2-10 19:26 编辑

【1】故障的直接原因:单片机内flash被改写;
【2】改写的时机:芯片上电瞬间。
【3】改写途径:ISP接口。
M16的端口上拉电阻是程序控制开关的,所以在单片机上电的一瞬间,单片机PB5,PB6,PB7(ISP共用的端口)即使在程序中打开了上拉,也不起作用,而上电的这一瞬间,ISP接口上如果有频率合适的干扰信号窜入,危险就来了(端口的上拉起作用之前,输入阻抗大,对干扰信号非常敏感)。
以上分析是苦思冥想出来的,会有错误也不一定,希望大家拍砖纠正。

---------------------------
带着上面的分析,跟朋友要了原理图和PCB图看了一下,截了两张图:

这是原理图:



这是PCB 图:


图中可以看到,单片机的ISP接口除了接到编程口,还被用于外围芯片的驱动,他所处于的网络,铜线弯弯曲曲走的比较长,使干扰信号更容易窜入;

使用特权

评论回复
板凳
中国机器|  楼主 | 2015-2-10 19:30 | 只看该作者
上图的布线方式,加大了ISP接口感应干扰信号的能力,在单片机复位上电的瞬间,端口的上拉电阻尚未启用,其他端口收到干扰可能不至于有致命的故障出现,但是偏偏这ISP口不行,在单片机启动瞬间,频率适宜的干扰信号一旦杀进来,单片机内部的flash数据就很容易被破坏,造成程序错乱的致命故障。

使用特权

评论回复
地板
中国机器|  楼主 | 2015-2-10 19:36 | 只看该作者
经过网友点拨,说了几个解决方案:
【方案1】、烧写程序的时候,通过芯片的熔丝设置,关闭编程口,车彻底切断干扰信息重写flash的途径。
这个方案很快就发现行不通,因为朋友的电路板是焊好后通过ISP烧写程序的,而使用ISP烧写程序,熔丝选项中无法关闭ISP,呵呵,干瞪眼了;

【方案2】、把ISP端口用到的PB7,PB6,PB5设成输入,原始状态低电平,烧写完成之后,硬件接地。
这个方案也行不通,因为电路中使用了这三条线中的两条,用于驱动外围芯片,不能设置为输入引脚,必须设成输出,才能正常驱动外围的芯片;

使用特权

评论回复
5
中国机器|  楼主 | 2015-2-10 19:41 | 只看该作者
考虑到故障产生的原因是应该是  “端口上拉未起作用时,干扰信号进入ISP” ,所以决定使用外接上拉电阻,将电路中的PB7,PB6,PB5三条线对VCC分别焊接一只4.7kΩ的电阻做为上拉,外接的上拉电阻是一直存在的,所以在上电启动瞬间,也保证了ISP端口的抗干扰能力。

上述措施实施后,机器正在考验中。

以上分析过程及处理方案是否有谬误,请各位不吝拍砖啊

使用特权

评论回复
6
coody| | 2015-2-10 23:38 | 只看该作者
国外的MCU也会有干扰?谁信,又不是国产的

使用特权

评论回复
7
Wxy8030| | 2015-2-11 10:47 | 只看该作者
加了上拉电阻应该是绝对没问题,除非超级强的干扰!

不过不是很了解 M16 的 ISP 原理,PIC 单片机也有 ISP 口,但必须高压启动,所以同样的 ISP 口,PIC 单片机就极少听说程序被修改的情况!

使用特权

评论回复
8
jazzyfox| | 2015-2-11 11:33 | 只看该作者
6楼太迷信了把,国外MCU抗干扰差的,又不是一家两家,就是号称很强的PIC也有扛不住的时候

使用特权

评论回复
9
huayuliang| | 2015-2-11 12:32 | 只看该作者
加上拉电阻应该可以解决问题的。

不过还得解决一个问题,干扰从何而来。。。

使用特权

评论回复
10
ddllxxrr| | 2015-2-11 15:04 | 只看该作者
本帖最后由 ddllxxrr 于 2015-2-11 15:22 编辑

楼主分析的很好,我还有一种方法不知当讲不当请,就是,SPI每个线都做一个10K上拉电阻,等写完后焊上,奥,楼主已经说了,我觉得这个方法好

使用特权

评论回复
11
ddllxxrr| | 2015-2-11 15:23 | 只看该作者
huayuliang 发表于 2015-2-11 12:32
加上拉电阻应该可以解决问题的。

不过还得解决一个问题,干扰从何而来。。。 ...

无线电波,电源浪涌,高压电弧,无所不在啊

使用特权

评论回复
12
中国机器|  楼主 | 2015-2-11 16:27 | 只看该作者
coody 发表于 2015-2-10 23:38
国外的MCU也会有干扰?谁信,又不是国产的

呵呵,你跑题了

使用特权

评论回复
13
中国机器|  楼主 | 2015-2-11 16:28 | 只看该作者
Wxy8030 发表于 2015-2-11 10:47
加了上拉电阻应该是绝对没问题,除非超级强的干扰!

不过不是很了解 M16 的 ISP 原理,PIC 单片机也有 ISP ...

多谢赐教!

刚刚知道PIC的端口设计更合理,多谢!

使用特权

评论回复
14
中国机器|  楼主 | 2015-2-11 16:28 | 只看该作者
jazzyfox 发表于 2015-2-11 11:33
6楼太迷信了把,国外MCU抗干扰差的,又不是一家两家,就是号称很强的PIC也有扛不住的时候 ...

国外 与 抗干扰,构不成因果关系,呵呵

使用特权

评论回复
15
中国机器|  楼主 | 2015-2-11 16:29 | 只看该作者
本帖最后由 中国机器 于 2015-2-11 16:34 编辑
huayuliang 发表于 2015-2-11 12:32
加上拉电阻应该可以解决问题的。

不过还得解决一个问题,干扰从何而来。。。 ...

多谢!

关于干扰信号的来源,客户在千里之外,现场找干扰源有一定的难度,就算找到了,也不一定能消除(我们不能要求客户停用某一台制造干扰的设备),或者说能消除也要承认受干扰不工作的电路板有缺陷,所以还是从抗干扰的角度入手去解决吧;
客户家里有二保焊、氩弧焊,这两种焊接设备产生的干扰比较复杂的。

使用特权

评论回复
16
中国机器|  楼主 | 2015-2-11 16:29 | 只看该作者
ddllxxrr 发表于 2015-2-11 15:04
楼主分析的很好,我还有一种方法不知当讲不当请,就是,SPI每个线都做一个10K上拉电阻,等写完后焊上,奥, ...

多谢参与!

加上拉电阻之后,经试验ISP口依然可以正常工作,呵呵,还能烧写程序。

使用特权

评论回复
17
中国机器|  楼主 | 2015-2-11 16:31 | 只看该作者
ddllxxrr 发表于 2015-2-11 15:23
无线电波,电源浪涌,高压电弧,无所不在啊

嗯,客户车间里有二保焊,氩弧焊,天天玩电弧放电:lol

使用特权

评论回复
18
huayuliang| | 2015-2-11 17:10 | 只看该作者
中国机器 发表于 2015-2-11 16:29
多谢!

关于干扰信号的来源,客户在千里之外,现场找干扰源有一定的难度,就算找到了,也不一定能消除( ...

找出干扰源并不是让你消除干扰,而是有针对性的解决你的产品的问题。。

前面说是客户家里,然后又改成客户车间。。。。二保焊、氩弧焊之类的。。。你这已经找出干扰源了。。

解决一个问题可能有多种方法,但你该清楚你的产品哪里存在薄弱环节····

使用特权

评论回复
19
中国机器|  楼主 | 2015-2-11 17:28 | 只看该作者
huayuliang 发表于 2015-2-11 17:10
找出干扰源并不是让你消除干扰,而是有针对性的解决你的产品的问题。。

前面说是客户家里,然后又改成客 ...

呵呵,客户家里;P。。。是我表达的不准确,客户家里其实是客户的工厂里,车间里;

说实话,干扰源真不知道是哪一个,现在是基于理论分析在研究它。

目前我感觉算的上是收获的是,自认为找到了电路板上被干扰的部位和基本原理,所以就有地方下手解决了,我希望客户的干扰源犹在,而朋友的电路板工作正常。:lol

使用特权

评论回复
20
jejejy| | 2015-2-11 18:23 | 只看该作者
正好学习学习了,的确干扰无处不在:lol

多两个过孔模拟信号在干扰下都瞬变

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

338

帖子

1

粉丝