audio_config.lua 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. function audio_init()
  2. pm.ioVol(pm.IOVOL_ALL_GPIO, 3300)
  3. local multimedia_id = 0
  4. local i2s_id = 0
  5. local i2s_mode = 0
  6. local i2s_sample_rate = 16000
  7. local i2s_bits_per_sample = 16
  8. local i2s_channel_format = i2s.MONO_R
  9. local i2s_communication_format = i2s.MODE_LSB
  10. local i2s_channel_bits = 16
  11. --air8000 core开发版+音频小板配置
  12. local voice_vol = 60 --音频小板喇叭太容易失真了,不能太大
  13. local i2c_id = 0
  14. local pa_pin = 162 -- 喇叭pa功放脚
  15. local pa_on_level = 1
  16. local pa_delay = 200
  17. local dac_power_pin = 164
  18. local dac_power_on_level = 1
  19. local dac_power_off_delay = 600
  20. gpio.setup(24, 1) --air8000的I2C0需要拉高gpio24才能用
  21. gpio.setup(26, 0)
  22. i2c.setup(0, i2c.FAST)
  23. gpio.setup(24, 1, gpio.PULLUP) -- i2c工作的电压域
  24. sys.wait(100)
  25. gpio.setup(dac_power_pin, 1, gpio.PULLUP) -- 打开音频编解码供电
  26. gpio.setup(pa_pin, 1, gpio.PULLUP) -- 打开音频放大器
  27. audio.on(0, audio_callback)
  28. i2s.setup(i2s_id, i2s_mode, i2s_sample_rate, i2s_bits_per_sample, i2s_channel_format, i2s_communication_format,i2s_channel_bits)
  29. audio.config(multimedia_id, pa_pin, pa_on_level, 0, pa_delay, dac_power_pin, dac_power_on_level, dac_power_off_delay)
  30. audio.setBus(multimedia_id, audio.BUS_I2S,{chip = "es8311",i2cid = i2c_id , i2sid = i2s_id}) --通道0的硬件输出通道设置为I2S
  31. audio.vol(multimedia_id, voice_vol)
  32. audio.micVol(multimedia_id, 75)
  33. end