PXUA-XU316-KIT固件说明及修改
关于本章中提到的所有固件(包括xxx.xe, xxx_flash.bin, xxx_dfu.bin
),请在这里下载
固件说明
评估板配套提供了多个固件,主要是USB音频支持规格以及接口作为区别,其中固件命名遵循XMOS USB audio 针对固件的命名方式,例如2i2o2mxxxxx固件表示支持USB Audio Class2.0,支持通道两入两出,支持MIDI,不支持SPDIF IN/OUT,不支持ADAT IN/OUT,不支持DSD,命名方式参考下表:
Audio Class: 1 or 2
Input enabled: i (channelcount)
Output enabled: o (channelcount)
MIDI enabled: m, disabled: x
SPDIF out enabled: s, disabled: x
SPDIF in enabled: s, disabled: x
ADAT out enabled: a, disabled: x
ADAT in enabled: a, disabled: x
DSD out enabled: d, disabled: x
该文档只针对固件命名说明,方便用户后续烧录更新固件。
固件
木瓜电子提供三种固件,分别为xxx.xe、xxx_flash.bin和xxx_dfu.bin:
xxx.xe是通过XMOS XTC工具编译的,仅能用XTAG调试工具烧录到XU316,效率较低。
xxx_flash.bin由xxx.xe导出,包含flash spec信息,仅能用flash烧录器烧录,效率较高。
xxx_dfu.bin是xxx.xe结合Flash型号信息导出,仅能用USB dfu_usb工具更新。
注意使用USB DFU工具时,要求flash中存储正常运行的程序。否则,只能用其它方式烧录。
下面以DFU固件为例对固件功能进行说明
DFU Firmware
目前PXUA-XU316具有两个硬件版本,其中使用的DFU固件无法互相兼容,请根据您购买的评估板硬件选择固件烧录,否则可能导致板子无法正常使用
产品型号 | 版本 | 发布时间 |
---|---|---|
PXUA-XU316-KIT | V1.00 | 2022年2月11日 |
PXUA-XU316-KIT | V2.01 | 2022年8月29日 |
- Version 2.01
- Version 1.00

PXUA-XU316-KIT V2.01评估板
DFU Firmware | 功能 |
---|---|
Pawpaw_2i0o2xsxxxd_dfu.bin | USB Audio 0进2出、spdif out、dsd |
Pawpaw_2i2o2msxxxx_dfu.bin | USB Audio 2进2出、spdif out、midi out、midi in |
Pawpaw_2i8o8xxxxxx_dfu.bin | USB Audio 8进8出 |
pin说明
在下列PIN表中,对每一个固件对应评估板使用到的引脚进行说明;
DFU Firmware PIN说明如下表,表格内为空表示该固件没有使用到这个引脚。
Pawpaw_2i0o2xsxxxd_dfu.bin | Pawpaw_2i2o2msxxxx_dfu.bin | Pawpaw_2i8o8xxxxxx_dfu.bin | |
---|---|---|---|
MCLK_IN | 1L(X0D35、pin 41) | 1L(X0D35、pin 41) | 1L(X0D35、pin 41) |
DAC0(data out) | 1O(X0D38、pin 45) | 1O(X0D38、pin 45) | 1O(X0D38、pin 45) |
LRCLK_OUT | 1N(X0D37、pin 44) | 1N(X0D37、pin 44) | 1N(X0D37、pin 44) |
BCLK_OUT | 1M(X0D36、pin 43) | 1M(X0D36、pin 43) | 1M(X0D36、pin 43) |
ADC0(data in) | 1P(X0D39、pin 47) | 1P(X0D39、pin 47) | |
SPDIF_OUT | 1A(X0D00、pin 6) | 1A(X0D00、pin 6) | |
MIDI_OUT* | 1A(X1D00、pin 9) | ||
MIDI_IN* | 1B(X1D01、pin 10) | ||
MCLK_IN2* | 1G(X1D22、pin 39) | 1G(X1D22、pin 39) | 1G(X1D22、pin 39) |

PXUA-XU316-KIT V1.00评估板
DFU Firmware | 功能 |
---|---|
Pawpaw_2i0o2xsxxxd_dfu.bin | USB Audio 0进2出、spdif out、dsd |
Pawpaw_2i2o2msxxxx_dfu.bin | USB Audio 2进2出、spdif out、midi out、midi in |
Pawpaw_2i8o8xxxxxx_dfu.bin | USB Audio 8进8出 |
pin说明
在下列PIN表中,对每一个固件对应评估板使用到的引脚进行说明;
DFU Firmware PIN说明如下表,表格内为空表示该固件没有使用到这个引脚。
Pawpaw_2i0o2xsxxxd_dfu.bin | Pawpaw_2i2o2msxxxx_dfu.bin | Pawpaw_2i8o8xxxxxx_dfu.bin | |
---|---|---|---|
MCLK_IN | 1L(X0D35、pin 41) | 1L(X0D35、pin 41) | 1L(X0D35、pin 41) |
DAC0(data out) | 1M(X0D36、pin 43) | 1M(X0D36、pin 43) | 1M(X0D36、pin 43) |
LRCLK_OUT | 1N(X0D37、pin 44) | 1N(X0D37、pin 44) | 1N(X0D37、pin 44) |
BCLK_OUT | 1O(X0D38、pin 45) | 1O(X0D38、pin 45) | 1O(X0D38、pin 45) |
ADC0(data in) | 1P(X0D39、pin 47) | 1P(X0D39、pin 47) | |
SPDIF_OUT | 1A(X0D00、pin 6) | 1A(X0D00、pin 6) | |
MIDI_OUT* | 1A(X1D00、pin 9) | ||
MIDI_IN* | 1B(X1D01、pin 10) | ||
MCLK_IN2* | 1G(X1D22、pin 39) | 1G(X1D22、pin 39) | 1G(X1D22、pin 39) |
由于xu316具有两个Tile,如上会有相同的 pin 脚1A定义,他们存在于不同Tile上,不会存在冲突;软件上DSD的pin定义与I2S一致
源码后带有 * 表示pin脚定义在tile1中,没有 * 的pin脚定义在tile0中
固件烧录
xxx.xe的烧录方式
用户需要拥有XMOS的专用XTAG调试工具,并且下载和安装XTC 15.1.0 或其以上版本工具 运行其XTC 15.1.0 工具,确保上电XU316硬件和接好XTAG,键入指令
xrun -l
, Enter键后,查看XU316和XTAG是否握手成功
握手成功以后进入xxx.xe所在路径键入指令
xflash --factory xxx.xe
烧录.xe文件(该烧录方式仅针对部分flash型号)
针对大部分flash型号,需键入指令
xflash xxx.xe --spi-spec xxx.spec
(xxx.spec文件为flash描述文件,一般由我司提供;或查看flash的datasheet自行编写)
xxx_flash.bin烧录方式
用户需要拥有flash烧录器,XU316默认flash参考设计为QSPI Flash的连接方式,用户需使用支持QSPI烧录的烧录器。
两种连接方式在烧录上需要注意的地方是在烧录器上位机软件上的配置选项不同,这里以硕飞的烧录器(为例做简单说明:
- 检测芯片型号或者自行选择flash型号
- 加载xxx_flash.bin固件
- 打开配置选项
- QSPI烧录选择QE=1,SPI烧录选择QE=0,后确定
- 勾选写入配置
- 选择自动编程,开始单次烧录(量产烧录)
xxx_dfu.bin烧录方式
该烧录方式需要评估板flash已存储可以正常运行的USB Audio固件。使用USB连接PC以及评估板,安装USB Audio驱动,待设备管理器正常枚举USB设备(需安装我司提供的测试驱动)。
在使用DFU工具前,请确认您已经安装了驱动,否则可能无法正常使用DFU工具
将我司提供的测试驱动解压缩,然后点击进入文件夹并打开DFU工具(Applications\PawPawUsbAudioDfu\x64)
点击Browse选择固件,加载进去并点击start进行dfu
源码修改
基础固件在源码工程中可直接编译、在线烧录固件,无需修改;DFU Firmware的区别体现在Makefile、XN文件中pin 脚定义的不同
Makefile
编译过程中Makefile处于最高的优先级,一般需要多个不同功能固件时,可在Makefile中添加对应的编译选项XCC_FLAGS_xxxx,在XCC_FLAGS_xxxx后定义需要功能设定,DFU Firmware在源码上的区别,为Makefile中添加不同功能的编译选项,具体如下
Pawpaw_2i0o2xsxxxd_dfu.bin固件,在Makefile中添加代码
XCC_FLAGS_Pawpaw_2i0o2xsxxxd = $(BUILD_FLAGS) -DBCD_DEVICE=0x100 -DSPDIF_TX=1 -DMIDI=0 -DI2S_CHANS_ADC=0 -DNUM_USB_CHAN_IN=0 -DI2S_CHANS_DAC=2 -DNUM_USB_CHAN_OUT=2 -DDSD_CHANS_DAC=2
INCLUDE_ONLY_IN_Pawpaw_2i0o2xsxxxd =
Pawpaw_2i2o2msxxxx_dfu.bin固件,在Makefile中添加代码
XCC_FLAGS_Pawpaw_2i2o2msxxxx = $(BUILD_FLAGS) -DBCD_DEVICE=0x100 -DSPDIF_TX=1 -DMIDI=1 -DI2S_CHANS_ADC=2 -DNUM_USB_CHAN_IN=2 -DI2S_CHANS_DAC=2 -DNUM_USB_CHAN_OUT=2 -DDSD_CHANS_DAC=0
INCLUDE_ONLY_IN_Pawpaw_2i2o2msxxxx =
Pawpaw_2i8o8xxxxxx_dfu.bin固件,在Makefile中添加代码
XCC_FLAGS_Pawpaw_2i8o8xxxxxx = $(BUILD_FLAGS) -DBCD_DEVICE=0x100 -DSPDIF_TX=0 -DMIDI=0 -DI2S_MODE_TDM=1 -DI2S_CHANS_ADC=8 -DNUM_USB_CHAN_IN=8 -DI2S_CHANS_DAC=8 -DNUM_USB_CHAN_OUT=8 -DDSD_CHANS_DAC=0
INCLUDE_ONLY_IN_Pawpaw_2i8o8xxxxxx =
XN文件
在Makefile中添加编译选项后,需要在xk-audio-316-mc.xn修改对应的pin脚定义,由于DFU Firmware的pin不存在冲突,可以一次修改完pin 脚定义,如下所致
<Tile Number="0" Reference="tile[0]">
<Port Location="XS1_PORT_1B" Name="PORT_SQI_CS"/>
<Port Location="XS1_PORT_1C" Name="PORT_SQI_SCLK"/>
<Port Location="XS1_PORT_4B" Name="PORT_SQI_SIO"/>
<!-- Audio Ports -->
<Port Location="XS1_PORT_1L" Name="PORT_MCLK_IN"/>
<Port Location="XS1_PORT_1N" Name="PORT_I2S_LRCLK"/>
<Port Location="XS1_PORT_1O" Name="PORT_I2S_BCLK"/>
<Port Location="XS1_PORT_1M" Name="PORT_I2S_DAC0"/>
<Port Location="XS1_PORT_1P" Name="PORT_I2S_ADC0"/>
<Port Location="XS1_PORT_1M" Name="PORT_DSD_DAC0"/>
<port Location="XS1_PORT_1N" Name="PORT_DSD_DAC1"/>
<Port Location="XS1_PORT_1O" Name="PORT_DSD_CLK"/>
<Port Location="XS1_PORT_1A" Name="PORT_SPDIF_OUT"/>
<Port Location="XS1_PORT_1B" Name="PORT_PLL_REF"/>
</Tile>
<Tile Number="1" Reference="tile[1]">
<!-- Audio Ports -->
<Port Location="XS1_PORT_1A" Name="PORT_MIDI_OUT"/>
<Port Location="XS1_PORT_1B" Name="PORT_MIDI_IN"/>
<Port Location="XS1_PORT_1G" Name="PORT_MCLK_IN2"/>
</Tile>