void sendDataToADG1414(WORD msb) { WORD dummy = 0; //BYTE data0 = 0x00; //BYTE data1 = 0x00; SpiChnEnable(SPI_CHANNEL2, 0); SpiChnConfigure(SPI_CHANNEL2, SPI_CONFIG_MSTEN | SPI_CONFIG_MODE16 | SPI_CONFIG_CKP_HIGH); SpiChnSetBitRate(SPI_CHANNEL2, 80000000, 4000000); SpiChnEnable(SPI_CHANNEL2, 1); //data0 = (BYTE)(msb & 0x00FF); //data1 = (BYTE)((msb & 0xFF00) >> 8); outputPort("c14", LOW); //putcSPI2(data0); //putcSPI2(data1); putcSPI2(msb); outputPort("c14", HIGH); SpiChnEnable(SPI_CHANNEL2, 0); SpiChnConfigure(SPI_CHANNEL2, SPI_CONFIG_MSTEN | SPI_CONFIG_MODE16); SpiChnSetBitRate(SPI_CHANNEL2, 80000000, 1000000); SpiChnEnable(SPI_CHANNEL2, 1); }
int main(void) { SpiOpenFlags spiFlags; AudioStereo test_sine[]={ 0 , 0 , 946234 , 946234 , 1877546 , 1877546 , 2779247 , 2779247 , 3637119 , 3637119 , 4437630 , 4437630 , 5168158 , 5168158 , 5817180 , 5817180 , 6374462 , 6374462 , 6831216 , 6831216 , 7180237 , 7180237 , 7416020 , 7416020 , 7534850 , 7534850 , 7534850 , 7534850 , 7416020 , 7416020 , 7180237 , 7180237 , 6831216 , 6831216 , 6374462 , 6374462 , 5817180 , 5817180 , 5168158 , 5168158 , 4437630 , 4437630 , 3637119 , 3637119 , 2779247 , 2779247 , 1877546 , 1877546 , 946234 , 946234 , 0 , 0 , -946234 , -946234 , -1877546 , -1877546 , -2779247 , -2779247 , -3637119 , -3637119 , -4437630 , -4437630 , -5168158 , -5168158 , -5817180 , -5817180 , -6374462 , -6374462 , -6831216 , -6831216 , -7180237 , -7180237 , -7416020 , -7416020 , -7534850 , -7534850 , -7534850 , -7534850 , -7416020 , -7416020 , -7180237 , -7180237 , -6831216 , -6831216 , -6374462 , -6374462 , -5817180 , -5817180 , -5168158 , -5168158 , -4437630 , -4437630 , -3637119 , -3637119 , -2779247 , -2779247 , }; // Initialize audio codec. WM8960CodecOpen(); WM8960CodecConfigVolume(0,0); WM8960CodecConfigSampleRate(SAMPLE_RATE_16000_HZ); WM8960CodecConfigVolume(volADC,volDAC); //Congigure MIPS, Prefetch Cache module. SYSTEMConfig(GetSystemClock(), SYS_CFG_WAIT_STATES | SYS_CFG_PCACHE); INTEnableSystemMultiVectoredInt(); //Test tone vector sampled at 48kHz. txBuffer = test_sine; //Configure the direction of used pins and //configure as digital pins. PORTSetPinsDigitalIn(IOPORT_G, BIT_7); PORTSetPinsDigitalOut(IOPORT_G, BIT_6); PORTSetPinsDigitalOut(IOPORT_G, BIT_8); PORTSetPinsDigitalOut(IOPORT_G, BIT_9); // //Configure Reference Clock Output to 12.288MHz. // mOSCREFOTRIMSet(REFTRIM); // OSCREFConfig(OSC_REFOCON_USBPLL, //USB-PLL clock output used as REFCLKO source // OSC_REFOCON_OE | OSC_REFOCON_ON, //Enable and turn on the REFCLKO // RODIV); //Configure SPI in I2S mode with 24-bit stereo audio. spiFlags= SPI_OPEN_MSTEN | //Master mode enable SPI_OPEN_SSEN | //Enable slave select function SPI_OPEN_CKP_HIGH | //Clock polarity Idle High Actie Low SPI_OPEN_MODE32 | //Data mode: 32b SPI_OPEN_FRMEN | // Enable Framed SPI SPI_OPEN_FSP_IN | // Frame Sync Pulse is input SPI_OPEN_FSP_HIGH; //Frame Sync Pulse is active high //Configure and turn on the SPI1 module. SpiChnEnable(WM8960DRV_SPI_MODULE, FALSE); SpiChnConfigure(WM8960DRV_SPI_MODULE, spiFlags); SpiChnSetBitRate(WM8960DRV_SPI_MODULE, GetPeripheralClock(), 1024000); SpiChnEnable(WM8960DRV_SPI_MODULE, TRUE); //Enable SPI2 interrupt. INTSetVectorPriority(INT_SPI_2_VECTOR, INT_PRIORITY_LEVEL_4); INTSetVectorSubPriority(INT_SPI_2_VECTOR, INT_SUB_PRIORITY_LEVEL_0); INTEnable(INT_SPI2, INT_ENABLED); SpiChnPutC(SPI_CHANNEL2, 0); //Dummy write to start the SPI //while (1); return 0; }