Hi,
im working with the BF592 EZ KIT LITE.
I just made a few tests with the audio test programm.
I tried to realize a signal generator which uses both outputs and the left and the right channel.
It worked that far but i also wanted to realize the that with the max Samplerate.
And thats where my Problem starts.
I used folowing values to initialize the codec
unsigned char ResetControl[] = {0x1e, 0x000}
unsigned char LeftLineIn[] = {0x00, 0x000}
unsigned char RightLineIn[] = {0x02, 0x000}
unsigned char LeftHpOut[] = {0x04, 0x07F}
unsigned char RightHpOut[] = {0x06, 0x07F}
unsigned char AnalogControl[] = {0x08, 0x015}
unsigned char DigitalControl[] = {0x0a, 0x000}
unsigned char PowerDownControl[] = {0x0c, 0x000}
unsigned char DigitalAudioFormat[] = {0x0e, 0x042}
unsigned char SamplingControl[] = {0x10, 0x01D} //96kHz USBmode
unsigned char ActiveControl[] = {0x12, 0x001}
The DMA:
*pDMA2_CONFIG = WDSIZE_32 |FLOW_1; /* 32-bit transfers, autobuffer mode*/
*pDMA2_START_ADDR = g_sInput_DMA; /* start address of data buffer */
*pDMA2_X_COUNT = 2;
*pDMA2_X_MODIFY = 4; /* DMA loop address increment */
Sport0
*pSPORT0_RCR1 = RFSR | RCKFE;
*pSPORT0_RCR2 = SLEN_32 | RSFSE;
*pSPORT0_TCR1 = TFSR | TCKFE;
*pSPORT0_TCR2 = SLEN_32 | TSFSE;
EX_INTERRUPT_HANDLER(Sport0_RX_ISR)
/* confirm interrupt handling */
*pDMA1_IRQ_STATUS = 0x0001;
*pDMA2_IRQ_STATUS = 0x0001;
/*transmit*/
Tri=(int)((-1)*AMPLITUDE+n_Tri*(((float)AMPLITUDE)/97.0));
n_Tri++;
if(n_Tri>97){n_Tri=0;}
g_sInput_DMA[i] = Tri << 16;
i++;
g_sInput_DMA[i] = Vier << 16;
You see that i just tried to generate a sawtooth signal.
But i dont get a sample rate of 96000Hz.
It only seems to be 48000Hz.
Any idea where my mistake could be ore how i could achive my goal?
(my programm is based on the BF592_EZ_POST)
I hope someone can help.
urs sincerelly
KPS