forked from PAWPAW-Mirror/lib_xua
DFU failing when SPDIF_RX enabled due to clock block being shared. Made an attempt to rationalise CLKBLK defines.
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
#include "devicedefines.h"
|
#include "devicedefines.h"
|
||||||
|
#include "uac_hwresources.h"
|
||||||
|
|
||||||
#ifdef DFU
|
#ifdef DFU
|
||||||
|
|
||||||
@@ -18,13 +19,14 @@
|
|||||||
fl_DeviceSpec flash_devices[] = {DFU_FLASH_DEVICE};
|
fl_DeviceSpec flash_devices[] = {DFU_FLASH_DEVICE};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
fl_PortHolderStruct p_flash =
|
fl_PortHolderStruct p_flash =
|
||||||
{
|
{
|
||||||
XS1_PORT_1A,
|
XS1_PORT_1A,
|
||||||
XS1_PORT_1B,
|
XS1_PORT_1B,
|
||||||
XS1_PORT_1C,
|
XS1_PORT_1C,
|
||||||
XS1_PORT_1D,
|
XS1_PORT_1D,
|
||||||
XS1_CLKBLK_1
|
CLKBLK_FLASHLIB
|
||||||
};
|
};
|
||||||
|
|
||||||
int flash_cmd_enable_ports()
|
int flash_cmd_enable_ports()
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
#include "xud.h" /* XMOS USB Device Layer defines and functions */
|
#include "xud.h" /* XMOS USB Device Layer defines and functions */
|
||||||
|
|
||||||
#include "devicedefines.h" /* Device specific defines */
|
#include "devicedefines.h" /* Device specific defines */
|
||||||
|
#include "uac_hwresources.h"
|
||||||
#include "endpoint0.h"
|
#include "endpoint0.h"
|
||||||
#include "usb_buffer.h"
|
#include "usb_buffer.h"
|
||||||
#include "decouple.h"
|
#include "decouple.h"
|
||||||
@@ -101,24 +102,7 @@ on tile[AUDIO_IO_TILE] : buffered in port:32 p_i2s_adc[I2S_WIRES_ADC] =
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (XUD_SERIES_SUPPORT == XUD_L_SERIES) && (AUDIO_IO_TILE == XUD_TILE)
|
|
||||||
/* Note: L series ref clocked clocked from USB clock when USB enabled - use another clockblock for MIDI
|
|
||||||
* if MIDI and XUD on same tile. See XUD documentation.
|
|
||||||
*
|
|
||||||
* This is a clash with S/PDIF Tx but simultaneous S/PDIF and MIDI not currently supported on single tile device
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
/* TODO should include tile here */
|
|
||||||
#define CLKBLK_MIDI XS1_CLKBLK_1;
|
|
||||||
#else
|
|
||||||
#define CLKBLK_MIDI XS1_CLKBLK_REF;
|
|
||||||
#endif
|
|
||||||
#define CLKBLK_ADAT_RX XS1_CLKBLK_3
|
|
||||||
#define CLKBLK_SPDIF_TX XS1_CLKBLK_1
|
|
||||||
#define CLKBLK_SPDIF_RX XS1_CLKBLK_1
|
|
||||||
#define CLKBLK_MCLK XS1_CLKBLK_2
|
|
||||||
#define CLKBLK_I2S_BIT XS1_CLKBLK_3
|
|
||||||
#define CLKBLK_XUD XS1_CLKBLK_4 /* Note XUD for U-series uses CLKBLK_5 also (see XUD_Ports.xc) */
|
|
||||||
|
|
||||||
#ifndef CODEC_MASTER
|
#ifndef CODEC_MASTER
|
||||||
on tile[AUDIO_IO_TILE] : buffered out port:32 p_lrclk = PORT_I2S_LRCLK;
|
on tile[AUDIO_IO_TILE] : buffered out port:32 p_lrclk = PORT_I2S_LRCLK;
|
||||||
@@ -171,7 +155,8 @@ on tile[AUDIO_IO_TILE] : clock clk_mst_spd = CLKBLK_SPDIF_TX;
|
|||||||
on tile[XUD_TILE] : clock clk_spd_rx = CLKBLK_SPDIF_RX;
|
on tile[XUD_TILE] : clock clk_spd_rx = CLKBLK_SPDIF_RX;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ADAT_RX
|
#if(XUD_SERIES_SUPPORT != XUD_U_SERIES) && defined(ADAT_RX)
|
||||||
|
/* Cannot used CLKBLK_REF for L/G-series as this is USB clock */
|
||||||
on tile[XUD_TILE] : clock clk_adat_rx = CLKBLK_ADAT_RX;
|
on tile[XUD_TILE] : clock clk_adat_rx = CLKBLK_ADAT_RX;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -197,7 +182,7 @@ on tile[XUD_TILE] : out port p_usb_rst = PORT_USB_RESET;
|
|||||||
|
|
||||||
#if (XUD_SERIES_SUPPORT != XUD_U_SERIES)
|
#if (XUD_SERIES_SUPPORT != XUD_U_SERIES)
|
||||||
/* L Series also needs a clock block for this port */
|
/* L Series also needs a clock block for this port */
|
||||||
on tile[XUD_TILE] : clock clk = CLKBLK_XUD;
|
on tile[XUD_TILE] : clock clk = CLKBLK_USB_RST;
|
||||||
#else
|
#else
|
||||||
#define clk null
|
#define clk null
|
||||||
#endif
|
#endif
|
||||||
@@ -571,8 +556,12 @@ int main()
|
|||||||
on stdcore[0] :
|
on stdcore[0] :
|
||||||
{
|
{
|
||||||
set_thread_fast_mode_on();
|
set_thread_fast_mode_on();
|
||||||
|
|
||||||
|
#if(XUD_SERIES_SUPPORT != XUD_U_SERIES)
|
||||||
|
/* Can't use REF clock on L-series as this is usb clock */
|
||||||
set_port_clock(p_adat_rx, clk_adat_rx);
|
set_port_clock(p_adat_rx, clk_adat_rx);
|
||||||
start_clock(clk_adat_rx);
|
start_clock(clk_adat_rx);
|
||||||
|
#endif
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
adatReceiver48000(p_adat_rx, c_adat_rx);
|
adatReceiver48000(p_adat_rx, c_adat_rx);
|
||||||
|
|||||||
55
module_usb_audio/uac_hwresources.h
Normal file
55
module_usb_audio/uac_hwresources.h
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
|
||||||
|
#ifndef _UAC_HWRESOURCES_H_
|
||||||
|
#define _UAC_HWRESOURCES_H_
|
||||||
|
|
||||||
|
#include "xud.h" /* XMOS USB Device Layer defines and functions */
|
||||||
|
|
||||||
|
#if (XUD_SERIES_SUPPORT != XUD_U_SERIES)
|
||||||
|
|
||||||
|
/* XUD_L_SERIES and XUD_G_SERIES */
|
||||||
|
|
||||||
|
#if (AUDIO_IO_TILE == XUD_TILE)
|
||||||
|
/* Note: L series ref clocked clocked from USB clock when USB enabled - use another clockblock for MIDI
|
||||||
|
* if MIDI and XUD on same tile. See XUD documentation.
|
||||||
|
*
|
||||||
|
* This is a clash with S/PDIF Tx but simultaneous S/PDIF and MIDI not currently supported on single tile device
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define CLKBLK_MIDI XS1_CLKBLK_1;
|
||||||
|
#else
|
||||||
|
#define CLKBLK_MIDI XS1_CLKBLK_REF;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define CLKBLK_SPDIF_TX XS1_CLKBLK_1
|
||||||
|
#define CLKBLK_SPDIF_RX XS1_CLKBLK_1
|
||||||
|
#define CLKBLK_MCLK XS1_CLKBLK_2 /* Note, potentially used twice */
|
||||||
|
#define CLKBLK_ADAT_RX XS1_CLKBLK_3
|
||||||
|
#define CLKBLK_USB_RST XS1_CLKBLK_4 /* Clock block passed into L/G series XUD */
|
||||||
|
#define CLKBLK_FLASHLIB XS1_CLKBLK_5 /* Clock block for use by flash lib */
|
||||||
|
|
||||||
|
/* #define CLKBLK_SPDIF_TX XS1_CLKBLK_1 */
|
||||||
|
/* #define CLKBLK_MCLK XS1_CLKBLK_2 */
|
||||||
|
#define CLKBLK_I2S_BIT XS1_CLKBLK_3
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
/* XUD_U_SERIES */
|
||||||
|
|
||||||
|
#define CLKBLK_MIDI XS1_CLKBLK_REF;
|
||||||
|
#define CLKBLK_SPDIF_TX XS1_CLKBLK_1
|
||||||
|
#define CLKBLK_SPDIF_RX XS1_CLKBLK_1
|
||||||
|
#define CLKBLK_MCLK XS1_CLKBLK_2 /* Note, potentially used twice */
|
||||||
|
#define CLKBLK_FLASHLIB XS1_CLKBLK_3 /* Clock block for use by flash lib */
|
||||||
|
|
||||||
|
/* use REF for ADAT_RX on U-series */
|
||||||
|
/* #define CLKBLK_ADAT_RX XS1_CLKBLK_3 */
|
||||||
|
/* Note, U-series XUD uses clock blocks 4 and 5 - see XUD_Ports.xc */
|
||||||
|
|
||||||
|
#define CLKBLK_FLASHLIB XS1_CLKBLK_5 /* Clock block for use by flash lib */
|
||||||
|
|
||||||
|
/* #define CLKBLK_SPDIF_TX XS1_CLKBLK_1 */
|
||||||
|
/* #define CLKBLK_MCLK XS1_CLKBLK_2 */
|
||||||
|
#define CLKBLK_I2S_BIT XS1_CLKBLK_3
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* _UAC_HWRESOURCES_H_ */
|
||||||
Reference in New Issue
Block a user