打印

一个单片机的问题!!

[复制链接]
1814|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jt4117|  楼主 | 2009-8-29 01:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一个51单片机。 写500pcs,有7片不能正常工作。 老大让我分析原因。

问题是这样的。可以正常下载程序。但是写进去了程序后工作不正常。

我用示波器量了串口通讯。 主要是任务就是一个串口发几条命令。 发现接收端有数据过来。发送端无数据返回。 所以我就写了个自收自发程序。 发现接收和发送的数据不一致。 于是我让它定时发送数据。 发送的不正确。 于是我怀疑是波特率问题。 因为波特率是系统时钟分频给的。 这个小mcu又用的内部rc震荡。 所以我怀疑是系统时钟偏差。 所以我就又写了一个测试程序。 让系统时钟输出脚输出系统时钟的1/2.测量后果然发现有很大偏差。 应该输出3.6864Mhz,也就是0.27us。结果我测得只有0.16us。 也就是系统时钟快了。 于是写报告给老大。 老大看了后说我的方法有问题。

他说我用示波器直接量clkout脚就有问题。 尤其是用模拟示波器,会影响测量结果。
(IO口输出应该是有三极管做电平转换吧。那应该是跟内部隔离开的吧!! )
还说我测量系统时钟也不对。因为可能我的程序会影响系统时钟。
(系统时钟,就是最快频率了。MCU又没有倍频电路。我的程序在nb也不可能把系统时钟搞快吧! )
还有就是说飞利浦的片子,人家大厂。 怎么可能会出现时钟不准的问题呢!!
(这个我无语...)

让我在仔细看程序。 把串口发送的波形抓出来给他看!
总之就是不信我的。 就认为我的程序有问题。还说即便是我的这个测试的都是正确的,那也不能说明别的地方没有问题。  

我是真郁闷了。各位给说说,是我们老大故意刁难我,还是我的方法确实有问题! 希望各位能多给意见。

相关帖子

沙发
aozima| | 2009-8-29 01:36 | 只看该作者
叫那个当初 想出用内部RC来做串口通讯的方案的那个人来解决吧
你老大不信你 叫他另请高明吧

当然,如果是你想出来用内部RC而系统有串口的的话.
以上的话 当我没说

使用特权

评论回复
板凳
S448| | 2009-8-29 05:28 | 只看该作者
你分析的是对的,你老大的脑袋被驴踢了。很明显是单片机的系统时钟偏差导致的波特率偏差。

使用特权

评论回复
地板
bonafides| | 2009-8-29 11:51 | 只看该作者
你分析的是对的,你老大的脑袋被驴踢了。很明显是单片机的系统时钟偏差导致的波特率偏差。

使用特权

评论回复
5
chunyang| | 2009-8-29 12:21 | 只看该作者
使用内置RC振荡器做系统时钟,串口通讯的精度、稳定性都是问题,波特率越高问题越大,如果有第三方基准信号,可以借此动态校准,但没有这个条件时是完全无招的,最本质的解决方法还是老老实实的去用晶体,3毛钱还这么计较的话,不如换用更便宜的MCU吧。

使用特权

评论回复
6
平常人| | 2009-8-29 17:09 | 只看该作者
看看手册上内部振荡器的精度是多少,正常的工作条件是什么,也许你会有新的发现。

使用特权

评论回复
7
shuizhongyu| | 2009-8-29 19:56 | 只看该作者
rc振荡还能用于通信,晕

使用特权

评论回复
8
zgl7903| | 2009-8-30 11:44 | 只看该作者
测量方法是不是有问题,和正常的一比较就知道
相同的测试方法 相同的测试条件, 一个正常的芯片, 一个不正常的芯片 影响也是一样的

内部振荡器一般提得指标都是20%左右, 有些还可以配置参数做微调
如果时飘温飘还算稳定,可以用自动波特率的方法来做串口时钟

使用特权

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

本版积分规则

234

主题

2897

帖子

1

粉丝