主题中讨论的其他器件: SN74LVC1G125
大家好、
我正在尝试使 SRC4392在我的设计上正常工作。 将端口 A 和/或 B 用作从端口不会有问题地将它们置于 TX 输出、同轴电缆和光纤上。 从 A 到 B 的输出 I2S 甚至是有效的。
有一个微控制器控制 SRC4392的所有 I2C 数据、遗憾的是、我被输入卡在某个位置。 无法使它们正常工作、也无法进行 DIR-DIT 旁路。 我尝试遵循一些论坛对初始化代码的解释、但不幸运。 这是我的初始化例程:
#将寄存器页设置为0 (控制和状态寄存器) BUS.WRITE_BYTE_DATA (地址、0x7f、0x00) #端口 A 设置为 I2S 数据格式 BUS.WRITE_BYTE_DATA (地址、0x03、0x01) BUS.WRITE_BYTE_DATA (地址、0x04、0x00) #端口 B 设置为主接口、I2S 数据格式、MCLK 数据源、时钟源 时钟分频器128 BUS.WRITE_BYTE_DATA (地址、0x05、0x39) BUS.WRITE_BYTE_DATA (地址、0x06、0x00) #使用 MCLK 的 DIR 设置、设置为静音以消除锁定条件、RXCKO 禁用 #默认输入为 RX1 BUS.WRITE_BYTE_DATA (地址、0x0d、0x08) BUS_BYTE=0x570=20 ( 地址)、0x00_DATA = 0x24BTE_B (地址)、0x24BTE_B = 0x00_DATA (地址= 0x24BTE_B)、0x24BTE_0、0x00_B = 0x00_B = 0x570MHZ 0MHZ bus.write_byte_data (地址、 0x11、0x00) #设置 GPO1以启用22.5792时钟 总线。WRITE_BYTE_DATA (地址、0x1b、0x01) #设置 GPO2以启用24.576时钟 总线。WRITE_BYTE_DATA (地址、0x1c、0x01) #设置 GPO3以使用 MCLK RX576 (设置为0x00以使用22.5792) 总线 、将0x576_BYTE_DATA (地址、0x24.01)#设置为24.01、将 GPO3设置为24.01 (设置为0x00以使用22.5792) bus.write_byte_data (address、0x1E、0x01) # SRC 设置默认为端口 A 作为输入数据源 # MCLK 为参考时钟源、启用 AUTODEM (使用0x2D、0x02播放来自 S/PDIF 同轴电缆输入的音频、使用0x00作为端口 A I2S) bus.write_byte、0x2D 数据(0x2D) 0x02) BUS.WRITE_BYTE_DATA (地址、0x2e、0x20) BUS.WRITE_BYTE_DATA (地址、 0x2F、0x00) # DIT 设置、将 SRC 用作输入数据源、将 MCLK 用作主时钟 #时钟分频器为128、以设置输出帧速率 #块启动是输出、指示有效音频 # c、u 数据将不会更新 BUS.WRITE_BYTE_DATA (地址、 0x07、0x1c) bus.write_byte_data (address、0x08、0x00) bus.write_byte_data (address、 0x09、0x00) #设置左通道卷流-3.5dB 总线。WRITE_BYTE_DATA (地址、0x30、0x07) #设置右通道卷流-3.5dB 总线。WRITE_BYTE_DATA (地址、0x31、0x07) #为所有块加电 BUS.WRITE_BYTE_DATA (地址、0x01、0x3f)
我还尝试在 init 文件的末尾添加此内容:
#针对192KHz 总线的 DIT 设置。WRITE_BYTE_DATA (地址、0x07、0x1c) BUS.WRITE_BYTE_DATA (地址、0x08、0x08) BUS.WRITE_BYTE_DATA (地址、 0x7f、0x02) bus.write_byte_data (地址、0x2e、0xee) bus.write_byte_data (地址、0x2F、 0xFF) bus.write_byte_data (address、0x7f、0x00) bus.write_byte_data (address、0x08、0x00) bus.write_byte_data (address、 0x7f、0x02) bus.write_byte_data (地址、0x2e、0x01) bus.write_byte_data (地址、0x2F、 0x01) bus.write_byte_data (address、0x7f、0x00) # Reset bus.write_byte_data (address、0x01、0x80)
但运气不佳、只能在从端口 A 或 B 选择输入时工作。音频输入采样率与 MCLK 和 RXCKI 时钟上使用的采样率相同、因此应该正常工作。 但什么也没有。
这是我的输入/输出原理图、以防出现错误。 (无论如何、我不这么认为):
我还有关于采样率输入检测的另一个问题。 我的设计具有两个用于44.1和48个采样率频率的时钟。 我可以单独打开/关闭它们、并分别为 MCLK 和 RXCKI 使用一个或另一个。 如何自动检测输入采样率以在 RXCKI 22.5792或24.576时钟之间切换?
谢谢!
奥里奥尔
