Frage zu SPI und MCP23S09

OP #1578865
Lesenswert?

Hallo liebe Gemeinde,

ich möchte gerne mein Grafik-LCD von einer I2C Ansteuerung mit dem 
MCP23008 von Microchip auf eine serielle Ansteuerung mit dem MCP23S09 
per SPI umstellen.

Angeschlossen sind die /CS Leitungen jeweils an PC2 und PC3 eines 
ATMega644, der mit 8Mhz internem Takt bei 3,3V läuft. Das Display ist an 
5V angeschlossen mit zwei MCP23S09 (an 3,3V, die GPIOs sind 5V 
tolerant), jeweils einer für die Daten (DATA) und einer für die 
"restlichen" Pins (CMD).

Ich habe in meinem Code die Ansteuerung in etwa so wie bei I2C versucht, 
aber leider funktioniert das nicht. Ich bleibe schon in der Init-Routine 
hängen (nach "Init1").

Elektrisch sind die MISO/MOSI/SCK Leitungen der MCPs und µC jeweils 
zusammengeschaltet, an MISO hängt ein 10k Pullup.

Es wäre nett, wenn jemand einmal schauen könnte, ob ich hier völlig auf 
dem Holzweg bin. Datenblatt und Code siehe Anhang.

Das Hauptprogramm:
1
int main(void)
2

3
  _delay_ms(1000);
4

5
  uart_init( UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU));
6
  
7
  sei();
8
  
9
  uart_puts_P("**** \nProgramm Start\n"); _delay_ms(50);
10

11
  T6963cInit(  T6963C_MODE_XOR | T6963C_CG_INTERNALROM,
12
        T6963C_TEXT_GRAPHIC);
13
  
14
  uart_puts_P("Display Init ok.\n"); _delay_ms(30);
15

16
T6963cPutStringXY(0,0, "Test");
17

18
 _delay_ms(100);
19

20
return 1;
21
}
Angehängte Dateien:
OP #1579720
Lesenswert?

Muss man noch etwas Besonderes beachten, wenn man nicht /SS als 
ChipSelect nimmt, sondern einen anderen Pin?

Irgendwie komme ich nicht weiter. Hardware habe ich noch einmal alles 
kontrolliert, finde keine Fehler.

Ergänzend habe ich mal an die beiden /CS-Leitungen einen Pullup 10k 
gesetzt.

Leider immer noch keine Besserung :-(

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