説明
PWM (パルス幅変調) は組み込みシステムで非常に一般的です。モーター制御用のパルス周期波形を生成する方法を提供し、外部コンポーネントを使用してデジタル/アナログ コンバーターとして機能することもできます。
RK3562 は 16 個の割り込み駆動型オンチップ PWM チャネルをサポートし、次の機能を備えたキャプチャ モードを提供します。
- 入力波形の高/低極性有効期間の測定。
- 入力波形の極性が変化したときに単一の割り込みを生成します。
- 32ビット高極性キャプチャレジスタ
- 32ビット低極性キャプチャレジスタ
- 32ビットの現在値レジスタ
- キャプチャ結果は8深度のFIFOに保存可能 FIFOデータはCPUまたはDMAで読み取ることができる
- チャネル3は32ビットのパワーキーキャプチャモードをサポートします
- チャネル3とチャネル0/1/2間のIO切り替えをサポート
- 入力パルスカウンタをサポート
- ノイズを除去する入力フィルターをサポート
RK3562 のキャプチャ モードは、PWM チャネル クロックを使用して PWM チャネル入力波形の高/低有効期間を測定し、入力波形の極性が変化すると割り込みを生成します。また、入力波形のパルス数をキャプチャすることもできるため、デューティ サイクルや周波数などの波形情報を測定できます。
アプリケーションシナリオ
PWM キャプチャは、外部信号のサイクル、周波数、デューティ サイクルを測定するために使用される技術です。電力部門では、グリッド周波数の通常の変動により、グリッド電力を分析および監視するには、リアルタイムのデータ取得が不可欠です。PWM キャプチャ技術は、グリッド周波数をリアルタイムで検出するために利用できます。
この記事では、信号発生器を使用して特定の周波数の方形波を生成し、実際のアプリケーション シナリオでの信号入力をシミュレートし、RK3562 の PWM キャプチャ機能の簡単なデモンストレーションを示します。
事例
開発ボードモデル: OK3562-C + FET3562J-C
Forlinx マテリアル バージョン: OK3562-C_Linux 5.10.198_ユーザー マニュアル_R1
開発ボードシステム: Linux 5.10.198 (CPU0、1、2) + RT-Thread (CPU3)
ハードウェアの準備:
OK3562-C開発ボード1セット
信号発生器1台
デュポンワイヤー数本
ソフトウェアの準備:
入手するにはForlinxにお問い合わせください。
ソースコードのコンパイル:
ソースコードを抽出し、OK3562-linux-sourceディレクトリに入ります。
./build.sh defconfig:forlinx_ok3562_linux_rtos_defconfig を実行して、AMP モードで 3 つの CPU で Linux を実行し、1 つの CPU で RT スレッドを実行するようにコンパイル構成を変更します。
完全なコンパイルのために ./build.sh を実行し、プロセスが完了するまで待ちます。
コンパイルされた update.img イメージは rockdev ディレクトリに保存されます。
テスト手順:
1. ソフトウェア資料のユーザー マニュアルに従ってイメージを書き込みます。書き込み後、デバイスの電源を入れると、RT-Thread が次のように印刷します。
2. fl_pwmcap を実行して PWM キャプチャ機能を有効にし、入力信号の検出を開始します。起動が成功すると、以下のように表示されます。
3. 信号発生器をオンにし、出力モードを連続パルス波形に変更し、周波数を 10 kHz、デューティ サイクルを 90% に設定します。
信号発生器の出力を有効にすると、ボードは測定された周期とデューティ サイクルの印刷を開始します (89% のデューティ サイクルは、プログラムの計算で小数点が保持されず、エラーが発生するためです)。
信号発生器のデューティ サイクルを 30% に変更すると、ボードの出力にこの 30% の変更が反映されます。
信号発生器の周波数を 500 kHz に、デューティ サイクルを 75% に変更し、ボードの出力を観察し続けます。
元は www.forlinx.net で公開されています。