嗨
我需要将数字麦克风用作输入并在I2S上输出它,但我无法这样做。编解码器似乎没有为麦克风产生任何时钟。我正在运行pll(正如我所看到的那样工作它会影响我的I2S频率)。
我已经设法获得了AUX输入 - > I2S工作,但不能弄清楚这个数字麦克风。
布尔andreas krebs.
你好andreas,
我会为你看待这个问题。你能用你使用的脚本/代码给我吗?而你是时钟频率?
您是否可以确认您的设置,您正在尝试使用AUX输入和麦克风作为输出?或者你的意思是演讲者?
亲切的问候,艾略特德克斯特
嗨艾略特
感谢您的答复。
音频路径/设置我想拥有:(输入)数字麦克风 - > I2S(输出,到另一个芯片)
我如何想象道路(但可能是别的东西):(输入)数字麦克风 - > ADC过滤器 - >数字音频接口 - > I2S(输出)
时钟配置:我提供的MCLK是15 MHz。pll_frac_top = 0x06.pll_frac_bot = 0xdc.pll_integer = 0x1a.PLL CTRL = 0x84
我已经上传了我的代码的一部分 - 希望它对您也有意义。再次,感谢您可以给我的任何帮助。
嗨andreas,
我们在您发送的脚本中发现了您没有任何启用MICBIAS1的任何东西,这是输出DMIC缺少的时钟所必需的。
数据表说:
“MICBIAS1可用于为数字麦克风供电,但必须启用它是MICBIAS1提供数字麦克风引脚。”
这有意义吗?
我已将脚本附加到此帖子以获取指导。
亲切的问候,
艾略特德克斯特
感谢您的脚本 - 我现在有一个时钟输出到我的数字麦克风(和数据回来)!
但是,我在主模式下运行DA7212 I2S,所以我必须改变一点,我没有在I2S数据线上获得任何输出(帧和位时钟正在工作)。我试图将我的代码转换为您的脚本格式:
//设置时钟和参考写da7212 0x23 0x0x08 //启用偏差写da7212 0x90 0xff //启用数字ldo写入DA7212 0x47 0xCD //使能充电泵(固定VDD / 1)将DA7212 0x92 0x02 //设置为1秒钟写DA7212 0x29 0xc0 //启用AIF 16bit I2S模式写入DA7212 0x28 0x80 //主模式写入DA7212 0x22 0x05 //将传入的采样率设置为16kHz写入DA7212 0x62 0xAA //启用MICBIAS 1和2写DA7212 0x21 0x10 //挖掘路由ADC写da7212 0x24 0x06 // pll_frac_top写da7212 0x25 0xdc // pll_frac_bot写da7212 0x20 0x1a // pll_fbdiv_int写入DA7212 0x27 0x84 // MCLK 15MHz写入DA7212 0x94 0x00 // PC_COUT_RESYNC
//配置输入/输出写DA7212 0x32 0x80 / DMIC_L_EN写da7212 0x33 0x80 // dmic_r_en写DA7212 0x65 0xA8 //使能左输入混音器写DA7212 0x66 0xA8 //启用右输入混音器
你能看到为什么我得到I2S位和帧,但不是任何数据?我附上了一个屏幕截图,显示了缺乏数据。
ADC需要启用:
写DA7212 0x67 0x80 // ADC_L_L_CTRL
写入DA7212 0x68 0x80 // ADC_R_CTRL。
尝试添加这些命令。我再次附加了一个脚本的参考资料。
谢谢,这正是我需要的。优秀服务:)
你好andreas,
我会为你看待这个问题。你能用你使用的脚本/代码给我吗?而你是时钟频率?
您是否可以确认您的设置,您正在尝试使用AUX输入和麦克风作为输出?或者你的意思是演讲者?
亲切的问候,
艾略特德克斯特
嗨艾略特
感谢您的答复。
音频路径/设置我想拥有:
(输入)数字麦克风 - > I2S(输出,到另一个芯片)
我如何想象道路(但可能是别的东西):
(输入)数字麦克风 - > ADC过滤器 - >数字音频接口 - > I2S(输出)
时钟配置:
我提供的MCLK是15 MHz。
pll_frac_top = 0x06.
pll_frac_bot = 0xdc.
pll_integer = 0x1a.
PLL CTRL = 0x84
我已经上传了我的代码的一部分 - 希望它对您也有意义。
再次,感谢您可以给我的任何帮助。
嗨andreas,
我们在您发送的脚本中发现了您没有任何启用MICBIAS1的任何东西,这是输出DMIC缺少的时钟所必需的。
数据表说:
“MICBIAS1可用于为数字麦克风供电,但必须启用它是MICBIAS1提供数字麦克风引脚。”
这有意义吗?
亲切的问候,
艾略特德克斯特
你好andreas,
我已将脚本附加到此帖子以获取指导。
亲切的问候,
艾略特德克斯特
感谢您的脚本 - 我现在有一个时钟输出到我的数字麦克风(和数据回来)!
但是,我在主模式下运行DA7212 I2S,所以我必须改变一点,我没有在I2S数据线上获得任何输出(帧和位时钟正在工作)。
我试图将我的代码转换为您的脚本格式:
//设置时钟和参考
写da7212 0x23 0x0x08 //启用偏差
写da7212 0x90 0xff //启用数字ldo
写入DA7212 0x47 0xCD //使能充电泵(固定VDD / 1)
将DA7212 0x92 0x02 //设置为1秒钟
写DA7212 0x29 0xc0 //启用AIF 16bit I2S模式
写入DA7212 0x28 0x80 //主模式
写入DA7212 0x22 0x05 //将传入的采样率设置为16kHz
写入DA7212 0x62 0xAA //启用MICBIAS 1和2
写DA7212 0x21 0x10 //挖掘路由ADC
写da7212 0x24 0x06 // pll_frac_top
写da7212 0x25 0xdc // pll_frac_bot
写da7212 0x20 0x1a // pll_fbdiv_int
写入DA7212 0x27 0x84 // MCLK 15MHz
写入DA7212 0x94 0x00 // PC_COUT_RESYNC
//配置输入/输出
写DA7212 0x32 0x80 / DMIC_L_EN
写da7212 0x33 0x80 // dmic_r_en
写DA7212 0x65 0xA8 //使能左输入混音器
写DA7212 0x66 0xA8 //启用右输入混音器
你能看到为什么我得到I2S位和帧,但不是任何数据?
我附上了一个屏幕截图,显示了缺乏数据。
你好andreas,
ADC需要启用:
写DA7212 0x67 0x80 // ADC_L_L_CTRL
写入DA7212 0x68 0x80 // ADC_R_CTRL。
尝试添加这些命令。我再次附加了一个脚本的参考资料。
亲切的问候,
艾略特德克斯特
谢谢,这正是我需要的。
优秀服务:)