2021/06/01(火)LPC55xx : Sys_ctrl

参照: NXP LPC55S1x RM R1.4, 36章 *1

*1 : この記事は筆者が私的利用のためにReference Manualを抜粋、翻訳したものです。いかなる問題に対しても責任は負いません。

Sys_ctrl

36.1 How to read this chapter

sys_ctrlには、次のものが含まれています。

  • I2S信号の共有(I2S signal sharing)機能。この機能は、すべてのLPC55S1x/LPC551xデバイスで利用可能です。
  • USB HS用のステータスレジスタ
  • グレイ(GRAY)値のバイナリデコーダ

36.2 Features

  • I2S信号の共有 : 複数のFlexcomm Interface I2Sインターフェイスが、外部ボード配線なしで、I2Sクロック、WS、DATAの組み合わせを共有できます。
  • グレイ→バイナリデコーダ : OSイベントタイマからのグレイ値をデコードできます。

36.3.1 I2S signal sharing

I2S信号の共有を以下のように設定します。

FCnCTRLSELおよびSHAREDCTRLSETxレジスタを書き込む前に、UPDATELCKOUTビットをリセットしてUPDATELCKOUTレジスタ内の書き込み保護を解除します。

1. IOCONで、I2Sの動作のために実際に外部に接続するピンの適切な機能を選択します。

SHAREDCTRLSET0、SHAREDCTRLSET1レジスタに書き込んで、どの共有セットを使用するかを設定します(36.5節「Register description」を参照)。

2. 必要に応じてFC0CTRLSEL~FC7CTRLSELレジスタに書き込んで、共有された信号を使用する各Flexcomm Interfaceの信号共有を設定します。

I2S信号共有を使用するFlexcomm Interfaceを必要に応じて設定します(36.5節を参照)。どのFlexcomm Interfaceもまずマスタとして動作し、次にスレーブとして動作します。

注意:信号共有の接続はレジスタの値が変更されると同期をとらずに行われるので、データストリームの開始前に行う必要があります。

また、SCKとWS信号を共有しているI2Sマスタは、共有信号を使用するように設定する必要があります。例えば、Flexcomm Interface 0がSCKとWSを共有セット0に提供している場合、FC0CTRLSELでSCKとWSに共有セット0を選択設定します。

36.4 Pin description

I2S信号の共有は、ピンを直接経由するのではなく、既存のI2Sピン機能への内部配線の追加です。

36.5.1 Update clock lock out register

sys_ctrlのすべてのレジスタ(このレジスタを除く)を書き込みアクセスから保護するためのレジスタです。

36.5.2 Shared signal control select registers for each Flexcomm (0 to 7)

これらのレジスタは、Flexcomm Interface 3を除く各Flexcomm InterfaceのSCK、WS、DATA入力、およびDATA出力の信号源を選択します。共有信号の接続方法と選択方法の詳細については、表660を参照してください。

36.5.3 Control registers for each set of shared signals

これらのレジスタは、(2つの)共有信号グループのSCK、WS、DATA入力のソースを選択し、どのFlexcomm Interfaceが共有DATA出力に参加するかを設定します。

36.5.4 Status register for USB HS

このレジスタは、USB HS 3.3V電源ドメインの低電圧検出信号を示します。電源の検出器はUSB PHYに内蔵されています。

36.5.5 CODE GRAY for LSB input

CODE GRAY LSBの入力レジスタとして機能します。

36.5.6 CODE GRAY for MSB input

CODE GRAY MSBの入力レジスタとして機能します。

36.5.7 CODE BIN LSB output

CODE BIN LSBの出力レジスタとして機能します。*2

36.5.8 CODE BIN MSB output

CODE BIN MSBの出力レジスタとして機能します。*2

36.6 Functional description

I2S信号の共有機能は、すべてのLPC55S1x/LPC551xデバイスで利用できます。

必要以上のピンを犠牲にすることなく、1つのTDMストリームで複数のI2S機能を一緒に使用したい場合があります。I2S信号の共有により、デバイスの外部で複数のピンを外部接続することなくこのような使用が可能になります。この機能は、4つのチャネルペアを含む1つのI2Sインターフェイスで実現できる範囲を超える要件がある場合にのみ、必要となります。

信号の共有は、複数のオンチップI2Sインターフェイスを、外部の基板配線なしに、同じピンでクロック、WS、入力データに接続することができます。複数のI2S機能が1つのデータラインに出力データを提供する場合は、やはり外部接続で実現する必要があります。

一般的に、I2S用に設定された各Flexcomm Interfaceは、以下を選択できます。

  • 独自のSCK、または共有のSCK。
  • 独自のWS、または共有のWS。
  • 自身のDATAイン、または共有のDATAイン。

各Flexcomm Interfaceは、共有された信号に貢献できる可能性があります。

  • 自身のSCK(マスタかスレーブかに応じて、インまたはアウト)。
  • 自身のWS(マスタかスレーブかに応じて、インまたはアウト)。
  • 独自のDATAイン。

図104と図105に接続可能な代表的なロジックを示します。

36.6.1.1 Examples

図106は、入力データと出力データが2つの異なるI2Sインターフェイスに接続された双方向コーデックの簡単な例で、信号共有を利用して接続を1つのSCKと1つのWSピンに減らしています。この例では、1つのI2Sインターフェイスがマスタトランスミッタで、1つのI2Sインターフェイスがスレーブレシーバとなっています。データ入力と出力は、外部コーデックの別々のピンであるため、1つのピンで共有することはできません。

図107は、複数のスレーブおよび/またはレシーバがSCKとWS、および/またはDATAを共有する一般的なケースを示しています。このシナリオには、受信データの共有が含まれます(例えば、異なるI2SインターフェイスがTDMストリームの異なるスロットからデータを受信する場合など)。

図108は、あるI2Sインターフェイスがチップ外に出るマスタとなり、他のオンチップI2Sインターフェイスがそのスレーブとなるマスタ・スレーブ動作を示しています。データは送信することも受信することもできます。複数のI2Sインターフェイスは、複数のピンを配線することで、1つのストリームにデータを供給します。

図109は、1つのI2Sインターフェイスが共有のDATAラインに送信している間に、少なくとも1つの他のI2Sが同じDATAラインから受信しているデータを示しています。これは、必ずしも送信されたデータが受信されていることを意味するものではありません。これらはTDMフレーム内の異なるパケットである可能性があります。この例では、2つのI2Sインターフェイスが送信し、2つのI2Sインターフェイスが受信していますが、どのような組み合わせも可能です。

*2 : 原文の誤りだろうね。