这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 请教:SH7124的SCI速率设置问题

共4条 1/1 1 跳转至

请教:SH7124的SCI速率设置问题

菜鸟
2008-03-12 15:07:02     打赏

在StarterKit for SH7124的测试板上运行自编的串口中断测试程序,通信过程都正常,就是串口速率设置一直搞不定。

SH7124测试板上的晶振为10MHz,我也用示波器测过了;

根据《SH7125群、SH7124群 硬件手册》P312上的表12.4所示:

在10MHz下,n=0,N=64时,通信速率为4800bps;

但实际速率却是19200bps,奇怪啊!!!不知什么地方没有设置正确?!



串口初始化如下:

 SCI1.SCSCR.BYTE = 0;

 SCI1.SCSMR.BYTE = 0;

 SCI1.SCSDCR.BYTE = 0x00;
 
 SCI1.SCBRR = 64;

 /* Wait for SCI Setting (1 bit cycle) */
 for(i=0 ; i<3000 ; i++);

 SCI1.SCSCR.BYTE = 0x00;

 PFC.PACRL2.BIT.PA4MD = 1;
 PFC.PACRL1.BIT.PA3MD = 1; 

 SCI1.SCSCR.BYTE = 0x70;

 INTC.IPRL.BIT._SCI1 = 0x02;
 
 set_imask(0);




关键词: 请教     SH7124     速率     设置     问题    

菜鸟
2008-03-13 14:36:46     打赏
2楼

您好,看了一下您的问题,建议您查一下程序中的时钟设置。

SH7124用到了4种时钟,具体在硬件手册第4章有详细解释。

内部时钟(I),用于CPU和高速缓存
总线时钟(B),用于内部总线
外围时钟(P),用于外围模块
MTU2时钟(MP),用于多功能定时器MTU2模块

晶振信号进入单片机后,先固定8倍频,然后再分频给4个不同的时钟。
关于分频的设置,请参考第40页的表4.4。

SCI模块使用外围时钟(P),包括您提到的表12.4,都是引用了P时钟的频率,而不是外接晶振的频率。所以请注意一下这个时钟的设定值。

请您根据以上解释查看一下,如果仍有问题,我再帮您继续核对。


菜鸟
2008-03-13 14:44:29     打赏
3楼
可能刚才说得比较复杂。这里给您一个时钟设定的例子。
很简单,只是一句程序。一般在程序里写在硬件设定的前面,很靠前的地方。

/* 设定频率控制寄存器 PLL = 10MHz * 8 = 80MHz  */
CPG.FRQCR.WORD = 0x16DB;           /* 内部时钟 Ic = 80/2 = 40MHz
                                                                        总线时钟 Bc = 80/4 = 20MHz
                                                                        外围时钟 Pc = 80/4 = 20MHz
                                                                        MTU2时钟 MPc= 80/4 = 20MHz  */

菜鸟
2008-03-17 17:23:27     打赏
4楼
谢谢shiley

去查了一下,在hwsetup.c果然有这个设置:
 /* FRQCR setting for I=XTAL*8/2 P=XTAL*8/2 B=XTAL*8/2 MP=XTAL*8/2*/
 CPG.FRQCR.WORD = 0x1259;

也就是: P=XTAL*8/2 = 40MHz

看来还是自己没有把资料看全面啊!


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]