参考サイト
回路図
ESP32-S3 開発ボード
5Vピン → 5V出ない?
(赤い線材)三端子レギュレータから直接5Vを取出しPCM1808のアナログ電圧(5V)に供給。(自己責任で)
PCM1808 - 24ビットADC
アマゾン購入
回路不明
IC周辺にコンデンサー・抵抗がついているので外付け必要ない?
SCK ー MCLK(マスタークロック)
ESP32-S3 IO0(BOOT)ですがTj Labの記事によるとプログラムで変更可能です。
FMT - GND
●スレーブ・モード
MD1 - GND
MD0 - GND
信号発生器 XR2206
ボードマネージャ
追加ボードマネージャーURLを変更
【https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json】
【esp 32】
【バージョン3.2.0】インストール
ライブラリマネージャー
●ESP32-audioI2S-master
所定のlibrariesに貼付
【i2s】
【バージョン3.2.1】インストール
プログラム Arduino IDE【ボード:ESP32S3 Dev Module】
#include <driver/i2s.h>
#define SAMPLING_RATE 16000
#define BUFFER_SIZE 512
uint8_t sound_buffer[BUFFER_SIZE];
// I2S 構成パラメータ指定
i2s_port_t i2s_port = I2S_NUM_0;
i2s_config_t i2s_config = {
.mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_TX | I2S_MODE_RX), //I2S作業モード
.sample_rate = SAMPLING_RATE, //I2Sサンプルレート
.bits_per_sample = I2S_BITS_PER_SAMPLE_32BIT, //サンプルあたりのI2Sビット
.channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT, //I2Sチャネルフォーマット
.communication_format = I2S_COMM_FORMAT_I2S, //I2S通信フォーマット
.intr_alloc_flags = ESP_INTR_FLAG_LEVEL1, //割り込みを割り当てるために使用されるフラグ
.dma_buf_count =6, //I2S DMAバッファ数
.dma_buf_len = BUFFER_SIZE, //I2S DMAバッファ長
.use_apll = false, //2SはAPLLをメインI2Sクロックとして使用し、正確なクロックを取得
.tx_desc_auto_clear = true,
.fixed_mclk = 0,
};
// I2S ピン番号指定
i2s_pin_config_t pin_config = {
.bck_io_num = 42, //BCK
.ws_io_num = 2, //LRC,LCK
.data_out_num = 41, //DIN
.data_in_num = 1 //OUT
};
void setup() {
Serial.begin(115200);
i2s_driver_install(I2S_NUM_0, &i2s_config, 0, NULL); //I2S 構成パラメータ指定
i2s_set_pin(I2S_NUM_0, &pin_config); //I2S ピン番号指定
}
void loop(){
size_t transBytes;
i2s_read(I2S_NUM_0,(char*)sound_buffer, BUFFER_SIZE, &transBytes, portMAX_DELAY);
for(int i=0; i<BUFFER_SIZE ; i += 8)
{
int32_t* L = (int32_t*)&sound_buffer[i];
Serial.println(*L); //シリアルプロッタL
//int32_t* R = (int32_t*)&sound_buffer[i+4];
//Serial.println(*R);
}
}
.png)

.png)
.png)
.png)
0 件のコメント:
コメントを投稿