Community Translation - Controlling UART Tx and Rx Pins through Firmware for PSoC 4 Devices - KBA 224950

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

cross mob
MotooTanaka
Level 9
Level 9
Distributor - Marubun (Japan)
First comment on blog Beta tester First comment on KBA

Hi,

I'd like to translate this KBA224950 into Japanese.

moto

Original KBA: KBA 224950

Controlling UART Tx and Rx Pins through Firmware for PSoC 4 Devices - KBA 224950

Being Translated by: MoTa_728816

=============================

タイトル: PSoC 4 デバイスでファームウェアから UART の Tx と Rx ピンを制御する -  KBA224950

質問:

PSoC® 4 デバイスで実行時にファームウェアから UART の Rx と Tx ピンを制御するのにはどうしたら良いでしょうか?

回答:

このナレッジベースドキュメントでは、ファームウェアから SCB_UART Tx と Rx ピンの機能を変更する方法を学びます。ユースケースではファームウェアからピンを制御する理由について記載します。ソリューションではファームウェアからピンを制御する手順を示します。コード例では推奨される API の使用方法を実装しています。

ファームウェアから UART Tx と Rx ピンを制御するユースケース:

 1. UART の Rx ピンは電気的ノイズに影響を受けやすい場合があります、そのため Rx ピンの内部プルアップ抵抗を有効にするとこの問題を解決できます。

 2. 半二重と全二重モードを切り替えている間、 SCB UART に使用されていない Tx と Rx ピンを GPIO として設定しファームウェアからの制御が可能です。

ファームウェアでのソリューション:

通常、ピンはファームウェアからでもハードウェアからでも制御可能です。デフォルトでは UART のピンは SCB ハードウェアブロックから制御されます;そのため、ファームウェアからの制御を有効にする場合には UART のピンを SCB ブロックから切断する必要があります。

Tx/Rx ピンを UART SCB から切断してファームウェアによる制御を有効にするためには以下の手順に従ってください:

 1. Tx/Rx ピンに該当するレジスタの HSIOM_PORT_SELx ビットに 'ビット 0' を書き込みます。

 2. Tx/Rx ピンのドライブモードをファームウェアを使用して設定します。

詳細については、Architecture Technical Reference Manual (TRM) の I/O System (HSIOM) をご参照ください。

以下のコード抜粋は Tx/Rx ピンと UART SCB 間のハードウェア接続を解除してファームウェアによる制御を有効にする手順を実装するのにご使用いただけます。

抜粋コード  ユースケース 1: ファームウェアから Rx ピンを制御する

例えば、UART_Tx ピン、UART_Rx ピンがそれぞれ P0.1 と P0.0 だった場合。

// SCB_UART のデフォルトコンフィグレーション設定を保存する変数

uint32 temp;

// SCB_UART 用の HSIOM コンフィグレーションを保存する

temp = CY_GET_REG32 (CYREG_HSIOM_PORT_SEL0);

// UART_Rx ピンをファームウェアから制御するように設定する

CY_SET_REG32 (CYREG_HSIOM_PORT_SEL0, CY_GET_REG32 (CYREG_HSIOM_PORT_SEL0) & 0xFFFFFFF0);

// UART Rx ピンのドライブモードを設定する

UART_pin_SetDriveMode(UART_pin_DM_RES_UP);

// ここにアプリケーションコードを記述する

// UART のデフォルト機能に戻す (例) Rx ピンは SCB ブロックに接続されている

CY_SET_REG32 (CYREG_HSIOM_PORT_SEL0, temp);

抜粋コード  ユースケース 2: ファームウェアから Rx ピンを制御する

例えば、UART_Tx ピン、UART_Rx ピンがそれぞれ P0.1 と P0.0 だった場合。

// SCB_UART のデフォルトコンフィグレーション設定を保存する変数

uint32 temp;

// SCB_UART の HSIOM デュプレックスコンフィグレーションを保存する

temp = CY_GET_REG32 (CYREG_HSIOM_PORT_SEL0);

// UART Tx オンリーモード

// UART_Rx ピンをファームウェアから制御されるように設定する

CY_SET_REG32 (CYREG_HSIOM_PORT_SEL0, CY_GET_REG32 (CYREG_HSIOM_PORT_SEL0) & 0xFFFFFFF0);

// UART Rx ピンのドライブモードを設定する

UART_pin_SetDriveMode(UART_pin_DM_RES_UP);

// UART Tx オンリーモードオペレーション用コードをここに記述する

// デフォルトの全二重の UART 機能をロードする (例) Rx ピンは SCB ブロックに接続されている

CY_SET_REG32 (CYREG_HSIOM_PORT_SEL0, temp);

// UART Rx オンリーモード

// UART_Tx ピンをファームウェアから制御されるように設定する

CY_SET_REG32 (CYREG_HSIOM_PORT_SEL0, CY_GET_REG32 (CYREG_HSIOM_PORT_SEL0) & 0xFFFFFF0F);

// UART Tx ピンのドライブモードを設定する

UART_pin_SetDriveMode(UART_pin_DM_RES_UP);

// UART Rx オンリーモードオペレーション用コードをここに記述する

// デフォルトの全二重の UART 機能をロードする (例) Tx ピンは SCB ブロックに接続されている

CY_SET_REG32 (CYREG_HSIOM_PORT_SEL0, temp);

=============================

7-Apr-2020

moto

2 Replies
JennaJo
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hello, Tanaka-san

We receive your translation, it will be published to KBA to Community.

After upload, You will receive the points as the word of KBA.

Due to the current volume of works, Please bear with me for the delayed the response,

Thanks for your contribution to CDC!

Will keep you update the status.

Thanks,

Jenna Jo

Jenna Jo
JennaJo
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

PSoC 4 デバイスでファームウェアから UART の Tx と Rx ピンを制御する - KBA224950 - Community Translated (JA)

Hello, Tanaka-san

Your translation has been published.

As a token of appreciation, you will receive the point.

Please note that giving a point will be done in middle of May.

Sorry for the delayed response.

Thank you for your contribution.

Regards,

Jenna

Jenna Jo
0 Likes