Tip / ログイン to post questions, reply, level up, and achieve exciting badges. Know more

cross mob

PSoC 6 でペリフェラルクロックが変化しても UART のボーレートを安定に保つ - KBA224500 - Community Translated (JA)

PSoC 6 でペリフェラルクロックが変化しても UART のボーレートを安定に保つ - KBA224500 - Community Translated (JA)

GeethaP_31
Employee
Employee
50 questions asked 10 questions asked 5 questions asked

Community Translated by  MoTa_728816 Expert          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 のドキュメントをご参照ください。

0 件の賞賛
155 件の閲覧回数
寄稿者