- 公開日:2025年01月07日
RL78でI2S通信を実現しよう!
- ライター:奥山和哉
- マイコン
はじめに。
RL78に無い機能を実現したいと思ったことはありませんか?
RL78には、I2S通信のペリフェラルを搭載している製品がありません。
そのため、I2Sを搭載している他のファミリを選択された方もおられると思います。
じつは、RL78の新機能ELCLを使うとチップ上で簡単にI2Sを作成することができるのです。
ここでは、ELCLを使ってI2S通信を実現するアプリケーションノートとサンプルプログラムを用いて
実際に音声通信できることを確認していきたいと思います。
本題の前に。(RL78ファミリの新機能 ELCLについて)
ELCLはロジック&イベント・リンク・コントローラの略で
周辺機能の出力や割り込み信号に論理回路を組み合わせることが可能になっています。
これによって、新しい機能や、便利な使い方を実現することができます。
検証実験の手順
RL78/G23のアプリケーションノート(RL78/G23 ELCL、SPIによるI2S通信)の手順通りに動作させていきます。
アプリケーションノートはこちら-> RL78/G23 ELCL,SPIによるI2S通信
1.まず、アプリケーションノート(以下APN)のP.8 表2-1動作確認条件に記載されている条件の開発環境を揃えます。
2.次に、周辺部品を揃えます。
〇音声再生コーデック
音声再生のコーデックはAPN上で 「4.1.1 動作概要 に 本サンプルコードでは、RS社のAudio CODEC 754-1974を使用」
となっていますが、RS社のAudio CODECは販売終了となっており、入手できなかったため、MAX98357A搭載のSparkFun 社I2S Audio Breakoutボードを使用しました。
〇 スピーカー
スピーカーは適当に、100円ショップの物を使用しました。
3.サンプルコードをダウンロードします。
こちらー> RL78/G23 ELCL,SPIによるI2S通信 | Renesas ルネサス
解凍後のフォルダ構成は以下のようになっています。
今回の開発環境はE2studioを使用しましたので、master通信のE2studioのフォルダ内となります。
4.プロジェクトをE2studioに読み込み後にAPNの「4.2.1 ELCLのコンポーネントの設定」を行います。
5.コード生成とビルドを行い、デバックを開始します。
6.Audio CODEC とRL78/G23 Fast Prototyping Board (RTK7RLG230CLG000BJ)のI2Sの設定している端子を接続し、Audio CODEC出力をスピーカーと接続します。
検証実験の結果
1.APNで説明しているAudio CODEC 754-1974では、I2Cの制御ができるようになっており、サンプルコードにもI2Cの通信制御がプログラミングされています。
しかし、今回、購入できたSparkFun I2S Audio BreakoutではI2Cの機能が無いため、プログラム上でスタートコンディションの発行に失敗し、そこから処理が進まないことが判明しました。
そこで、main.c内のメイン関数Module SetUPの記述をコメントアウトして、I2Cを使わないようにすることにより、先に進むようになりました。
2.つぎに、サンプルコード内には、3つのサウンドデータが保存されています。
まずは、デフォルトの「サンプリング周波数:48kHz、データ数:32bit」で試したところ、音声は再生されませんでした。
他のサウンドデータを試したところ、
「サンプリング周波数:8kHz 、データ数:16bit」では音声を再生することができました。
デフォルトの「サンプリング周波数:48kHz、データ数:32bit」も調整を試みましたが、とりあえず、今回は断念します。
3.「サンプリング周波数:8kHz 、データ数:16bit」のデータを使用の場合には、設定の変更が必要となりますので、変更箇所を記載します。
〇 APN P49 4.2.2.5 Config_TAU00 インターバル時間 を1.953に変更
〇 APN P.50 4.2.2.6 Config_TAU01 カウント値を16に変更。
4.「サンプリング周波数:8kHz 、データ数:16bit」の実際の音声はこちらになります。
検証に使用した製品はこちら
RL78/G23シリーズ
RL78/G23 – 低消費電力性能をさらに磨き上げ、周辺機能を拡張した新世代汎用マイコン「RL78」 | Renesas ルネサス
RL78/G23の新機能ロジック&イベント・リンク・コントローラ (ELCL)
RL78/G23-64p Fast Prototyping Board
RTK7RLG230CLG000BJ – RL78/G23-64p Fast Prototyping Board (RL78/G23-64p FPB) | Renesas ルネサス
オーディオコーデック
SparkFun I2S Audio Breakout – MAX98357A – DEV-14809 – SparkFun Electronics
まとめ
この記事では、RL78/G23のELCLでI2Sを実現することをためしてみました。
マイコンに搭載されていないペリフェラル機能が作成できることがイメージできたのではないでしょうか。
ルネサスHPにはこれ以外にELCLを使ったサンプルプログラムがたくさん用意してありますので、実現したい機能がありましたら活用されてはいかがでしょう。
また、Smart Configuratorを使ってご自身で回路を作成することも可能です。ぜひお試しください。