PSoC 6 でペリフェラルクロックが変化しても UART のボーレートを安定に保つ - KBA224500 - Community Translated (JA)
- RSS フィードを購読する
- 新着としてマーク
- 既読としてマーク
- ブックマーク
- 購読
- 印刷用ページ
- 不適切なコンテンツを報告
Community Translated by MoTa_728816 Version: *A
Translation - English: Maintain UART Baud Rate Stable when Peripheral Clock is Changed in PSoC 6 – KBA224500
質問:
PSoC® 6 で省電力デザインのためにペリフェラルクロック (Clk_Peri) が動的に変化したときに UART のボーレートを安定に保つのはどのようにしたら良いでしょうか?
回答:
PSoC Creator ™ を使用している場合、UART のボーレートはコンポーネント GUI の中で設定できます、しかし実際の動作メカニズムとして PSoC Creator はコンポーネントの設定に従って UART_x_SCBLK クロックを UART にアサインします。舞台裏で PSoC Creator は適切な分周比を計算してクロックを設定します。PSoC Creator は UART の Enable Clock from Terminal オプションが選択されていない (デフォルト) 場合にこれらの処理を行います。
しかし、Enable Clock from Terminal オプションが選択された場合、コンポーネントのアイコンにクロック端子が現れます。Clock コンポーネントで提供されている API を使用してクロック出力を動的に変化させることが可能です。この機能によりソースクロックが変化しても UART のクロックを安定に維持することが可能です。
下記の式でペリフェラルクロック変化の前後で使用されるクロック分周比を決定することが可能です:
UART クロック分周比 = CLK_PERI / (UART ボーレート × オーバーサンプル)
ここで、
CLK_PERI は全てのプログラマブルペリフェラルクロックディバイダのソースクロックです。
もし ModusToolbox を使用している場合、Cy_SysClk_PeriphSetDivider() API を使用してクロック分周比を設定可能です。詳細は PDL のドキュメントをご参照ください。