![見出し画像](https://assets.st-note.com/production/uploads/images/111426816/rectangle_large_type_2_c7e5030ea9b760bf6071a2a77ef89d21.jpeg?width=1200)
RL78 ELCがめっちゃ便利
現在、APS-Web様向け寄稿記事で、
色々なMCU評価ボードでブラシレスモーターを回す
という活動をしています。
ルネサスエレクトロニクス社製
RL78/G14を引き続き実装中です。
ELCが想像以上に便利だったので、
ELCと今回の実装についてさくっと書いてみました。
1. ELCとは
ELCは、各周辺機能が出力するイベントを周辺機能間で相互に接続(リンク)します。イベントリンクによ りCPUを介さず直接、周辺機能間での連携動作が可能になります。
つまりペリフェラル同士が勝手に連携してくれる
という事ですね。
2. 設定方法
なにが感動したかというと、
設定がややこしくなくて簡単に使える
という所です。
![](https://assets.st-note.com/img/1689996611978-FEH2oJn5kG.png?width=1200)
コード生成画面で
1. イベントリンクコントローラ を選択
2. ELCで動作開始するペリフェラル(出力先) を選択
3. 動作開始のトリガーとなるペリフェラル(発生元) を選択
だけです。
今回は
タイマーRDのカウントアンダーフローをトリガーに
AD変換を開始する
という動作にしてみました。
AD変換側の設定も少し行います。
![](https://assets.st-note.com/img/1689997369482-r6PFUm8JlJ.png)
ハードウェア・トリガ
(AD変換開始が他のペリフェラル) で、
トリガにELCを選択します。
変換時間を2.125usに設定しています。
3. 動かしてみる
ELCの動作がわかるように、
各ペリフェラルの動作をIOポートでモニターしました。
![](https://assets.st-note.com/img/1690018331771-mxjQm6dXtu.jpg?width=1200)
ch.1 (黄色): タイマーRD PWM出力 正相
ch.2 (水色): タイマーRD PWM出力 補相
ch.4 (青色): IOポート出力
① タイマーRDアンダーフロー
▽
(AD変換開始)
▽
② AD変換中 (変換時間2.125us)
▽
③ AD変換完了
この動作の素晴らしいところは、
①~③の動作にCPUが関与していない
という所です。
(IOポートを叩くために割り込み掛けていますが、
実際は割り込みも不要です)
4. 最後に
この後、AD変換データを読み出す必要があるのですが、
それも自動的に行うDTCという機能があります。
まだ試していませんが、動作確認でしたらまた記事にします。
前回▼