DAVE SPI -> Probleme mit ChipSelect

OP #3720033
Lesenswert?

Hallo,
kennt sich jemand ein wenig mit DAVE aus? Ich bin neu in diesem Bereich.
Ich habe ein DAVE CE Projekt erzeugt und die SPI001 App in den S/W App 
Dependency TreeView gezogen. Dann habe ich das Modul konfiguriert (siehe 
Bild). Bei der FIFO-Configuration habe ich jeweils Size 8 und Trigger 
limit 1 eingestellt.

Mein Quellcode sieht so aus:
int main(void)
{
  DAVE_Init();      // Initialization of DAVE Apps
  uint16_t spiData, writeData;
  spiData = 0;
  writeData = 5; // readStatusRegister
  while(1)
  {
    EnableStartOfFrame(SPI001_Handle0);
    writeData = 6;
    SPI001_WriteData(&SPI001_Handle0,&writeData,SPI001_STANDARD);
    writeData = 1;
    SPI001_WriteData(&SPI001_Handle0,&writeData,SPI001_STANDARD);
    writeData = 0x8C;
    SPI001_WriteData(&SPI001_Handle0,&writeData,SPI001_STANDARD);
    writeData = 5;
    EnableEndOfFrame(SPI001_Handle0);
    SPI001_WriteData(&SPI001_Handle0,&writeData,SPI001_STANDARD);
    SPI001_ReadData(&SPI001_Handle0,&spiData);
  }
  return 0;
}

Es handelt sich hier um eine EEPROM-Ansteuerung.
Ich möchte hier 4 Bytes in das SPI hineinschicken und am Ende 1 Byte 
Daten auslesen. Je nachdem, dwas ich auslesen möchte, kann es sein, dass 
ich bis zu 6 Byte an das EEPROM schicken möchte.


Mein Problem ist nun, dass zwischen den einzelnen Bytes (WriteData) das 
Chipselect jedes mal wieder "high" geht.
Ich dachte, dass ich das mit dem "EnableStartOfFrame" und 
"EnableEndOfFrame" so erreicht hätte, aber das funktioniert nicht.
Ich habe bei Tante Google und auch in der Doku sonst nichts weiter 
gefunden. Kann mir jemand helfen oder zumindest eine gute Seite 
empfehlen, die auf das SPI-Problem eingeht?

Thx

PS: Ich nutze DAVE 3.1.10 mit einem XMC4100.
Angehängte Dateien:

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