Skip to main content

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-KITV1.002022年2月11日
PXUA-XU316-KITV2.012022年8月29日
PXUA-XU316-KITV3.002023年8月25日
PXUA-XU316-KIT Photo

PXUA-XU316-KIT V3.00评估板

V3.00版本在引脚定义上与V2.01版本相同,但是在硬件上对灵活性进行了优化,因此使用相同的固件:

DFU Firmware功能
Pawpaw_2i0o2xsxxxd_dfu.binUSB Audio 0进2出、spdif out、dsd
Pawpaw_2i2o2msxxxx_dfu.binUSB Audio 2进2出、spdif out、midi out、midi in
Pawpaw_2i4o4xxxxxd_dfu.binUSB Audio 4进4出、dsd
Pawpaw_2i8o8xxxxxx_dfu.binUSB Audio 8进8出

pin说明

在下列PIN表中,对每一个固件对应评估板使用到的引脚进行说明;

DFU Firmware PIN说明如下表,表格内为空表示该固件没有使用到这个引脚。

Pawpaw_2i0o2xsxxxd_dfu.binPawpaw_2i2o2msxxxx_dfu.binPawpaw_2i4o4xxxxxd_dfu.binPawpaw_2i8o8xxxxxx_dfu.bin
MCLK_IN1L(X0D35、pin 41)1L(X0D35、pin 41)1L(X0D35、pin 41)1L(X0D35、pin 41)
DAC(data out)1M(X0D36、pin 43)1M(X0D36、pin 43)1M(X0D36、pin 43 DAC0)、 1A(X0D00、pin 6 DAC1)1M(X0D36、pin 43)
LRCLK_OUT1N(X0D37、pin 44)1N(X0D37、pin 44)1N(X0D37、pin 44)1N(X0D37、pin 44)
BCLK_OUT1O(X0D38、pin 45)1O(X0D38、pin 45)1O(X0D38、pin 45)1O(X0D38、pin 45)
ADC(data in)1P(X0D39、pin 47)1P(X0D39、pin 47 ADC0)、 1D(X0D11、pin 7 ADC1)1P(X0D39、pin 47)
SPDIF_OUT1A(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)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烧录的烧录器。

两种连接方式在烧录上需要注意的地方是在烧录器上位机软件上的配置选项不同,这里以硕飞的烧录器(为例做简单说明:

  1. 检测芯片型号或者自行选择flash型号
  2. 加载xxx_flash.bin固件
  3. 打开配置选项
  4. QSPI烧录选择QE=1,SPI烧录选择QE=0,后确定
  5. 勾选写入配置
  6. 选择自动编程,开始单次烧录(量产烧录)

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 =

Pawpaw_2i4o4xxxxxd_dfu.bin固件,在Makefile中添加代码

XCC_FLAGS_Pawpaw_2i4o4xxxxxd = $(BUILD_FLAGS) -DSPDIF_TX=0 -DMIDI=0 -DI2S_CHANS_ADC=4 -DNUM_USB_CHAN_IN=4 
-DI2S_CHANS_DAC=4 -DNUM_USB_CHAN_OUT=4 -DDSD_CHANS_DAC=2 -DBCD_DEVICE=0x103 -DMAX_FREQ=384000
INCLUDE_ONLY_IN_Pawpaw_2i4o4xxxxxd =

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_1A" Name="PORT_I2S_DAC1"/>
<Port Location="XS1_PORT_1P" Name="PORT_I2S_ADC0"/>
<Port Location="XS1_PORT_1D" Name="PORT_I2S_ADC1"/>

<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>