我正在尝试制作一个 AM 发射器,保留 this github repo 作为参考
void setup()
{
Serial.begin(115200);
setCpuFrequencyMhz(240); //highest cpu frequency
i2s_driver_install(i2s_num, &i2s_config, 0, NULL); //start i2s driver
i2s_set_pin(i2s_num, NULL); //use internal DAC
i2s_set_sample_rates(i2s_num, 1000000); //dummy sample rate, since the function fails at high values
//this is the hack that enables the highest sampling rate possible ~13MHz
SET_PERI_REG_BITS(I2S_CLKM_CONF_REG(0), I2S_CLKM_DIV_A_V, 1, I2S_CLKM_DIV_A_S);
SET_PERI_REG_BITS(I2S_CLKM_CONF_REG(0), I2S_CLKM_DIV_B_V, 1, I2S_CLKM_DIV_B_S);
SET_PERI_REG_BITS(I2S_CLKM_CONF_REG(0), I2S_CLKM_DIV_NUM_V, 2, I2S_CLKM_DIV_NUM_S);
SET_PERI_REG_BITS(I2S_SAMPLE_RATE_CONF_REG(0), I2S_TX_BCK_DIV_NUM_V, 2, I2S_TX_BCK_DIV_NUM_S);
}
ESP32-S3 出现编译错误,但 ESP32 确实通过编译。我正在使用 Arduino-IDE。
I2S_MODE_DAC_BUILT_IN
,因为 ESP32-S3 没有 DAC。原来的 ESP32 就是这样。您可以通过阅读 ESP32-S3 数据表 来验证这一点 - 虽然数据表没有列出哪些硬件设备没有,但您会发现没有提及 DAC。
您需要使用具有 DAC 的不同 CPU,或者重新设计 I2S 输出的方式。