Serial Communications Interface Module

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Serial Communications Interface Module

ソリューションへジャンプ
1,280件の閲覧回数
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 解決策
548件の閲覧回数
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 返答(返信)
548件の閲覧回数
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 件の賞賛
返信
549件の閲覧回数
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 件の賞賛
返信