0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-01-25

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

必要なもの

  • CY8CKIT-043
  • PSoC Creator

ダウンロード.jpeg

サンプルプログラム

プロジェクトの作成

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

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

UART

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

スクリーンショット 2016-01-25 12.47.37.png

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

スクリーンショット 2016-01-25 12.48.49.png

## ビルドする

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

ピンアサインの設定

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

スクリーンショット 2016-01-25 12.51.59.png

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」と表示されているポートを選択します.

スクリーンショット 2016-01-25 12.58.55.png

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

スクリーンショット 2016-01-25 13.00.39.png

実行

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

スクリーンショット 2016-01-25 13.24.22.png

参考

よく使いそうな関数を示します.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 パリティエラー
0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?