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

请教版主,为何KX8的通讯波特率与我预设的值不同?

请教版主,为何KX8的通讯波特率与我预设的值不同?

KX8
mov #%00000011, SCBR ; 00 00 0 011 PD=1 BD=8 Baud 9600
; 4.9152MHz Clk

但是在实际使用的过程中,用示波器进行信号跟踪,发现并没有达到所要求的波特率,而实际测试值约为14000左右,后来没有办法,现在用的是4M时钟,采用的是表中提供的12分频形式,得到波特率大约9300左右,用串口调试软件,在PC端9600波特率可接收。

通讯数据格式为  9位数据格式、1位停止位,EVEN校验,
发送81时数据波形,9600波特率时时间为1。04ms左右,但是实际测值为710us左右。

CONFIG2:00101000     
SCBR   :00010010      PD=3     BD=4
SCC1   :01010010      ENSCI=1   M=1(9位字长)  ILTY=1(从停止位计数)
SCC2   :00001000      TE=1 允许发送位
SCC3   :00000000      
ICGCR  :00000011      

ECGON — External Clock Generator On Bit
1 = External clock generator enabled
ECGS — External Clock Generator Stable Bit
1 = 4096 ECLK cycles have elapsed since ECGON was set
可以测一下当采用4.9152M的晶振时,振荡频率和总线频率到底是多少?
海纳百川  有容乃大
mov #%00000001, SCBR ;//9600
走向MCU开发的乐趣!
问题已经搞清楚了,还是时钟切换的问题,开始的时候没有注意到斑竹提及的外部时钟稳定条件,直接的切换到外部时钟,虽然外部晶体已经开始震荡,但是用的却还是内部时钟,这一点在去掉外部晶体的时候测试时得以发现,重新修正代码后波特率正常.
   MOTO的东西用起来是不那么容易.看来需要花更多的精力来看数据手册了。非常感谢各位即使指点,尤其是斑竹.
任何一家的单片机,当进行时钟切换时,都需要有一个等待振荡稳定的过程。而飞思卡尔的单片机这样处理,能保证即使切换不成功,还是可以用内部时钟继续运行。
海纳百川  有容乃大
返回列表