Board logo

标题: 请教MC9S08QG8片内起振的问题 [打印本页]

作者: horimon    时间: 2007-10-5 20:47     标题: 请教MC9S08QG8片内起振的问题

单片机与计算机串行通信,在BDM连接的情况下很好,可是一旦拔掉BDM则通信错误,数据不正确并且丢数严重。单片机用的是片内起振,怀疑是片内时钟不稳造成的,请有经验的前辈指教。谢谢!
作者: strongchen    时间: 2007-10-8 11:07

插上BDM时也是用片内振荡器呀。你可以仔细看一下是否有些寄存器在BDM状态和用户状态下的操作方式有所不同。
作者: geyiguang    时间: 2007-11-14 15:03

在芯片的外围不需要晶振的吗?
作者: strongchen    时间: 2007-11-19 15:38

不需要。
作者: horimon    时间: 2007-11-20 17:15

谢谢版主。单片机在连接BDM时,实际的波特率与理论计算值相同,只要不是掉电重启的话,波特率还正确(复位重启不影响)。后来经过实验,在连接BDM情况下,掉电重启也会出项波特率不准的情况,而且波特率偏差为一个定值,可以通过修改校正。
分析得出结论:程序初次下载与掉电重启后波特率不一致。请版主帮忙分析原因,谢谢!
作者: horimon    时间: 2007-11-21 09:58

BDM调试,掉电复位后显示以下信息:
Trigger A & B occurred
Frequency change to ~9142784hz.

作者: strongchen    时间: 2007-11-21 10:04

你有没有设置trim寄存器?
作者: horimon    时间: 2007-11-21 10:44

ICS Trim Register (ICSTRM)没有设置,经过监视ICSTRM的值,发现掉电复位后值变为128(第一次下载下去值为177)。修改为固定值后问题解决,还请版主解释一下这个寄存器到底是做什么的?谢谢!

[此贴子已经被作者于2007-11-21 10:44:38编辑过]


作者: strongchen    时间: 2007-11-21 14:48

这个寄存器就是用来调节内部振荡器的时钟频率的。应为内部振荡器是采用半导体工艺制成的,不同芯片的振荡频率会有偏差。这个Trim寄存器就用来调整这个偏差。调整值一般在出厂时就写在芯片的固定位置上了,直接使用即可。
作者: jianw007    时间: 2007-11-23 10:38

我也有同样的问题,但是不记得第一次出厂的值,请问题怎么办.不能一个一个地试吧.
谢谢!
作者: strongchen    时间: 2007-11-23 14:05

P&E或Sofetech的BDM工具都有自动测试并写入trim值的功能。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0