DWMのARM基板のLVDDと、クロックの速度
このレポートは私がたまたま購入した付録基板で確認したものです。本レポートの結果をご利用される方は各自の責任の範囲内で行ってください。本レポートは内容の詳細な検討も行っておりませんし、デバイスのベンダーや、出版元に確認したわけでもありません。内容の正確さは保証しません。万が一のことが起きても、自己責任でお願いします。以上の点をご了承の上、お読みください。
DWMのARM基板で、シリアル通信(UART)の実験をしていて気になったことがあるので書きます。UARTを使おうとしている皆様の参考になればと思います。
サンプルのコードや、データシートを読んで、ボーレートジェネレータを適切にセットしたにも関わらず、UARTで送信したデータをパソコンで受信すると、文字化けしてしまっていました。
オシロで見ると、9600bpsになっていない!?のです。
ADuC7206のUARTは41.78MHzのクロックを分周してタイミングを作っているようなのですが、データシートには内蔵の発振器は3%の誤差がある、と書かれています。しかし、実測では3%以上ありました。正しく記憶していませんが6%くらいあったように思えます。
RS232Cは一般に、周波数が3%もずれてしまうとエラー発生率が高くなります。
分周器の設定を標準値から変えることで、なんとかパソコンで正しく受信できるようになりましたが、どのADuC7206でも一律にずれるのならばいいのですが、個体差があると良くないでしょう。
内蔵発振器の発振周波数ずれの原因は、LVDDの端子が3.3Vにショートされていることではないかと思い、再度、27番ピンの足上げをして確認してみることにしました。
なお、一度足を上げる値段は、夢と同じで57セントです。
さて、27番ピンの足を上げたら、その近くにパスコンを置きます。とりあえず、0.1uFを1個つけておきました。
そして、このLVDD端子を基板の外に引き出し、オシロと、デジタルマルチメータと、外部電源に接続しました。
外部電源をつないだのは、基板の外部から強制的にLVDDに電圧を注入し、LVDDの電圧がUARTの速度に影響するかどうかを確かめようというものです。
外部から3.3Vを注入したところ、およそ60~80mAの電流がLVDD端子に流れ込みました。しかし、周波数の変化はほとんど確認できませんでした。
一方、26番ピンと27番ピンをショートさせてみたところ、発振周波数が低いほうにずれるのを確認できました。
足上げをしてLVDDを切り離した場合
足上げをしたが、再度LVDDをIOVDDにショートさせた場合
26番(IOVDD1)と27番(LVDD)ピンをショート/オープンさせることで、通信速度に有意な差がでました。しかし、ショートさせる際に誤ってピンを折ってしまったので、これ以上の実験はできなくなってしまいました。
結果としては、LVDDに外から3.3Vを注入しても(一応2.7~3.6Vくらい変動させてみましたが)UARTの周波数は変わりませんでした。しかし、LVDDとIOVDDをショートさせると周波数が遅くなる、という一見不可思議な現象となりました。IOVDDの電源が下に引っ張られたことが原因なのでしょうか、ちょっとこれ以上はわかりません。
基板を壊してしまったのでこれ以上の実験はできなくなりましたが、LVDDの問題は、LEDチカチカが停止するということだけではないようです。電源とパスコンの問題だけではなく、内蔵発振器の周波数に影響している可能性もあります。UARTを使って通信するアプリケーションを作るなら、水晶発振器を載せたほうがいいのではないかと思われます。
最近のコメント