-         

Ergebnis 1 bis 5 von 5

Thema: SDCARD und LCD Display zusammen am SPI???

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    06.06.2006
    Beiträge
    16

    SDCARD und LCD Display zusammen am SPI???

    Anzeige

    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.

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,

    schon mal diese Seite angeschaut:
    http://www.roboternetz.de/wissen/index.php/SPI

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    06.06.2006
    Beiträge
    16

    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???

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    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.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    06.06.2006
    Beiträge
    16

    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
  •