I am trying to make the aic3204 example project the basis for a pure loopback
program, initially by commenting out the statements in aic3204_test that call the
function aic3204_tone_headphone.
It doesn't work; at the headphone I just get a brief hissing noise instead of the
audio input to the board. All obvious permutations seem to say the same thing:
aic3204_tone_headphone just has to be in there, executing, for aic3204_loop_linein
to work. I see no logical reason; it is like a magic incantation I must perform
before the loopback will begin.
I am using the version that polls this way:
while((RcvR & I2S0_IR) == 0); // Wait for receive interrupt to be pending
data3 = I2S0_W0_MSW_R; // 16 bit left channel received audio data
data4 = I2S0_W1_MSW_R; // 16 bit right channel received audio data
while((XmitR & I2S0_IR) == 0); // Wait for transmit interrupt to be pending
I2S0_W0_MSW_W = data3; // 16 bit left channel transmit audio data
I2S0_W1_MSW_W = data4; // 16 bit right channel transmit audio data
I have also tried the more recent version supplied by Spectrum Digital using
functions USBSTK5505_I2S_etc. and the situation is even worse. In any case, I
prefer the original version because it appears easier to convert, eventually, into
an ISR.
I get the same results with CCS v4.1.3 & Windows XP, and on another PC with CCS
v4.2.2 & Windows 7.