見出し画像

RL78 ELCがめっちゃ便利

現在、APS-Web様向け寄稿記事で、
色々なMCU評価ボードでブラシレスモーターを回す
という活動をしています。

ルネサスエレクトロニクス社製
RL78/G14を引き続き実装中です。

ELCが想像以上に便利だったので、
ELCと今回の実装についてさくっと書いてみました。


1. ELCとは

ELCは、各周辺機能が出力するイベントを周辺機能間で相互に接続(リンク)します。イベントリンクによ りCPUを介さず直接、周辺機能間での連携動作が可能になります。

初めてのRL78/G14 ELC より

つまりペリフェラル同士が勝手に連携してくれる
という事ですね。

2. 設定方法

なにが感動したかというと、
設定がややこしくなくて簡単に使える
という所です。

設定項目は2か所だけ

コード生成画面で
 1. イベントリンクコントローラ を選択
 2. ELCで動作開始するペリフェラル(出力先) を選択
 3. 動作開始のトリガーとなるペリフェラル(発生元) を選択
だけです。

今回は
 タイマーRDのカウントアンダーフローをトリガーに
 AD変換を開始する
という動作にしてみました。

AD変換側の設定も少し行います。

AD変換開始のトリガーをELCにする

ハードウェア・トリガ
(AD変換開始が他のペリフェラル) で、
トリガにELCを選択します。

変換時間を2.125usに設定しています。

3. 動かしてみる

ELCの動作がわかるように、
各ペリフェラルの動作をIOポートでモニターしました。

IOポートをオシロスコープで測定

ch.1 (黄色): タイマーRD PWM出力 正相
ch.2 (水色): タイマーRD PWM出力 補相
ch.4 (青色): IOポート出力

① タイマーRDアンダーフロー
 ▽
(AD変換開始)
 ▽
② AD変換中 (変換時間2.125us)
 ▽
③  AD変換完了

この動作の素晴らしいところは、
①~③の動作にCPUが関与していない
という所です。
(IOポートを叩くために割り込み掛けていますが、
実際は割り込みも不要です)

4. 最後に

この後、AD変換データを読み出す必要があるのですが、
それも自動的に行うDTCという機能があります。
まだ試していませんが、動作確認でしたらまた記事にします。

前回▼


この記事が気に入ったらサポートをしてみませんか?