Renesas Synergy™

FAQ 1007086 : V850でできるだけ CPUに負担をかけずに (リアルタイム出力を使用して) モータ制御を行う方法を教えてください。

(V850/SA1、SB1、SB2、SV1に共通)
モータ制御のようなタイミングの制限が厳しい出力を制御するには、内蔵のタイマ機能、 DMA機能をリアルタイム出力機能と組み合わせて使用します。
- 4ビットのリアルタイム出力 (RTP0RTP3) を使用することを考えます。 この場合には、出力タイミングはタイマ4 (INTTM4) を使用することになります。 また、同じタイミング (INTTM4をDMA転送のトリガにも使用する) で次の出力データを RTBLに DMA転送するので、DMAチャネルとしてはチャネル0 (またはチャネル1) を使用します。
前もって、出力パターンを内蔵RAM(その下位4ビット)に作成してあるとして以下の設定を行ってください。

(1) タイマ4 は、インターバル・タイマ機能により定周期で割り込み要求信号を発生します。 割り込み周期は TCL4レジスタによりタイマのカウント・クロックを選択し、 コンペア・レジスタ CR40の値+1 カウント分の時間として設定します。 ただし、未だタイマはスタートはしません。

(2) DMAの設定は、

DIOA0(または1): RTBLのアドレスの下位10ビットである3A0Hを設定
DRA0(または1): データを格納しているRAMアドレスの下位アドレス
(有効ビット数は使用するCPUの内蔵RAM容量による)を設定
DBC0(または1): データ数 - 1を設定
DCH0(または1): 動作モードとして19Hを設定


(内蔵RAMアドレスはインクリメント、内蔵RAM → 周辺I/Oに、8ビット・データを転送)

(3) リアルタイム出力は、まず、RTP0RTP3 と兼用になっているポート (P100~P103) を設定します。

P100~103: 初期値
PM100~103: xxxx0000B(下位4ビットを出力に)を設定


その後に

RTPM: 0FH(下位4ビットをリアルタイム出力)を設定
RTPC: 80H(4ビット2チャネルモードで動作許可)を設定
RTBL: 次のデータを設定


(4) これで設定が完了しましたので、TMC4に 80Hを設定 (TM4CR40の一致でクリア&スタート、 タイマ出力は使用しない)してタイマ4 をスタートします。
これで、タイマ4 で指定した時間間隔毎に RTP0~3 に出力パターンが出てきます。
なお、初期値及び次のデータは既に設定してあるので、DMA転送するのはその次のデータからになります。

タイミングを以下に示します。
 
後は、INTDMA0 (または1) の割り込み毎に DMAの再設定と再起動を行うことで、 連続した出力パターンを発生させることができます。

適用製品

V850/Sx
他にご質問がございましたら、リクエストを送信してください