首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

请教MC9S08QG8片内起振的问题

请教MC9S08QG8片内起振的问题

单片机与计算机串行通信,在BDM连接的情况下很好,可是一旦拔掉BDM则通信错误,数据不正确并且丢数严重。单片机用的是片内起振,怀疑是片内时钟不稳造成的,请有经验的前辈指教。谢谢!
插上BDM时也是用片内振荡器呀。你可以仔细看一下是否有些寄存器在BDM状态和用户状态下的操作方式有所不同。
海纳百川  有容乃大
在芯片的外围不需要晶振的吗?
不需要。
海纳百川  有容乃大
谢谢版主。单片机在连接BDM时,实际的波特率与理论计算值相同,只要不是掉电重启的话,波特率还正确(复位重启不影响)。后来经过实验,在连接BDM情况下,掉电重启也会出项波特率不准的情况,而且波特率偏差为一个定值,可以通过修改校正。
分析得出结论:程序初次下载与掉电重启后波特率不一致。请版主帮忙分析原因,谢谢!
BDM调试,掉电复位后显示以下信息:
Trigger A & B occurred
Frequency change to ~9142784hz.
你有没有设置trim寄存器?
海纳百川  有容乃大
ICS Trim Register (ICSTRM)没有设置,经过监视ICSTRM的值,发现掉电复位后值变为128(第一次下载下去值为177)。修改为固定值后问题解决,还请版主解释一下这个寄存器到底是做什么的?谢谢!

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

这个寄存器就是用来调节内部振荡器的时钟频率的。应为内部振荡器是采用半导体工艺制成的,不同芯片的振荡频率会有偏差。这个Trim寄存器就用来调整这个偏差。调整值一般在出厂时就写在芯片的固定位置上了,直接使用即可。
海纳百川  有容乃大
我也有同样的问题,但是不记得第一次出厂的值,请问题怎么办.不能一个一个地试吧.
谢谢!
P&E或Sofetech的BDM工具都有自动测试并写入trim值的功能。
海纳百川  有容乃大
返回列表