工具与软件:
你(们)好
我写入以下值
寄存器 | 电流 |
55. | 0x0E |
56. | 0x02 |
81. | 0x13 |
但当我读回56时、改回0x03、其他两个不变
但是、当我们探测以下位置时、我们不会在示波器中看到和波形
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
你(们)好
我写入以下值
寄存器 | 电流 |
55. | 0x0E |
56. | 0x02 |
81. | 0x13 |
但当我读回56时、改回0x03、其他两个不变
但是、当我们探测以下位置时、我们不会在示波器中看到和波形
您好!
您正在探测什么? 没有 I2C 波形或没有时钟数据?
您是否使用这些寄存器的十六进制或十进制版本?
寄存器55 = 0x37设置为0x0E:MISO 是数字麦克风的时钟输出
寄存器56 = 0x38设置为0x02:默认值、SCLK = DIG 麦克风输入。 读取时更改为0x03没有问题、因为最后一位是只读的、是 SCLK 引脚的值。 器件仍设置为所需设置
寄存器81 = 0x51设置为0x13: SCLK=DIG 麦克风输入、L+R ADC 通道断电、L+R 通道 ADC 未配置为数字麦克风、然后不要对最后2位使用保留位。 由于正在写入的是保留位、因此该写入可能不起作用。 相反、您可能需要1101 1100 = 0xdc、对于 ADC L+R 上电并配置为用作数字麦克风输入的情况、SCLK 是数字麦克风输入并启用软步进。
如果您可以发送正在使用的命令、正在读取/写入的内容、并更新寄存器81设置、它应该能以您需要的方式工作。
此致!
MIR
你(们)好
是55 , 56和81是用于 写入寄存器的索引..
它的写入0x37 , 0x38和0x51 仅..please 找到转储,我写了它后 .. 序列如下所示
1.打开设备电源
2. alsactl 恢复设置默认 alsamixer 配置 (asound.state attached)
3. ioctl 写入上述3个寄存器并读回所有寄存器 (已连接转储)
[ 2371.203835]{0x37、e}、
[ 2371.204430]{0x38、3}、
[2371.216909]{0x51、dc}、
4.之后 ,我正在探测下面的点,我看到了 CLK R214为高电平 而 R219 在示波器中较低。
您可以指导我 如何访问这个数字 Mike 我不确定的命令.
您好!
CLKOUT M 分频器通过页0寄存器26 (0x1a)设置、您可以将其设置为0x81以使 M 分频器为1、并为 M 分频器上电。 然后、您需要将 GPIO 设置为数字麦克风时钟、并将寄存器52 (0x34)设置为 0x28。 此外、将寄存器25 (0x19)设置为 CDIV_CLKIN、时钟可能与 MCLK 不同。 例如、如果 BCLK 为3.072、则将 CDIV_CLKIN 设置为 BCLK、但如果不是、则 DAC_MOD_CLK 通常为3.072。 这摘自应用参考指南:
如果您对此有疑问或仍然有问题、请告诉我。
此致!
MIR
你(们)好
感谢您的响应 ,现在,在这一改变后,我可以看到时钟和数字麦克风工作
但仍然需要大家的帮助、查看寄存器设置、因为时钟现在是1.5 MHz
我写入了 寄存器26 0x82使用分频器2、因为我的 BCLK 为6 MHz。
因此时钟应是3MHz
请找到下面的设置..,我正在启动后的系统,
{
{25、0x01}、
{26、 0x82}、
{52、 0x28}、
{55、 0x0E}、
{56、 0x02}、
{81、 0xdc}、
};
已确认进行了写入
[ 647.054255]{0x19、1}、
[ 647.054864]{0x1a、82}
[ 647.067247]{0x34、28}
[ 647.069280]{0x37、e}、
[ 647.069848]{0x38、2}、
[ 647.082248] {0x51、dc}、
我禁用了所有 INT_XX 选项并尝试了以下 arecord 命令
arecord -D HW:1、0 -r 96000 -c 2 -f s32_le /userdata/audio_test_digi_mic.wav
您好!
从这个图中看起来、默认情况下 GPIO 和 MISO 将从 ADC_MOD_CLK 获取数字麦克风时钟、该时钟默认也应为3.072MHz 或1.536MHz -具体取决于您的时钟树。 因此、由于您将寄存器52设置为0x28 (这会将 GPIO 输出设置为数字麦克风的时钟)、它将使用 ADC_MOD_CLK 作为麦克风时钟、而不是 CDIV 输出(如果您将其设置为 CLKOUT、它将使用 CDIV 输出)。 但是、我认为使用调制器时钟作为数字麦克风输出比拆分 BCLK 更好、因为调制器时钟将用于锁存输入数字麦克风数据、并且相位可能比 BCLK 更近。 我认为您应该禁用 MDIV 或将其重新设置为1。 如果这不会更改您的输出、那么让我们更多一点地配置您的时钟树、以获得3.072作为您的调制时钟。 能否发送所用寄存器的完整配置?
此致!
MIR