Mini210S 開発キットOSなしのプログラム開発手順連載(16)

Mini210S/Tiny210等開発ボード関連のフォラーム

Mini210S 開発キットOSなしのプログラム開発手順連載(16)

投稿記事by dwtechadm » 金 5 10, 2013 4:03 pm

Mini210S 開発キット詳細URL



第XII章 シリアルポート設定-文字の入力および出力
第二節 プログラム説明

ステップ3  ボーレートを設定
ボーレートは毎秒伝送のデータビット数です、2つのレジスタに関わります::UBRDIV0 和 UDIVSLOT0
画像
画像

ボーレート設定式:UBRDIVn + (num of 1's in UDIVSLOTn)/16 = (PCLK / (bps x 16))−1、 Maximum Operating Frequency for Each Sub-block図で、UART は PSYS 下で作動します、よって、 PCLK 即 PCLK_PSYS = 66.5MHz、ボーレートbpsを 115200と設定します、よって(66.5MHz/(115200 x 16)) – 1 = 35.08 = UBRDIVn + (num of 1's in UDIVSLOTn)/16、 UBRDIV0=35、UDIVSLOT0=0x1

getc()と putc()コード:
// 一文字受信
char getc(void)
{
while ((UFSTAT0 & 0xff) == 0); // RX FIFOは空の場合、待ちます
return URXH0; //データを読み取り
}

//一文字送信
void putc(char c)
{
while (UFSTAT0 & (1<<24)); // RX FIFOは満ちの場合、待ちます
UTXH0 = c; //データを書き込み
}

画像
UARTデータ送信レジスタ

画像
UARTデータ受信レジスタ

画像

送信/受信ステータスレジスタ
UTRSTAT0送信/受信ステータスレジスタを読み取り、Receive buffer data ready= 1 の場合はデータを受信で、URXH0 レジスタを読み込まれば、 8bit のデーだを受け取ります;Transmitter empty = 1の場合はデータを送信でき、そしてUTXH0に8bitのデータを書き込みます。


第三節 コードコンパイルとプログラミングの実行
コードをコンパイルし、Fedora端末で下記のコマンドを実行します:
# cd 12.uart_putchar
# make
12.uart_putcharのディレクトリ下にuart.binを生成し、それを開発ボードにプログラムします。


第四節 実験現象
シリアルケーブルを接続、ポートを開きます、PCで任意文字を入力し、シリアル端末ではASCIIコード表の次の文字を表示します、例えば入力文字は゛a゛、シリアル端末では゛b゛が表示します。
本章では UARTを初期化して、端末で文字入力は可能になりました、これはコードをデバッグすることに効率が大幅に上がりますが、現在のコードは簡単で、一文字だけ入力/出力できます。次の章ではputc()和 getc()の関数をしようして、プログラムにprintf()と scanf()機能を加えます。



---続く
dwtechadm
 
記事: 60
登録日時: 月 2 25, 2013 1:35 pm

Return to Cortex-A8関連

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[0人]

cron