打印

MEGA8做485通信被自己的线性电源干扰到泪奔

[复制链接]
7251|38
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
armmage|  楼主 | 2011-8-8 22:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ATMEGA8 加 75LBC184 把采集的数据用485线传给上位机显示,调试上位机就我的笔记本电脑。
MEGA8 用内部RC振荡 工作在1M频率 校准用出厂的校准值没去改过, 串口波特率4800,8数据位,1停止位,在实验室调试的时候,模块需要的5V和24V供电是用一个开关电源盒子供的,485线长1米,通信完全没问题。
到了现场使用模块自己的线性电源,380V转9V和28V给7805和7824,就这样一个简单的线性电源,变压器是2.5瓦的,也不算大,变压器在模块上距离MEGA8和75LBC184也就3个CM远吧,因为模块做的像个盒子,几个PCB垂直搭起来的,电源板和单片机板是垂直的,垂直距离3CM。就这样,通信数据被干扰的不想样子。
使用开关电源时,一口气发10个字节,一点问题都没有,长时间稳定的数据,所以不可能是使用RC不准的问题,为了这个内部RC做通信,特意找了叶大侠很老的帖子专门做这个讨论的来看,所以感觉硬件电路和程序都没大问题,难道说这线性电源变压器比大功率天线还厉害?对电源不了解,也听说线性电源的干扰没开关电源大,为此我故意把开关电源盒子和单片机板子靠一起,通信稳稳的。
再描述下干扰的问题,我测试少量数据发送,就发A5和E3两个字节,一秒发一次,串口调试助手看到的 A5 E3 连续出现3 到4个正确的后,就开始出现错码,很多错码看起来和真实值相差也就是某些位置0变1,有的像是真实值左移一位。错的离谱的就是发两字节收到1字节。

恳请有经验的高人们指点下,我也是被搞的焦头烂额了。

相关帖子

沙发
armmage|  楼主 | 2011-8-8 22:34 | 只看该作者
补充点 干扰的数据 常常是3,5个正确的后 又5,6个错误的,然后又几个正确的,如此循环。

使用特权

评论回复
板凳
armmage|  楼主 | 2011-8-8 22:46 | 只看该作者
再补充,现场调不通,又回实验室调,怕现场干扰大,
问别人借了个380转220的变压器,拿回来反着接,也能输出380的电压。

我又试了一个办法,把380接到另个同样的模块上,然后用3个线引出GND,5V,24V到通信实验的模块上,供电模块距离实验模块10CM远,完全不用实验模块自己的变压器,测试结果嘛,看数据还是不稳,稍微感觉出现正确数字的几率大点,可能也是我错觉吧。

使用特权

评论回复
地板
armmage|  楼主 | 2011-8-8 22:58 | 只看该作者
希望有经验的大侠提个思路,我马上改进实验,并反馈结果,大家参与讨论。多谢

使用特权

评论回复
5
armmage|  楼主 | 2011-8-8 23:13 | 只看该作者
再次实验,全发FF没问题,这FF没被影响,就算错位也是FF,全发00就好玩了,也能收到几个00,但是总要夹杂几个其他数据,F8都有?这可不像波特率不匹配后错位造成的结果吧,485通信的信号是有A和B两个线之间的电压差决定是1还是0的,难道说A比B高不怕干扰,B比A高就容易干扰?
继续思考,实验    求高人现身啊。

使用特权

评论回复
6
草履虫| | 2011-8-8 23:35 | 只看该作者
那可能是串口的SBUF中的数据还没有发送完,第二个数又放进去了.

使用特权

评论回复
7
armmage|  楼主 | 2011-8-9 00:36 | 只看该作者
if (UCSRA & 0x20)
{
      UDR = 要发的数据
}

每次发前都判断是否发BUFF空的, 而且这个不能解释开关电源不干扰。

使用特权

评论回复
8
原野之狼| | 2011-8-9 09:02 | 只看该作者
拿示波器看看你的信号线和电源线的波形

使用特权

评论回复
9
草履虫| | 2011-8-9 10:53 | 只看该作者
你的寄存器名写对了么?

使用特权

评论回复
10
chenczy| | 2011-8-9 11:28 | 只看该作者
换个电源试试

使用特权

评论回复
11
yewuyi| | 2011-8-9 11:45 | 只看该作者
波特率稳定否?

使用特权

评论回复
12
armmage|  楼主 | 2011-8-9 12:20 | 只看该作者
木有示波器啊,而且对波形分析类的也不太懂。现在都是靠改进,推论,反复试验。
寄存器不会写错,串口设置的程序是我一年前做项目用过的,而且那时候做485,一主多从,MODBUS协议,效果还不错,没什么错码,当然用的也是开关电源。

叶大,我看过你较早的那个帖子,好像你用的是MEGA48吧,内部RC振荡1M频率,我用4800的波特率应该很稳吧,MEGA8的数据手册上说用4800或2400波特率误差是0.2%,2400我也试过,没明显改善。还是那个现象,用开关电源供电通信很稳定。

使用特权

评论回复
13
armmage|  楼主 | 2011-8-9 12:35 | 只看该作者
485通信电路,A,B两线在485插头的地方分别上拉,下拉100K。 感觉这个是拉的太大了吧,而且单片机串口的TXD,RXD 也都上拉了100K。

使用特权

评论回复
14
armmage|  楼主 | 2011-8-9 12:39 | 只看该作者
线性电源。这电源稳定性,自我感觉为了省事,就放了2个小电容,估计是被自己坑了。

使用特权

评论回复
15
aihe| | 2011-8-9 12:48 | 只看该作者
2.5W功率太小没余量
还有就是电源没做好

使用特权

评论回复
16
armmage|  楼主 | 2011-8-9 13:11 | 只看该作者
哎 我自己传的图 怎么自己看不见了 是我QQ空间的·····
2.5瓦 中1W给5V 1.5W给24V,,24V的有点吃紧,5V工作时候耗电40MA,算起来功率够的,
这个电源也就最简单的接法,还有加什么什么滤波的电容电感,自己不会算,又不能胡乱加上去。

使用特权

评论回复
17
lxh1234| | 2011-8-9 13:14 | 只看该作者
换个单片机试试,要好的

使用特权

评论回复
18
armmage|  楼主 | 2011-8-9 13:15 | 只看该作者
MEGA8 说好,算不上最好,说差,很多地方也用了很久了,之前我公司所有仪表都是用MEGA系列的。

使用特权

评论回复
19
armmage|  楼主 | 2011-8-9 13:17 | 只看该作者
这图要怎么传啊······

使用特权

评论回复
20
dqyubsh| | 2011-8-9 13:39 | 只看该作者
一个晶体两个电容,也就1块钱。既然怀疑晶振可能不准干嘛还有内部的?这不是自找烦恼吗!设计时要首先考虑用外部的,通过之后再试内部晶振,试过了就用,不行就放弃。做设计的时候,一定避免自己不熟悉、别人也说得迷迷糊糊似是而非的东西,即使用了,也要有后背方案。

使用特权

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

本版积分规则

0

主题

286

帖子

1

粉丝