1 SSI 音声再生録音 - renesas/rx72n-envision-kit GitHub Wiki
作成中
目的
- D2 Audio(D2-41051、旧インターシル社製のオーディオプロセッサ)を用いてSin波音声を出力する
- SSIEのI2Sフォーマットを用いて音声データをMCUからD2 Audioに伝送する
- D2 Audioを操作し、ボリューム変更、ミュートON/OFF、サンプリング周波数の変更を実施する
- I2Cを用いてD2 Audioを操作する
- MEMSマイク(ICS-43434、TDK製)を用いて音声を入力する
- SSIEのI2Sフォーマットを用いて音声データをMEMS MICからMCUに伝送する
準備するもの
- 必須
- RX72N Envision Kit × 1台
- USBケーブル(USB Micro-B --- USB Type A) × 1 本
- Windows PC × 1 台
- Windows PC にインストールするツール
- e2 studio 2020-07以降
- 初回起動時に時間がかかることがある
- CC-RX V3.02以降
- 初回起動時に時間がかかることがある
- e2 studio 2020-07以降
- Windows PC にインストールするツール
- スピーカ、ヘッドフォン、イヤホンのいずれか × 1 個
- アンプ付きを推奨(参考:RX72N Envision Kit マニュアル 5.15.1章)
- 参考
- SSI モジュールを使用するPCM データ転送サンプルプログラム Firmware Integration Technology(R01AN2825)
- 本稿は上記サンプルプログラム「rx72n_example_ssi_rx」のアレンジ版である
- RX72N Envision Kit マニュアル
- D2 Audio マニュアル
- データシート:d2-41051-151.pdf
- APIレジスタ仕様書:r32an0004eu-d2-4-d2-4p.pdf
- MEMSマイク マニュアル
- データシート:DS-000069-ICS-43434-v1.2.pdf
- SSI モジュールを使用するPCM データ転送サンプルプログラム Firmware Integration Technology(R01AN2825)
前提条件
- 新規プロジェクト作成方法(ベアメタル)を完了すること
- 本稿では、新規プロジェクト作成方法(ベアメタル)で作成したLED0.1秒周期点滅プログラムに、D2 Audio及びMENSマイクを用いて音声を入出力するためのコードを追加する形で実装する
- 最新のRX Driver Package(FITモジュール)を使用すること
回路確認
D2 Audio
- D2 AudioはIISEを介してMCUと接続されている
- 音声データがIISEを介してMCUからD2 Audioに伝送される
- D2 AudioはI2Cを介してEEPROMと接続されている
- EEPROMには音声出力のためのD2 Audio初期設定データが保存されている
- RX72N Envision Kitの電源ON時に、EEPROMからD2 Audio初期設定データがD2 Audioに読み出され、その設定データがD2 Audioに書き込まれる
- D2 AudioはI2Cを介してMCUと接続されていない(つまり、D2 Audioを動的に操作できない)
- D2 Audioを動的に操作するためにはD2 Audio - MCU間のI2C通信が必要なため、空いているPmodコネクタ端子()とD2 Audio SCAMP Header(SCL (T5), SDA (T6))をICクリップなどでバイパスしI2C通信を行う
MEMSマイク
- MEMSマイクはIISEを介してMCUと接続されている
- 音声データがIISEを介してMEMSマイクからMCUに伝送される
スマート・コンフィグレータ(SC)によるドライバソフトウェア/ミドルソフトウェアの設定
BDF確認
- プロジェクトにBDF
EnvisionRX72N
が適用されていることを確認する(スマート・コンフィグレータの使い方#ボード設定を参照)- 適用されていない場合、スマート・コンフィグレータの使い方#ボード設定 を参照
コンポーネント追加
-
スマート・コンフィグレータの使い方#コンポーネント組み込みを参考に以下の5個のコンポーネントを追加する
- r_ssi_api_rx
- r_gpio_rx
- r_mpc_rx
コンポーネント設定
r_ssi_api_rx
- SSIE関連設定を施す
- SSIEのチャネル0と1を使用
- SSIEのチャネル0と1を使用
- SSIE関連の端子を使用する設定にする
- SSIBCK0, SSILRCK0, SSIRXD0, SSIBCK1, SSILRCK1, SSIDATA1, AUDIO_CLK端子を使用
- SSIBCK0, SSILRCK0, SSIRXD0, SSIBCK1, SSILRCK1, SSIDATA1, AUDIO_CLK端子を使用
r_gpio_rx
- デフォルトで問題なし
r_mpc_rx
- デフォルトで問題なし
r_bsp
- デフォルトで問題なし
ユーザアプリケーション部のコーディング
ソースコード全体