SPI: zwischen 2 ICs switchen

Gast #1449631
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):
1
AT91F_SPI1_CfgPIO();
2
AT91F_SPI1_CfgPMC(); 
3
AT91F_SPI_Disable(AT91C_BASE_SPI1); 
4
AT91F_SPI_Reset(AT91C_BASE_SPI1); 
5
AT91F_SPI_Reset(AT91C_BASE_SPI1); 
6

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

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

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

22
//enable spi 
23
AT91C_BASE_SPI1->SPI_CR     = AT91C_SPI_SPIEN;


Beim switchen von einem auf den anderen IC beschreibe ich bis jetzt 
lediglich das Mode Register:
1
AT91C_BASE_SPI1->SPI_MR = 0x00; 
2
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

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