- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear supporter
I want to translate the following KBA, Please confirm to my work.
Creating PSoC® 6 UART project without UART component- KBA233876
Regards,
Nino
Solved! Go to Solution.
- Labels:
-
PSoC 6
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Jenna
The following shows the translated version in Japanese for targeted KBA.
Please conform and double check.
Regards,
Nino
-----------------------------------------------------------------------------------------------
UARTコンポーネントのないPSoC® 6 UARTプロジェクトの作成 – KBA233876
Version: **
質問:
TopDesign.cyschでUARTコンポーネントを使用せずにUART機能を実装するベーシックPSoC® Creatorプロジェクトをどうやって作成しますか?
回答:
ユニバーサル非同期受信/送信(UART)プロトコルは、非同期シリアルインターフェイスプロトコルです。UART通信は、通常のポイント・ツー・ポイントです。インターフェースは、送信出力および受信入力信号の2つの信号で構成されます。UARTコンポーネントなしでUART機能を実装することは、異なる機能のハードウェアリソースを共有する必要があるシナリオで役立ちます。
PSoC® Creatorプロジェクトでこれを実装するには、UART機能のすべての関連するリソースファイルを追加する必要があります。これらのファイルは、UARTプログラムが実行されるPSoC® 6コアの「ソースファイル」フォルダに含める必要があります。これらのファイルは、以下で述べられています—
- まず、cy_usb_uart.hヘッダファイルはSCBドライバのUART API宣言を提供し、cy_scb_uart.cは、SCBドライバのUART API実装を提供します。
- UART.cファイルは、UARTコンポーネントのAPIにソースコードを提供するために追加され、UART.hヘッダファイルは、UARTコンポーネントに必要な定数およびパラメータ値を定義します。
- UART_SCBCLK.hファイルは、UART_SCBCLKコンポーネントのAPIにソースコードを処理します。
- cy_scb_common.h およびcy_scb_common.c の2つのファイルは、SCBドライバの共通APIに追加され、cy_scb_uart.hのような他のリンクされたヘッダファイルの適切な実装にも追加されます。
注:上のファイルは、TopDesign CyschのUARTコンポーネントのある既存プロジェクトの「Generated files」フォルダから使用できます。
上で実装するベーシックPSoC® Creatorプロジェクトについては、さらに説明しました。TopDesign.cyschのUARTコンポーネントを使用せずにシリアルターミナルに「Working in UART mode」状態の表示を目的とします。
- 上で説明した必要なソースファイルは、「Error! Reference source not found..」で示されるようにPSoC® 6 のCM4(core 1)の下に追加します。
図1. UARTのソースファイル
b. UART機能のすべてのAPI使用法を含めるため、「UART.h」ヘッダファイルをmain.cに含めます。
c. GPIOピンは、UARTピンとして機能するために構成されます。HSIOMレジスタは、専用のSCB UARTピンをSCBブロックに接続するために構成される必要があります。また、UART出力ピンは、ストロングドライブ入力オフモードで構成し、UART入力ピンは、デジタルハイ‐Zで構成される必要があります。これは、下のコードで示されます:
/* SCB5のUARTのピンアサイン: P5[0], P5[1] */
#define UART_PORT P5_0_PORT
#define UART_RX_NUM P5_0_NUM
#define UART_TX_NUM P5_1_NUM
/* SCB5 UART機能をピンに接続 */
Cy_GPIO_SetHSIOM(UART_PORT, UART_RX_NUM, P5_0_SCB5_UART_RX);
Cy_GPIO_SetHSIOM(UART_PORT, UART_TX_NUM, P5_1_SCB5_UART_TX);
/* UART動作のピンを構成 */
Cy_GPIO_SetDrivemode(UART_PORT, UART_RX_NUM, CY_GPIO_DM_HIGHZ);
Cy_GPIO_SetDrivemode(UART_PORT, UART_TX_NUM, CY_GPIO_DM_STRONG_IN_OFF);
d. クロックソースは、入力および出力信号をオーバーサンプルするためにSCBブロックに接続される必要があります。システムクロックドライバーAPIは、UARTクロック分周器タイプと番号を提供するために使用されます。
/* UARTの分周器タイプと番号をアサイン */
#define UART_CLK_DIV_TYPE (CY_SYSCLK_DIV_8_BIT)
#define UART_CLK_DIV_NUMBER (0U)
/* UART動作のクロックを構成 */
Cy_SysClk_PeriphAssignDivider(PCLK_SCB5_CLOCK, UART_CLK_DIV_TYPE, UART_CLK_DIV_NUMBER);
e. 所望のボーレートでUARTを動作させるには、clk_scb周波数とオーバーサンプルを構成する必要があります。例えば、このプロジェクトでは、ボーレートは115200bpsに設定します(標準モード)。計算は以下で説明されます:
UARTボーレート = (clk_scb/oversample)
clk_periが50 MHzの場合、分周器の値 = 36で、clk_scb(SCB クロック) = (50 MHz / 36) = 1.389 MHzになります。
Oversample = 12を選択。これらの設定で、UART data rate = 1.389 MHz / 12 = 115750 bpsになります。
/* UART動作のためにボーレートを構成 */
Cy_SysClk_PeriphSetDivider (UART_CLK_DIV_TYPE, UART_CLK_DIV_NUMBER, 35UL);
Cy_SysClk_PeriphEnableDivider(UART_CLK_DIV_TYPE, UART_CLK_DIV_NUMBER);
f. UARTブロックの初期コードは、以下に示す構成ストラクチャーを使用:
/* UART動作を初期化 */
cy_en_scb_uart_status_t uart_status;
uart_status = Cy_SCB_UART_Init(UART_HW, &UART_config, &UART_context);
Cy_SCB_UART_Enable(UART_HW);
g. プロジェクトの出力としてfor loop()内の状態の印刷実行を、図2に示します。
図2.シリアルターミナルでの印刷
Labels MCU & PSoC: PSoC 6
Tags: gpio PSoC® 6 UART project SC Block SCB driver uart UART component Add tags
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Nino-san
Confirm to work this KBA.
Please let me know, if you have any concerns.
Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Jenna
The following shows the translated version in Japanese for targeted KBA.
Please conform and double check.
Regards,
Nino
-----------------------------------------------------------------------------------------------
UARTコンポーネントのないPSoC® 6 UARTプロジェクトの作成 – KBA233876
Version: **
質問:
TopDesign.cyschでUARTコンポーネントを使用せずにUART機能を実装するベーシックPSoC® Creatorプロジェクトをどうやって作成しますか?
回答:
ユニバーサル非同期受信/送信(UART)プロトコルは、非同期シリアルインターフェイスプロトコルです。UART通信は、通常のポイント・ツー・ポイントです。インターフェースは、送信出力および受信入力信号の2つの信号で構成されます。UARTコンポーネントなしでUART機能を実装することは、異なる機能のハードウェアリソースを共有する必要があるシナリオで役立ちます。
PSoC® Creatorプロジェクトでこれを実装するには、UART機能のすべての関連するリソースファイルを追加する必要があります。これらのファイルは、UARTプログラムが実行されるPSoC® 6コアの「ソースファイル」フォルダに含める必要があります。これらのファイルは、以下で述べられています—
- まず、cy_usb_uart.hヘッダファイルはSCBドライバのUART API宣言を提供し、cy_scb_uart.cは、SCBドライバのUART API実装を提供します。
- UART.cファイルは、UARTコンポーネントのAPIにソースコードを提供するために追加され、UART.hヘッダファイルは、UARTコンポーネントに必要な定数およびパラメータ値を定義します。
- UART_SCBCLK.hファイルは、UART_SCBCLKコンポーネントのAPIにソースコードを処理します。
- cy_scb_common.h およびcy_scb_common.c の2つのファイルは、SCBドライバの共通APIに追加され、cy_scb_uart.hのような他のリンクされたヘッダファイルの適切な実装にも追加されます。
注:上のファイルは、TopDesign CyschのUARTコンポーネントのある既存プロジェクトの「Generated files」フォルダから使用できます。
上で実装するベーシックPSoC® Creatorプロジェクトについては、さらに説明しました。TopDesign.cyschのUARTコンポーネントを使用せずにシリアルターミナルに「Working in UART mode」状態の表示を目的とします。
- 上で説明した必要なソースファイルは、「Error! Reference source not found..」で示されるようにPSoC® 6 のCM4(core 1)の下に追加します。
図1. UARTのソースファイル
b. UART機能のすべてのAPI使用法を含めるため、「UART.h」ヘッダファイルをmain.cに含めます。
c. GPIOピンは、UARTピンとして機能するために構成されます。HSIOMレジスタは、専用のSCB UARTピンをSCBブロックに接続するために構成される必要があります。また、UART出力ピンは、ストロングドライブ入力オフモードで構成し、UART入力ピンは、デジタルハイ‐Zで構成される必要があります。これは、下のコードで示されます:
/* SCB5のUARTのピンアサイン: P5[0], P5[1] */
#define UART_PORT P5_0_PORT
#define UART_RX_NUM P5_0_NUM
#define UART_TX_NUM P5_1_NUM
/* SCB5 UART機能をピンに接続 */
Cy_GPIO_SetHSIOM(UART_PORT, UART_RX_NUM, P5_0_SCB5_UART_RX);
Cy_GPIO_SetHSIOM(UART_PORT, UART_TX_NUM, P5_1_SCB5_UART_TX);
/* UART動作のピンを構成 */
Cy_GPIO_SetDrivemode(UART_PORT, UART_RX_NUM, CY_GPIO_DM_HIGHZ);
Cy_GPIO_SetDrivemode(UART_PORT, UART_TX_NUM, CY_GPIO_DM_STRONG_IN_OFF);
d. クロックソースは、入力および出力信号をオーバーサンプルするためにSCBブロックに接続される必要があります。システムクロックドライバーAPIは、UARTクロック分周器タイプと番号を提供するために使用されます。
/* UARTの分周器タイプと番号をアサイン */
#define UART_CLK_DIV_TYPE (CY_SYSCLK_DIV_8_BIT)
#define UART_CLK_DIV_NUMBER (0U)
/* UART動作のクロックを構成 */
Cy_SysClk_PeriphAssignDivider(PCLK_SCB5_CLOCK, UART_CLK_DIV_TYPE, UART_CLK_DIV_NUMBER);
e. 所望のボーレートでUARTを動作させるには、clk_scb周波数とオーバーサンプルを構成する必要があります。例えば、このプロジェクトでは、ボーレートは115200bpsに設定します(標準モード)。計算は以下で説明されます:
UARTボーレート = (clk_scb/oversample)
clk_periが50 MHzの場合、分周器の値 = 36で、clk_scb(SCB クロック) = (50 MHz / 36) = 1.389 MHzになります。
Oversample = 12を選択。これらの設定で、UART data rate = 1.389 MHz / 12 = 115750 bpsになります。
/* UART動作のためにボーレートを構成 */
Cy_SysClk_PeriphSetDivider (UART_CLK_DIV_TYPE, UART_CLK_DIV_NUMBER, 35UL);
Cy_SysClk_PeriphEnableDivider(UART_CLK_DIV_TYPE, UART_CLK_DIV_NUMBER);
f. UARTブロックの初期コードは、以下に示す構成ストラクチャーを使用:
/* UART動作を初期化 */
cy_en_scb_uart_status_t uart_status;
uart_status = Cy_SCB_UART_Init(UART_HW, &UART_config, &UART_context);
Cy_SCB_UART_Enable(UART_HW);
g. プロジェクトの出力としてfor loop()内の状態の印刷実行を、図2に示します。
図2.シリアルターミナルでの印刷
Labels MCU & PSoC: PSoC 6
Tags: gpio PSoC® 6 UART project SC Block SCB driver uart UART component Add tags
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Nino-san,
Confirm to receive this KBA.
Thank you for your Contribution.
Thanks,
Mohammed