[Armadillo:07465] Re: Armadillo-440のUART動作クロック

Shin-ya Koga email@hidden
2011年 8月 10日 (水) 21:40:52 JST


サムシングプレシャスの古賀と申します。

SAKAIさん([Armadillo:07464]):
>とあるOSをArmadillo-440へ移植しています。
>UARTのドライバを作成しているのですが、ArmadilloからPCへ文字列を送って
>も文字化けしてしまうため、ボーレートがうまく設定できていないように見え
>ます。
> 
>質問としては、
> ・i.MX257内蔵のUARTに入力するクロックは、66.5MHzで合っていますでしょ
>うか。
> 
>hermitのコードを見ますと、「120MHz」としてボーレートの計算をされていま
>すが、「Armadillo-400シリーズハードウェアマニュアル」を見ますと
>
>	BUSクロック:133MHz
>
>となっていますので、その半分の66.5MHzが入力されるものと考えています。
>この考えは正しいでしょうか?

UART に入力されるクロックの周波数は、i.MX257 の CCM (Clock Control
Module) の設定により変わるのではないでしょうか。133MHz は BUS
クロック、つまり AHB のクロックで、120MHz は USB PLL の 240MHz の
半分の値ですよね。UART へ供給される PER のクロックは、CCM の MCR
レジスタの設定(MCR の PER CLK MUX フィールドの UART 対応ビット)
によって決まり、USB PLL クロックがソースになるか HCLK/AHB クロック
がソースになるかが変わるのだと思います。

これと、CCM の PCDRn (PER Clock Divider Register n) の対応フィールド
に設定した divider 値で、実際に供給されるクロック周波数が決まるんじゃ
ないでしょうか。

>また、hermitのコードで設定しているものと同じ値をUARTコントローラに設定
>しても、PC上の端末には正しく文字が出力されないため、何か他の設定も必要
>なのかどうか、教えていただけないでしょうか。

UART コントローラを設定する前、(おそらくブートコードにおいて)CCM
をどのように設定しているのかを確認されるのがよいのではないかと思い
ます。

以上、もし参考になりましたら幸いです。

--
古賀信哉 (株)サムシングプレシャス




armadillo メーリングリストの案内