请教版主,为何KX8的通讯波特率与我预设的值不同?
- UID
- 116789
- 性别
- 男
|
请教版主,为何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 |
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
可以测一下当采用4.9152M的晶振时,振荡频率和总线频率到底是多少? |
|
|
|
|
|
- UID
- 111532
- 性别
- 男
|
mov #%00000001, SCBR ;//9600 |
|
|
|
|
|
- UID
- 116789
- 性别
- 男
|
问题已经搞清楚了,还是时钟切换的问题,开始的时候没有注意到斑竹提及的外部时钟稳定条件,直接的切换到外部时钟,虽然外部晶体已经开始震荡,但是用的却还是内部时钟,这一点在去掉外部晶体的时候测试时得以发现,重新修正代码后波特率正常.
MOTO的东西用起来是不那么容易.看来需要花更多的精力来看数据手册了。非常感谢各位即使指点,尤其是斑竹. |
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
任何一家的单片机,当进行时钟切换时,都需要有一个等待振荡稳定的过程。而飞思卡尔的单片机这样处理,能保证即使切换不成功,还是可以用内部时钟继续运行。 |
|
|
|
|
|