Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

PSoC™ CreatorでPSoC™ 4のUARTボーレートを変更 – KBA234803

PSoC™ CreatorでPSoC™ 4のUARTボーレートを変更 – KBA234803

IFX_Publisher1
Community Manager
Community Manager
Community Manager
250 sign-ins First comment on KBA 250 replies posted

PSoC™ CreatorでPSoC™ 4のUARTボーレートを変更 – KBA234803

Translated by:

Original KBA: https://community.infineon.com/t5/Knowledge-Base-Articles/Change-PSoC-4-UART-baud-rate-in-PSoC-Creat...

バージョン :  **

UARTボーレートは、SCBコンポーネントを駆動するクロックによって決定され、 式 1を使用して計算されたクロック分周器の値(clkDivider)に依存します :

MohammedA_41_0-1649416042691.png

 

次の例は、実行時にUARTボーレートを変更する方法を示しています。この例は、115,200bpsのターゲットボーレートを達成するためにクロック分周器の値を計算して実装する方法を示しています。
 
  1. PSoC™ Creatorプロジェクトの最上位のデザイン(* .cysch)にUARTコンポーネントを配置します。
  2. 図 1に示すように、クロック(Clock_1)を有効にします :

    MohammedA_41_1-1649416044359.png
    図 1  *.cyschコンポーネント

  3. この例では、UARTコンポーネント構成で次の設定を行います。図 2を参照してください :
    MohammedA_41_2-1649416044438.png

    図 2   UARTコンポーネントの構成

    • HFCLK (高速クロック) : 24 MHz
    • オーバーサンプル : 13
    • ターゲットボーレート : 115,200 bps

     

    4. 式 1を使用してクロック分周器の値を計算します。この場合、分周器の値は16として計算されます。
    5. APIで計算値から1を引いた値(この場合は16–1)を使用して、main.cファイルのコードスニペットに示されているようにクロックを構成します 
    :

    Clock_1_SetFractionalDividerRegister(15,0); //UART baud rate 115200 16-1
     
       コードリスト 1

      /* Start SCB (UART mode) operation */
        Clock_1_Stop();
        if(uartboaudrate115200)
        {
            Clock_1_SetFractionalDividerRegister(15,0); //UART baud rate 115200 16-1
        }
        else
        {
            if(uartboaudrate9600)
            {
            Clock_1_SetFractionalDividerRegister(199,0); //UART baud rate 9600  200-1
            }
        }
    Clock_1_Start();
        UART_Start();
        while(1)
        {
        UART_UartPutString("This is SCB_UartComm custom baudrate example project\r\n");
        UART_UartPutString("\r\n");
        CyDelay(500);
        }

      3 結果の表示 :

    MohammedA_41_3-1649416044442.png

    図 3 テスト結果

0 Likes
166 Views