一、UAC有1.0和2.0,因Windows对2.0支持不好,我使用的是UAC1.0驱动
内核配置:CONFIG_USB_CONFIGFS_F_UAC1 ---这个宏配置无需物理codec,使用虚拟 alsa codec
驱动路径:"kernel\drivers\usb\gadget\function\f_uac1.c"
内核配置:CONFIG_USB_CONFIGFS_F_UAC1_LEGACY ---这个宏配置需要物理codec
需要开启CONFIG_USB_CONFIGFS_F_ACC 和 CONFIG_USB_CONFIGFS_F_AUDIO_SRC 指定使用的Codec
驱动路径:"kernel\drivers\usb\gadget\function\f_uac1_legacy.c"
我的项目没有外接codec,所以使能CONFIG_USB_CONFIGFS_F_UAC1 就可以了
驱动中默认采样率是48K,2通道,如果需要修改默认值,可以改这个文件"kernel\drivers\usb\gadget\function\u_uac1.h"
#define UAC1_DEF_CCHMASK 0x1
#define UAC1_DEF_CSRATE 16000
#define UAC1_DEF_CSSIZE 2
#define UAC1_DEF_PCHMASK 0x1
#define UAC1_DEF_PSRATE 16000
CCHMASK 和 PCHMASK分别代表录音和放音通道数,默认值是0x3,双通道(每个bit代表一个通道)
CSRATE和PSRATE分别代表录音和放音采样率,默认是48000