audio_drv.lua 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. --[[
  2. @module audio_drv
  3. @summary 音频设备管理模块,负责音频设备的初始化和控制
  4. @version 2.0
  5. @date 2025.12.02
  6. @author 陈媛媛
  7. @usage
  8. 本模块提供以下功能:
  9. 1、定义所有硬件引脚常量
  10. 2、使用exaudio扩展库初始化音频设备
  11. ]]
  12. local audio_drv = {}
  13. local exaudio = require "exaudio"
  14. local _initialized = false
  15. -- 音频初始化参数(Air8000配置)
  16. local audio_setup_param = {
  17. model = "es8311", -- 音频编解码类型,可填入"es8311","es8211"
  18. i2c_id = 0, -- i2c_id,可填入0,1 并使用pins工具配置对应的管脚
  19. --Air8000开发板pa_ctrl和dac_ctrl配置
  20. pa_ctrl = 162, -- 音频放大器电源控制管脚
  21. dac_ctrl = 164, -- 音频编解码芯片电源控制管脚
  22. --Air8000核心板pa_ctrl和dac_ctrl配置
  23. -- pa_ctrl = 17, -- 音频放大器电源控制管脚
  24. -- dac_ctrl = 16, -- 音频编解码芯片电源控制管脚
  25. }
  26. -- 初始化音频设备
  27. function audio_drv.init()
  28. if _initialized then
  29. log.info("audio_drv", "音频设备已经初始化")
  30. return true
  31. end
  32. log.info("audio_drv", "开始初始化音频设备")
  33. local audio_init_ok = exaudio.setup(audio_setup_param)
  34. if audio_init_ok then
  35. _initialized = true
  36. log.info("audio_drv", "音频设备初始化成功")
  37. return true
  38. else
  39. log.error("audio_drv", "音频设备初始化失败")
  40. return false
  41. end
  42. end
  43. return audio_drv