Skip to main content
欢迎来到PAWPAW技术文档网站了解更多信息

USB声卡XU316的硬件设计(数字部分)

概要

本文针对USB 声卡的数字部分设计进行描述,包含了USB的电路,XU316主控的外围启动电路,音频时钟电路,不涉及模拟部分的硬件设计。为了更加实例化,本文以XU316-1024-QF60B-PP24的作为整个方案的主控,进行讲述USB声卡的硬件设计,读者需要结合其datasheet和PXUA-XU316-KIT的原理设计,便可基本确定USB声卡数字部分的电路设计。

XU316主控电路

根据XU316-1024-QF60B-PP24的datasheet详细描述 , XU316的最小系统需要简单的外围器件,需要3路电源供应(3V3,1V8和0V9),QSPI Flash(存储固件)和晶振便可启动工作。

电源设计

主控XU316的电源设计共需要3路电源供应,分别为3V3 ,1V8和0V9供应部分。其要求如下表,需要注意以下事项:

  1. 3V3推荐使用LDO,并且这可使得3V3的上电时序较快于1V8,0V9。
  2. 每个XU316电源pin脚都需要加至少100nF的去耦电容。
  3. PLL需要一个非常干净的电源,以及一个低通滤波器(例如,一个1μF的多层陶瓷电容和一个在100MHz时为600Ω、DCR<1Ω的铁氧体)
电源最小值典型值最大值选型推荐工作电流值描述
0V90.855V0.900V0.945VDC-DC约300mA属于XU316核心电源,电流较大,推荐使用DC-DC
1V81.620V1.800V1.980VDC-DC约30mAGPIO 电流小,涉及USB模拟电源,推荐使用DC-DC
3V33.000V3.300V3.600VLDO约33mA主要是GPIO电源,电流小,涉及USB模拟电源,推荐使用LDO

启动设计

  1. XU316外部需要24MHz无源晶振接入作为启动晶振,接入到XIN、XOUT引脚
  2. XU316需要外置 Flash,其主要是存储XU316的固件,需要预先烧录固件才能才能运行USB声卡程序。
  3. XTAG 选用2x5 1.27mm母座,作为XU316烧录Flash、调试和打印使用

USB 设计

XU316芯片集成了USB 2.0 PHY收发芯片,将XU316的USB_DP和USB_DM引脚和USB端子(Type-A,Micro-B,Type-C)连接就可以。需要简单注意一下:

  1. 如果使用USB_VBUS作为整个设备供电的话,其最大电流通常限制在500mA及以下(受限于USB2.0供电标准)。

  2. 如果不是使用USB_VBUS电路作为XU316供电的话,需要加入如下图所示的VBUS检测电路。

    img2

使用外置电源,VBUS需要接到XnDnn

时钟设计

XMOS平台的专业USB声卡使用异步传输协议,为实现异步传输模式,USB声卡设备中是需要设计音频时钟的。这音频时钟可以由以下4种方式提供:

  • 有源晶振
  • 外置的PLL
  • XU316内置的PLL
  • 其他处理器提供的音频时钟

音频采样率对应的44.1kHz和48kHz,他们的所需要的时钟频率不同,以I2S音频接口(此处链接I2S协议)为例。

BCLK=Sample Rate*32 bit*2ch

而BCLK为MCLK整数分频得到,LRCLK为音频采样率的SampleRate。根据公式,得到下表,当需要达到705.6kHz,768kHz的音频采样率时,例如HiFi声卡应用,我们需要选择45.1584MHz和49.152MHz作为音频时钟的MCLK。对于常规的专业录音声卡应用,通常采样率最高只需要192kHz,则使用12.288MHz和11.2896MHz的音频时钟即可。

采样率(KHz)44.14888.296176.4192352.8384705.6768
BCLK(MHz)2.82243.0725.644.86.14411.289612.28822.579224.57645.158449.152
最小MCLK(MHz)2.82243.0725.644.86.14411.289612.28822.579224.57645.158449.152

一般使用XU316作为I2S主模式的时候,我们选用有源晶振或者XU316内置的PLL作为音频主时钟。其设计如图,其中:

  1. 在UAC协议获取采样率信息后,XU316能够通过441_EN或者48_EN来选择45.1584和49.152MHz其中一个作为MCLK。
  2. XU316有两个tile, 需要MCLK需要同时进入的tile0和tile1, 所以才会分别输入到X0D35和X1D11, 同时MCLK也需要分出给到ADC/DAC/Codec。
  3. 或者,使用XU316内部的PLL,在X1D11输出等同两个晶振的时钟,如需要可以去掉中间的电阻。

