Пример #1
0
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);
}
Пример #2
0
void sendDataToAD5328(BYTE id, WORD msb)
{
    //WORD dummy = 0;
    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);

    switch(id)
    {
        case 0:
            outputPort("d0", LOW);
            break;
        case 1:
            outputPort("d2", LOW);
            break;
        case 2:
            outputPort("d3", LOW);
            break;
    }

    putcSPI2(msb);
    //dummy = getcSPI2();
    //Delay10us(1);

    switch(id)
    {
        case 0:
            outputPort("d0", HIGH);
            break;
        case 1:
            outputPort("d2", HIGH);
            break;
        case 2:
            outputPort("d3", HIGH);
            break;
    }

    SpiChnEnable(SPI_CHANNEL2, 0);
    SpiChnSetBitRate(SPI_CHANNEL2, 80000000, 1000000);
    SpiChnEnable(SPI_CHANNEL2, 1);
}
Пример #3
0
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;

}