UARTの落とし穴

ADSP-BF533のUARTは16450互換タイプです。古くからPCをいじっている人やIPに詳しい方はピンと来たかもしれませんが、これはバッファなしのタイプで、最近ではPCでは使われていません。バッファ付きの16550が開発されたのは、PC*1の割り込み応答が遅かったためで、受信オーバーランを防ぐのが目的でした。しかし最近の組み込みプロセッサは十分な処理速度を持っている上、RTOSの割り込み応答速度も速いためバッファの有無はそれほど問題になりません。

UARTを使う上で注意しなければならない点があります。ADSP-BF533のUARTにはオリジナルの16450には存在しないUART_GCTLレジスタが追加されています。このレジスタはIrDAモードの制御などを行いますが、UARTのクロックイネーブルビット(UCEN)ビットもあります。このビットを0にするとUARTのクロックを停止して消費電力を節約できるのですが、デフォルトで0であるため他のレジスタをいくらいじってもUARTは動きません。

UARTを使う前に必ずUART_GCTLのUCENビットを1にしてください。

Blackfin空挺団 | プログラム | EZ-KIT | コア&ペリフェラル | TOPPERS/JSP | こぼれ話 | DSP掲示板