IO分配

对于XU316-1024-QF60B-PP24,可供分配的引脚是有限的,因此在设计阶段,您应当有计划地分配各引脚的功能。除了音频时钟和Flash,XU316剩余的I/O(即til0和tile1的X0Dnn和X1Dnn)可具备以下3种使用方式:

  • 连接音频ADC/DAC/Codec芯片所需数字音频接口(I2S,TDM,DSD),及其I2C配置,RST复位等
  • 其他数字音频接口如S/PDIF,ADAT,MIDI等
  • 用于输入输出控制的GPIO,如UART,LED,和按键输入等等

结合XU316的I/O特性,并且结合产品中的数字音频接口时序协议,我们将剩下XU316的I/O针对几种不同的应用,做了以下的port_map。设计硬件原理图之后,需要在XU316的软件中进行代码定义对应的port_map便可。

HIFI 声卡专业录音声卡专业录音声卡专业录音声卡麦克风阵列
signalpin1bit4 /8 bitI2S/DSD/SPDIF2进2出4进4出8进8出8路PDM
X0D0061ASPDIF OutSPDIF OutI2S_ADC0I2S_DAC2
X0D1171DXMOS_UART_TXXMOS_UART_TXI2S_ADC1I2S_DAC3MIC_CLK
X0D29404F1441_ENABLE441_ENABLE441_ENABLE441_ENABLERST_DAC/ADC
X0D30544F248_ENABLE48_ENABLE48_ENABLE48_ENABLE
X0D31554F3
X0D32564E2I2C_SCLI2C_SCLI2C_SCLI2C_SCLI2C_SCL
X0D33584E3I2C_SDAI2C_SDAI2C_SDAI2C_SDAI2C_SDA
X0D35411LMCLK_XCOREMCLK_XCOREMCLK_XCOREMCLK_XCOREMCLK_XCORE
X0D36431MBCLK_OUTBCLK_OUTBCLK_OUTBCLK_OUTMIC_DATA0
X0D37441NLRCLK_OUTLRCLK_OUTLRCLK_OUTLRCLK_OUTMIC_DATA1
X0D38451OI2S_DAC0I2S_DAC0I2S_DAC0I2S_DAC0MIC_DATA2
X0D39471PRST_DACI2S_ADC0I2S_DAC1I2S_DAC1MIC_DATA3
X0D40468D4RST_DAC/ADCRST_DAC/ADCMIC_DATA4
X0D41508D5MIC_DATA5
X0D42488D6MIC_DATA6
X0D43518D7MIC_DATA7
X1D0091AUSB_STATEMIDI OUTMIDI OUTI2S_ADC0I2S_DAC0
X1D01101BMIDI INMIDI INI2S_ADC1BCLK_OUT
X1D10131Cusb_VBUS_SetI2S_ADC2LRCLK_OUT
X1D11141DMCLK_XCOREMCLK_XCOREMCLK_XCOREMCLK_XCOREMCLK_XCORE
X1D22391GI2S_ADC3I2S_ADC0
X1D13321FXXXBCLK_OUT
X1D34531KXXXLRCLK_OUT
备注
  1. "X"表示改IO 被其他内容占用,不可做通用IO使用
  2. PLL Out代表XU316可以软件配置输出50MHz以内的时钟信号,可用于配置24.576MHz等音频时钟在XU316的X1D11输出。

应用示例

以下实例是根据IO分配进行项目和应用的示例,示例中仅涉及到数字音频接口的说明,如其他GPIO,UART等没有列举出来,读者可以根据XU316的I/O(主要是1bit和4bit的特性)进行分配I/O使用。I/O分配之后,也需要在软件代码上进行配置和Coding才能正常工作。

HIFI 声卡

功能:USB HiFi声卡,PCM和DSD输出,支持S/PDIF输出

参数:最高支持PCM786kHz,DSD512,S/PDIF输出高达192kHz

hifi专业声卡

2进2出

功能:USB专业录音声卡,支持2路(麦克风/乐器)输入,2路输出(侦听/背景音),支持S/PDIF输出,支持MIDI输入输出

参数:PCM采样率支持高达384kHz,S/PDIF输出高达192kHz

原理说明:ADC/DAC的I2S的MCLK,LRCLK和BCLK时钟线是复用的

4进4出

功能:USB专业录音声卡,支持4路(麦克风/乐器)输入,4路输出和2路侦听,支持S/PDIF输出,支持MIDI输入输出

参数:PCM采样率支持高达192kHz,SPDIF输出高达192kHz

原理说明:ADC/DAC的I2S的MCLK,LRCLK和BCLK时钟线是复用的