PSoC4でUSB-UART-Bridgeを使うメモ


この記事では,PSoC4 Prototyping Kit(CY8CKIT-043)でUSB-UART-Brigeを使う手順を示します.この手順は,Cypressの「KitProg User Guide」に記載されている内容をピックアップしたものです.

必要なもの

  • CY8CKIT-043
  • PSoC Creator

サンプルプログラム

プロジェクトの作成

空のプロジェクトを作成します.

もし「Target hardware」に「CY8CKIT-043」が出てこない場合は,「Target device」で「CY8C4247AZI-M485」を選択します.

UART

回路図にUARTを追加します.

UARTの設定をします.UARTコンポーネントをダブルクリックして,通信速度などを設定します.ほとんどの場合,「Baud rate(bps)」の設定だけで十分だと思います.

 ビルドする

一度ビルドして,必要なソースコードなどを生成しておきます.

ピンアサインの設定

プロジェクト名.cydwr を開いて,ピンアサインを設定します.図のように設定をしておきます(重要).

Name Port Pin
UART_1:rx P7[0] 37
UART_1:tx P7[1] 38

main.c のサンプルプログラム

例えば,以下のようなプログラムを記述してみます.

int main()
{
    CyGlobalIntEnable; /* Enable global interrupts. */

    UART_1_Start();
    UART_1_UartPutString("USB-UART");
    UART_1_UartPutCRLF(1);
    for(;;)
    {
        uint8 ch = UART_1_UartGetChar();
        switch(ch){
        case 0:
            /* Nothing */
            break;
        case '?':
            UART_1_UartPutString("Sample Program. ");
            UART_1_UartPutCRLF(1);
            break;
        case '!':
            CySoftwareReset();
            break;
        }
    }    
}

ビルド&書き込み

ビルドして,ボードに書き込みます.

ターミナルソフトで接続する

TeraTermなどのターミナルソフトで接続してみます.

シリアルポートに接続します.「KitProg」と表示されているポートを選択します.

通信速度の設定をします.

実行

実行を確認できます.「!」キーでボードのリセットが行われ,「USB-UART」と表示されます.「?」キーで「Sample Program.」と出力されます.

参考

よく使いそうな関数を示します.XXXがコンポーネント名です.

関数名 説明
void XXX_Start(void) 通信を開始する
void XXX_Sleep(void) コンポーネントをスリープモードにする
void XXX_Wakeup(void) コンポーネントをスリープモードから復帰させる
void XXX_UartPutChar(uint32 data) 1文字送信する
void XXX_UartPutString(const char8 string[]) 文字列送信する
void XXX_UartPutCRLF(uint32 bytes) 改行を送信する
uint32 XXX_UartGetChar(void) 1文字受信する
uint32 XXX_UartGetByte(void) 1バイト受信する
  • XXX_UartGetChar は,1文字を受信する.受信する文字がない場合は「0」が返される.
  • XXX_UartGetByte は,1バイトを受信する.受信できなかった場合は,エラーコードが返される.
XXX_UartGetByteのエラーコード 説明
XXX_UART_RX_OVERFLOW オーバーフロー
XXX_UART_RX_UNDERFLOW アンダーフロー
XXX_UART_RX_FRAME_ERROR フレームエラー
XXX_UART_RX_PARITY_ERROR パリティエラー