-
-
Neuer Benutzer
Öfters hier
SDCARD und LCD Display zusammen am SPI???
Hallo
Wie initialisiere ich den SPI am Mega 128 wenn ich als Slave ein Display und eine SDCARd habe.
Wie steuere ich dann das Display oder die SD card???
Finde kein beispiel wo mehr als ein gerät am SPI hängt .
Einzeln geht es aber wenn ich eines vom beiden einbinde geht nur das was als erstes angesprochen wurde.
-
Erfahrener Benutzer
Robotik Einstein
-
Neuer Benutzer
Öfters hier
SPI
Habe ich auch schon gelesen.
Aber mir geht es um die Programmiertechnische sache.
Wie initialiesiere den SPI für beide geräte.
was muß ich vorher tun um das Display oder die SD Card anzusprechen???
-
Erfahrener Benutzer
Robotik Einstein
Du meinst was Du dem Slave senden sollst, damit es was macht ?
für die SD-Card gibts diese Seite:
http://www.ulrichradig.de/
dann unter AVR und MMC-SD schauen.
Beim LCD kommt es drauf an welches das ist, aber wenn es nur ein Schieberegister davorgesetzt hat, also ansonsten parallel angeschlossen werden könnte (zB. HD44780 kompatibel), muss man die einzelnen Bits eben über das SPI erst rausschieben, ansonsten reagiert das LCD gleich.
Es muss nur immer vorher der richtige Slave ausgewählt werden, damit es die Daten auch annimmt.
-
Neuer Benutzer
Öfters hier
SPI
Also Das Display ist ein Nokia 6100 von Display 3000
Mein Fehler liegt bei folgender Zeile im SPI Init ich weiß aber den Unterschied nicht.
void spi_init()
{
int Timeout = 0;
MMC_Direction_REG &=~(1<<SPI_DI);
MMC_Direction_REG |= (1<<SPI_Clock);
MMC_Direction_REG |= (1<<SPI_DO);
MMC_Direction_REG1 |= (1<<MMC_Chip_Select);
MMC_Direction_REG |= (1<<SPI_SS);
MMC_Direction_REG |= (1<<DISPL_RESET);
MMC_Direction_REG |= (1<<DISPL_Chip_Select);
MMC_Write1 |= (1<<MMC_Chip_Select);
MMC_Write |= (1<<DISPL_Chip_Select);
for(int a=0;a<200;a++)
{
nop();
};
//Wartet eine kurze Zeit
SPCR=(1<<SPIE)|(1<<MSTR)|(1<<SPR0)|(1<<SPR1);
//Display OK SDCARD nicht
//SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0)|(1<<SPR1);
//SDCARD OK Display nicht
SPSR = (0<<SPI2X);
return(0);
}
#define MMC_Write PORTB
#define MMC_Write1 PORTA
#define MMC_Read PINB
#define MMC_Direction_REG DDRB
#define MMC_Direction_REG1 DDRA //CS für SDCARD
#define SPI_DI 3
#define SPI_DO 2
#define SPI_Clock 1
#define MMC_Chip_Select 1
#define SPI_SS 0
#define DISPL_Chip_Select 5
#define DISPL_RESET 6
Das heist wenn ich den SPI nicht einschalte dann geht das display aber die SD nicht und umgekehrt.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen