概要 | 特長 | 型番一覧 | アプリ例 | 使い方 | ドキュメント/技術情報

SCTimer/PWM - CPUを介さない、イベント駆動の高速で自由度の高いタイマーブロック

概要

SCT:ステート・コンフィギュアブル・タイマー(State Configurable Timer)/PWMは高い自由度を持ったイベント駆動の ステート・マシンとタイマで構成されたブロックでCPUを介さずに動作します。下図のSCTブロックをご覧ください。 一般的なPWMに赤い部分が追加されたNXPユニークなハードウェア。通常のタイマーに同期したPWMだけでなく、信号に同期した制御などが可能。 SCTは、LPC4300/LPC1800/LPC1500/LPC11U60/LPC11E60/LPC800に搭載。 イベントはSCTの入力、出力信号(High/Low または エッジ) と タイマー(カウンター)マッチに同期してイベントを発生し、 複数のハードウェア制御(SCT出力、キャプチャー、割り込み、DMAリクエスト 及び タイマー制御)が可能。 ADCへのトリガもかけられます。 CPUのリソースを使わずに高速に自由度の高い制御ができます。入力信号に同期してDMA/割り込みを使って、GPIOをワード(ポート)単位で 制御することなども可能。

特長

SCTブロック
SCTブロック図
赤線、赤枠部分はPWMブロックに追加されたNXPユニーク機能

SCTイベント
SCT動作
イベント発生で状態遷移、イベント発生条件と発生時アクション
SCTの状態遷移時にイベントを発生させる
  1. 状態(States)を生成する
  2. 必要数のイベントを生成する(状態遷移させる)
  3. 各イベント発生の要件を決める(Input)
    • SCTへの1つの入力 または 出力
      (High/Low, 立ち上り/立ち下りエッジ)
    • タイマーマッチ
    • タイマーマッチ と 入力または出力
      のコンビネーション(AND/OR)
  4. 各イベントが発生時のアクションを設定
    • SCT出力のHigh/Low 及び トグル
    • タイマー値をキャプチャーレジスタへ
    • 割り込み発生
    • DMAリクエスト
    • タイマーコントロール:
        タイマースタート/ストップ/
        リミット(リセット)/
        中断(ソフトでのみ再開可)
    • ※1つのイベントで複数のアクションを発生可

SCT_Transition_X
SCT_Transition_X
SCT状態遷移図: 「Red Stateツール」で状態遷移図を作成すると、SCTのレジスタ設定を吐き出してくれる
「Red State」は、LPCXpresso IDE内にある SCT用ツール

SCT搭載、LPCマイコン型番一覧

NXP Part SCT
inputs
SCT
outputs
states events match/
capture
SCTIPU dithering SCTPLL
LPC81x 4 4 2 6 5 No No No
LPC82x 4 6 8 8 8 No No No
LPC11U6x/LPC11E6x – SCT0/1 4 4 8 6 5 No No No
LPC15xx – SCT0/1 8 10 16 16 16 Yes Yes Yes
LPC15xx – SCT2/3 3 6 10 10 8 Yes No No
LPC18x0/LPC43x0 (flashless)
LPC18Sx0/LPC43Sx0 (flashless)
8 16 32 16 16 No No No
LPC18xx/LPC43xx (flash)
LPC18Sxx/LPC43Sxx (flash)
8 16 32 16 16 No Yes No
LPC541xx 8 8 13 13 13 No Yes No
型番ごとの詳細は、データシート/ユーザーマニュアルでご確認ください。

SCTを使ったアプリケーション例 〜 カメラインターフェース・ソリューション 〜

SCTを使ったカメラインターフェースの例です。ここではKeil LPC1857評価ボード(カメラインターフェース・ソリューションキット: OM13059)を使った例を示します。 この例では、SCTはカメラが出力する”Vsync”, “Hsync (HREF)”, “PixClk”のエッジに同期してイベントを発生(状態遷移)します。右下にSCTの状態遷移図があります。 「wantV」は”Vsync”立ち下りエッジ待ち、「WantH」は”HREF”立ち上がりエッジ待ち、「inH」は”HREF”がHighの状態です。 「inH」状態では”PCLK(PixClk)”の立ち上がりエッジのイベントでDMAリクエストをしています。 DMAはGPIOの入力データをEMCに接続されたDRAMに転送、DRAM内のLCDフレームバッファーにセットされたデータをLCDコントローラのDMAでLCDに出力しています。 データ転送はDMAが行いますのでCPUのリソースはほとんど使用していません。

Keil LPC1857/LPC4357を使ったSCTカメラインターフェースの詳細 及び コードは、アプリケーションノート:AN11365 をダウンロードしてください。

カメラインターフェースソリューション
(OM13059)

SCTの使い方

    まずは、このアプリケーションノートをダウンロードしてください。
  • SCTimer/PWM cookbook (AN11538)
      SCTimer/PWM cookbook (AN11538)に含まれているSCTの例 及び 説明
      • Repetitive interrupt
      • Blinky match (タイママッチで、SCTx_OUTxでLEDチカチカ)
      • Match toggle (SCTx_OUTxのトグル出力)
      • SCTPLLを使う (LPC1500のSCT0/1のみ)
      • Simple PWM
      • Center aligned PWM
      • 2-ch PWM
      • PWM with deadtime
      • Match reload
      • 4-ch PWM
      • Decoding PWM
      • RC5 transmission(リモコン送信)
      • RC5 receiving(リモコン受信)
      • SCTimer/PWM start_stop
      • Input synchronization
      • Dithering(ディザリング)
      • など
      ※評価用ボードは、各LPCXPresso評価用ボード、但し LPC18000/LPC4300は Hitexボード (SCTツールは以前の Fizzim、下記参照)

  • ダウンロードした中にはアプリケーションノートと、その他に各デバイス用のサンプルコードも含まれています。
    SCTの設定方法にツールを使い、ツールが吐き出す設定を取り込む方法 と SCTのレジスタ設定を直接書く方法があります。

    SCTの設定方法
    1. ツールを使ったSCTの設定
    2. ここで少し複雑なのですが、SCTをサポートするツールが変更された経緯があります。
      • Red State」:現在サポートしているSCTツール、LPCXpreesso IDEの中にあるGUI。LPCXpresso IDEのダウンロードはこちら
      • 「Fizzim」:過去にLPC1800/LPC4300でサポートしていたSCTツール、JavaベースのオープンソースGUI。ツールのダウンロードはこちら

      SCTのレジスタ設定は、ツールを使わずに直接設定も可能(あとで説明)ですが、最初はツールを使った方がSCTの動作イメージがしやすいと思います。 現在サポートしているツールは「Red State」ですのでこちらを使用してください。
      「Red State」の使い方は下記資料を参照ください。

      1. LPC81x SCTの使い方プレゼン - プレゼンはこちら、 エクササイズのソースはこちら
          プレゼンでは、LPC81xのSCTレジスタの説明 と 「Red State」を使ったエクササイズがあります。 LPC81xですので、ステート、イベント、SCT入力/出力の数が少ないですが、他のLPCマイコンのSCTもレジスタ構成は同じ。 エクササイズは、ダウンロードしたzip内の"\LPC81x_SCT_code_examples\LPCXpresso\SCT_exercise.zip"をLPCXPresso IDEのインポートで取り込み、 Red Stateツール上でSCTの設定をいちから実際にやってみる練習になっています(LPCXPresso LPC812ベース)。

      2. SCTimer/PWM cookbook (AN11538)のサンプルを「Red State」で開く
          ダウンロードしたzipを解凍すると、"\\code examples"フォルダ内に各マイコンシリーズのSCTサンプルコードが入っています。
          ここでは「Red State」の状態遷移図を含むサンプルを開きたいので、次のフォルダ "\\AN11538\code examples\LPC81x\LPCXpresso + Red State" を開いてください。 フォルダ内のサンプルは「Red State」ツールを使ったサンプルコードです。 各フォルダ内のzipファイルを LPCXprreso IDE でインポートしてください。

          注意:
            Red Stateツール用ファイル(拡張子 .rsmファイル)が含まれるのは、"\\AN11538\code examples\LPC81x\LPCXpresso + Red State" のみ。 その他サンプルはSCTレジスタ設定を直接コードに書いています。

      3. LPCXpreeeo IDE ユーザーガイド の 「Red State」関連の章
          LPCXpresso IDEをデフォルト設定でインストールすると、"C:\nxp\LPCXpresso_7.x.x_xxx" フォルダ内に "LPCXpresso_User_Guide.pdf"があります。 このファイルには「Red State」の使い方の詳細がありますので参照してください。
      4. 「Red State」ツールで吐き出したSCT設定ファイルを Keil, IAR に取り込む方法はこちら(ANxxx)をご覧ください。

    3. 直接コード内にSCTレジスタ設定を書く

ドキュメント/技術情報

NXP LPCマイコン情報: LPCマイコン・ペリフェラル 技術情報 一覧
  • 検索したいキーワードを入力し検索ボタンを押してください。
  • キーワードはスペースで区切って複数指定することができます。
キーワード AND OR
SCT に関連する情報は10件見つかりました。

SCTimer/PWMのページ(英語) [SCT]

SCT Cookbook and Tutorial - AN11538 [SCT]

LPC81xM SCTimer/PWMとコンパレータで キャパシティブ・タッチボタンを実現する [SCT]

LPC15xx SCTimer/PWM を使った BLDCモータ制御 [SCT]

LPC15xx PMSMモータ ベクトル制御(FOC) - AN11517 [SCT]
FOC: Field Oriented Control、SCT

PWMディザリング(Dithering) on SCT for LPC1500 (AN11580) [SCT]

SCT(State Configurable Timer)を使ったカメライン ターフェース(AN11365) on LPC1800/LPC4300 [SCT]

LPCXpresso IDE の Red Stateツールを使ってSCTレジスタ設定コードを生成しKeil/IARで取り込む - AN11161 [SCT]

PWMディザリング(Dithering) on SCT - AN11580 [SCT]
SCTを使ってPWM制御する場合のPWMディザリングのアプリケーションノート。 サンプルコードはKeil LPC 1857ボード。

「Fizzim」を使ったSCTツール [SCT]
このツールは以前サポートしていたSCTツール。現在サポート中のLPCXpresso IDE内の「Red State」ツールをご利用ください

▲PageTop