Serial Communications Interface Module

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

Serial Communications Interface Module

跳至解决方案
1,259 次查看
JPSB
Contributor I
Hi, 

I'm trying to do a simple RS-232 link that must work at 9600bps.

The problem is that the xtal conected to my cpu (MC68HC908AP64A) has a frequency of 4MHz. And according to the cpu datasheet the baud rate is given by the following formula:

baud rate = CGMXCLK / (64 x PD x BD)

Since PD allowed values are 1; 3; 4 or 13, and BD allowed values are 1; 2; 4; 8; 16; 32; 64; or 128, there is no combination that results at approximately 9600. The maximum speed that I can successfully transmit/receive is 4800bps. Strangely I've already seen the same hardware configuration working at 9600bps!

How can I manage to do that?
Is there any way to double the internal clock speed using the same xtal?

King Regards.
标签 (1)
0 项奖励
回复
1 解答
527 次查看
peg
Senior Contributor IV

Hello and welcome to the fora JPSB.

 

Firstly, please DO NOT post the same question in multiple places. Pick what you think is the most appropriate one and post it there.

 

Presumably you are not using the PLL and so the source for your baud clock is direct from the OSC module. Like this you are limited to 4800 baud as you need the 13 divisor to come close.

 

There is a bit in CONFIG2 that allows you to use the BUSCLK as the source for your baud clock (SCIBDSRC). Now I think you can configure (I have not confirmed it entirely, left for you) the PLL for the maximum bus frequency of 8Mhz with a 4MHz xtal. With this and the same baudrate divisor setup you will get 9600.

 

在原帖中查看解决方案

0 项奖励
回复
2 回复数
527 次查看
bigmac
Specialist III

Hello,

 

To generate standard baud rates, there would be far more flexibility if a crystal frequency of either 3.6864 MHz or 4.9152 MHz were to be used.  Crystals of both frequencies should normally be readily available as "standard" frequencies.

 

Regards,

Mac

 

0 项奖励
回复
528 次查看
peg
Senior Contributor IV

Hello and welcome to the fora JPSB.

 

Firstly, please DO NOT post the same question in multiple places. Pick what you think is the most appropriate one and post it there.

 

Presumably you are not using the PLL and so the source for your baud clock is direct from the OSC module. Like this you are limited to 4800 baud as you need the 13 divisor to come close.

 

There is a bit in CONFIG2 that allows you to use the BUSCLK as the source for your baud clock (SCIBDSRC). Now I think you can configure (I have not confirmed it entirely, left for you) the PLL for the maximum bus frequency of 8Mhz with a 4MHz xtal. With this and the same baudrate divisor setup you will get 9600.

 

0 项奖励
回复