From 0da282dd1ca6b3dcb3566669a082629f8c5b69a7 Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Mon, 20 Jan 2014 18:10:14 +0000 Subject: [PATCH] deliver now sets bclk/dsd clk initial high. This was previously done in port config. --- module_usb_audio/audio.xc | 14 +++++++++++--- module_usb_audio/ports/audioports.xc | 8 -------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/module_usb_audio/audio.xc b/module_usb_audio/audio.xc index c10411e9..199bc54e 100755 --- a/module_usb_audio/audio.xc +++ b/module_usb_audio/audio.xc @@ -185,10 +185,11 @@ static inline void doI2SClocks(unsigned divide) if(dsdMode == DSD_MODE_DOP) underflowWord = 0xFA969600; else if(dsdMode == DSD_MODE_NATIVE) + { underflowWord = 0x96969696; + } #endif - outuint(c_out, 0); /* Check for sample freq change or new samples from mixer*/ @@ -329,7 +330,6 @@ static inline void doI2SClocks(unsigned divide) else { clearbuf(p_bclk); - #if (I2S_CHANS_DAC != 0) /* Prefill the ports so data is input in advance */ @@ -338,7 +338,9 @@ static inline void doI2SClocks(unsigned divide) p_i2s_dac[i] <: 0; } #endif - + /* b_clk must start high */ + p_bclk <: 0x80000000; + sync(p_bclk); p_lrclk <: 0x7FFFFFFF; doI2SClocks(divide); @@ -346,6 +348,12 @@ static inline void doI2SClocks(unsigned divide) } #if (DSD_CHANS_DAC > 0) } /* if (!dsdMode) */ + else + { + /* p_dsd_clk must start high */ + p_dsd_clk <: 0x80000000; + //sync(p_dsd_clk); + } #endif #else /* CODEC is master */ diff --git a/module_usb_audio/ports/audioports.xc b/module_usb_audio/ports/audioports.xc index ce6d4679..e9d420a8 100644 --- a/module_usb_audio/ports/audioports.xc +++ b/module_usb_audio/ports/audioports.xc @@ -113,17 +113,9 @@ unsigned int divide) } #endif - /* Start clock blocks ticking */ - //start_clock(clk_audio_mclk); start_clock(clk_audio_bclk); - /* bclk initial state needs to be high */ - p_bclk <: 0xFFFFFFFF; - - /* Pause until output completes */ - sync(p_bclk); - #else /* CODEC_MASTER */ /* Stop bit and master clock blocks */