www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI: zwischen 2 ICs switchen


Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

arbeite gerade mit einem SAM7: an SPI1_CS0 und CS1 sitzen zwei 
verschiedene ICs. Einzeln funktionieren beide einwandfrei, aber wenn ich 
versuch beide zu initialisieren dann funktioniert keiner von beiden... 
Ich glaub dass vielleicht das springen zwischen dem ein und dem anderen 
IC nicht ganz stimt.

Hier mal meine Initialisierung am Anfang für beide ICs (SPI):
AT91F_SPI1_CfgPIO();
AT91F_SPI1_CfgPMC(); 
AT91F_SPI_Disable(AT91C_BASE_SPI1); 
AT91F_SPI_Reset(AT91C_BASE_SPI1); 
AT91F_SPI_Reset(AT91C_BASE_SPI1); 

//Configure SPI0 in Master Mode with No CS selected 
AT91F_SPI_CfgMode(AT91C_BASE_SPI1, AT91C_SPI_MSTR | AT91C_SPI_MODFDIS | SPI_PCS(BOARD_TSC_NPCS)); 

// Configure CSx   
AT91C_BASE_SPI1->SPI_CSR[CS_INDEX] =(AT91C_SPI_NCPHA |
                               (AT91C_SPI_DLYBS & DELAY_BEFORE_SPCK) | 
                              (AT91C_SPI_DLYBCT &DELAY_BETWEEN_CONS_COM) | 
            (0xC8 << 8));

// Configure CSx  
AT91C_BASE_SPI1->SPI_CSR[1] =(AT91C_SPI_NCPHA |
                         (AT91C_SPI_DLYBS & DELAY_BEFORE_SPCK) | 
                        (AT91C_SPI_DLYBCT & DELAY_BETWEEN_CONS_COM) | 
      (0xC8 << 8));

//enable spi 
AT91C_BASE_SPI1->SPI_CR     = AT91C_SPI_SPIEN;


Beim switchen von einem auf den anderen IC beschreibe ich bis jetzt 
lediglich das Mode Register:
AT91C_BASE_SPI1->SPI_MR = 0x00; 
AT91F_SPI_CfgMode(AT91C_BASE_SPI1, AT91C_SPI_MSTR | AT91C_SPI_MODFDIS | SPI_PCS(select));


Weiß jmd. was ich noch beachten muss bzw. welche Veränderungen ich noch 
durchführen muss?

Gruß
Carsten

Autor: Michael L. (michaelx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
K.A. was jetzt SAM7 ist, oder was das für 2 verschiedene IC sind, aber 
ein Blick in meine Glaskugel sagt mir, du schaltest die CS-Signale zu 
einem Zeitpunkt, an dem es nicht gemacht werden darf. Das solltest du 
schon selbst herausfinden, lesen der Datenblätter kann helfen. ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.