Community Translation - Runtime Clock Configuration for PSoC 4 Devices - KBA233007

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

cross mob
keni_4440091
Level 7
Level 7
500 replies posted 100 solutions authored 50 solutions authored

Dear supporter

I want to translate the following KBA, please confirm to my work.

Runtime Clock Configuration for PSoC 4 Devices - KBA233007

Regards,

Nino

0 Likes
1 Solution

Dear Jenna

Here is the translation in Japanese for targeted KBA.

Please confirm and double check.

Regards,

Nino

 

PSoC 4 製品用のランタイムクロック設定 - KBA233007

 

Version: **

 

IMOはPSoC 4のメインクロック源であり、周辺およびCPUのクロックです。しかし、設計されたPSoC 4ピンに供給される外部クロック(EXTCLK)も使用可能です。HFCLKはIMOから、または外部クロックから選択できます。SYSCLKはHFCLKの整数分割になります。SYSCLKはCortex-M0 CPUに供給されます。

 

下記のブロック図にPSoC 4のクロックツリー構造を示します。

keni_4440091_0-1623654552970.png

Figure 1: PSoC 4 Clock Tree

 

注: このKBAでは定周波数クロックに関しては触れません。

 

プロジェクトを生成する場合、ユーザーに対して、クロック周波数の動的変化が必要になる場合があります。次の一連のAPIを使用して、実行時にクロック周波数を変更できます。

 

  • IMO周波数を動的に変更:

 

/* FlashのウェイトサイクルとIMO周波数の設定*/
CySysFlashSetWaitCycle(CLK_IMO_MHZ / CY_SYS_CLK_SYSCLK_DIVx);
CySysClkWriteImoFreq(CLK_IMO_MHZ);

 

注:デバイス動作の間にCPUクロック周波数が早くなった場合、サンプリングデータがフラッシュから返される前に、キャッシュが待機するクロックサイクル数を調整する必要があります。クロック周波数を下げる時、フラッシュウェイトサイクルの設定は必須ではありませんが、CPU性能を向上させるために実施することを推奨します。CySysFlashSetWaitCycle() 関数はSYSCLK周波数動作で提供されます。IMOがメインクロックの場合、SYSCLK = IMO周波数/SYSCLK分周。

 

ここで、CLK_IMO_MHZ は所望のIMOクロック周波数です。このパラメータの有効範囲は特定のPSoC 4製品ファミリに依存します。

 

注: CY_SYS_CLK_SYSCLK_DIVx パラメータでは、「x」は、2、4、8…、128と同等で、所望のSYSCLKを得るために分周されるHFCLKによって整数に対応します。

 

  • HFCLKクロックソースの動的な変更

 

/* HFCLK ソースの設定 */
 CySysFlashSetWaitCycles(CLK_IMO_MHZ / CY_SYS_CLK_SYSCLK_DIVx); 
CySysClkWriteHfclkDirect(CY_SYS_CLK_HFCLK_IMO);

 

注: ここで CySysClkWriteHfclkDirect() 関数はHFCLKソース(IMOやEXTCLKなど)を選択するために使用されます。

 

  • SYSCLK周波数の動的な変更

 

/* SYSCLK 分周の設定 */
CySysFlashSetWaitCycles(CLK_IMO_MHZ / CY_SYS_CLK_SYSCLK_DIVx );
CySysClkWriteSysclkDiv(CY_SYS_CLK_SYSCLK_DIVx);

 

このKBAで述べられているAPIについての詳細は、PSoC 4 System Reference Guideを参照してください。

 

View solution in original post

0 Likes
3 Replies
JennaJo
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hi, Nino-san

Confirm to work this KBA.

Thanks,

Jenna Jo
0 Likes

Dear Jenna

Here is the translation in Japanese for targeted KBA.

Please confirm and double check.

Regards,

Nino

 

PSoC 4 製品用のランタイムクロック設定 - KBA233007

 

Version: **

 

IMOはPSoC 4のメインクロック源であり、周辺およびCPUのクロックです。しかし、設計されたPSoC 4ピンに供給される外部クロック(EXTCLK)も使用可能です。HFCLKはIMOから、または外部クロックから選択できます。SYSCLKはHFCLKの整数分割になります。SYSCLKはCortex-M0 CPUに供給されます。

 

下記のブロック図にPSoC 4のクロックツリー構造を示します。

keni_4440091_0-1623654552970.png

Figure 1: PSoC 4 Clock Tree

 

注: このKBAでは定周波数クロックに関しては触れません。

 

プロジェクトを生成する場合、ユーザーに対して、クロック周波数の動的変化が必要になる場合があります。次の一連のAPIを使用して、実行時にクロック周波数を変更できます。

 

  • IMO周波数を動的に変更:

 

/* FlashのウェイトサイクルとIMO周波数の設定*/
CySysFlashSetWaitCycle(CLK_IMO_MHZ / CY_SYS_CLK_SYSCLK_DIVx);
CySysClkWriteImoFreq(CLK_IMO_MHZ);

 

注:デバイス動作の間にCPUクロック周波数が早くなった場合、サンプリングデータがフラッシュから返される前に、キャッシュが待機するクロックサイクル数を調整する必要があります。クロック周波数を下げる時、フラッシュウェイトサイクルの設定は必須ではありませんが、CPU性能を向上させるために実施することを推奨します。CySysFlashSetWaitCycle() 関数はSYSCLK周波数動作で提供されます。IMOがメインクロックの場合、SYSCLK = IMO周波数/SYSCLK分周。

 

ここで、CLK_IMO_MHZ は所望のIMOクロック周波数です。このパラメータの有効範囲は特定のPSoC 4製品ファミリに依存します。

 

注: CY_SYS_CLK_SYSCLK_DIVx パラメータでは、「x」は、2、4、8…、128と同等で、所望のSYSCLKを得るために分周されるHFCLKによって整数に対応します。

 

  • HFCLKクロックソースの動的な変更

 

/* HFCLK ソースの設定 */
 CySysFlashSetWaitCycles(CLK_IMO_MHZ / CY_SYS_CLK_SYSCLK_DIVx); 
CySysClkWriteHfclkDirect(CY_SYS_CLK_HFCLK_IMO);

 

注: ここで CySysClkWriteHfclkDirect() 関数はHFCLKソース(IMOやEXTCLKなど)を選択するために使用されます。

 

  • SYSCLK周波数の動的な変更

 

/* SYSCLK 分周の設定 */
CySysFlashSetWaitCycles(CLK_IMO_MHZ / CY_SYS_CLK_SYSCLK_DIVx );
CySysClkWriteSysclkDiv(CY_SYS_CLK_SYSCLK_DIVx);

 

このKBAで述べられているAPIについての詳細は、PSoC 4 System Reference Guideを参照してください。

 

0 Likes
IFX_Publisher2
Community Manager
Community Manager
Community Manager
1000 replies posted First like given 750 replies posted

Hi,  Nino san,

Confirmed to receive this KBA.

Thank you for your contribution.

Thanks,
Bindu

0 Likes