ezDSP mit 5505 und SPI

Gast #1933598
Lesenswert?

Hi, ich versuche SPI zum laufen zu bekommen. Aber es kommt weder CLK 
noch sointein Signal raus. Messen tu ich mit Logicanalyzer. Der Codee 
wird auch ausgeführt, bin schrittweise durchgegangen. Hab ich noch ne 
Einstellung uebersehen?
Mein Code:
//einstellen des Modes
PERIPHSEL0 = 0x6902;        // parallel port: mode 6, serial port1: mode 
2
// und init des SPI
void spi_init(void){
   int i;
    SYS_PRCR = SYS_PRCR & ~0x0080;        //take out of reset
    IDLE_PCGCR = IDLE_PCGCR & ~0x0002;            //enable clock

    SPI_REG_CCR = SPI_REG_CCR & ~0x8000;    //disable clock
    SPI_REG_CDR = 0x0363;                    //clk=115200 hz
    SPI_REG_CCR = SPI_REG_CCR | 0x8000;    //enable clock
    SPI_REG_DCR1 = 0x0000;
    SPI_REG_DCR2 = 0x0000;
    for(i=0; i<0xFFF; i++) { }
}
 // und senden der Daten
void spi_tx(Int16 value){

  unsigned short i;

    //8 bit write
    SPI_REG_CMD1 = 0x0000;         //1 character
    SPI_REG_DAT2 = value << 8;
    SPI_REG_DAT1 = 0x0000;
    SPI_REG_CMD2 = 0x003A;         //CS0, 8 bits per character, write
    i=0;
    while(SPI_REG_STAT1 & 0x0002 == 0) { if(i++ == 0xFFFF) {break;} } 
//wait for CC=1
    i=0;
    while(SPI_REG_STAT1 & 0x0001 != 0) { if(i++ == 0xFFFF) {break;} } 
//wait for BUSY=0
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren