Forum: Compiler & IDEs SDCARD Am Software SPI???


von Hans Peter (Gast)


Lesenswert?

Hallo

Ist es möglich an den Ports A0-A3 eine SD card Anzuschalten???


Port A0=CLK
Port A1=CS
Port A2=DI
Port A3=DO

wie schalte ich den Software SPI ???

Am Hardware SPI PortB hängt eine Nokia Display deswegen benötige ich
ein Software SPI.

Hat jemand einen Source dafür???

danke

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

> Am Hardware SPI PortB hängt eine Nokia Display deswegen
> benötige ich ein Software SPI

Warum das?  SPI ist ein multi-slave bus.

von Hans Peter (Gast)


Lesenswert?

Was bedeutet das für mich???

von Thorsten (Gast)


Lesenswert?

Dass Du mehrere SPI devices an den selben Bus hängen kannst. Welches
angesprochen wird, kannst Du über die CS (chip select) Leitung(en)
bestimmen. Die einfach an normale IO pins am Controller anschliessen.

von Hans Peter (Gast)


Lesenswert?

Also richtig verstanden

greife ich parallel an den Port B wo das Display angeschaltet ist auch
die SD Card ab.

Den CS Port setzte ich für die SD Card  z.B an Port A0.

Habe ich das richtig verstanden????

von Hans Peter (Gast)


Lesenswert?

Komme nicht weiter mit SDCARD und ATMEGA 128 und OSFT SPI.

Hard SPI fällt aus da ich ein Display 3000 Board habe und nicht and die
Ports B Hardware SPI rankomme.


habe mal von ullrich radig die mmc lib ausprobiert und dort kann man ja
den Software SPI einschalten =0

Port =A

Pins zugeordnet aber leider kommt immer wieder Karte nicht erkannt
Programm bleibt in der Schleife

while (mmc_init() !=0) //ist der Rückgabewert ungleich NULL ist ein
Fehler aufgetreten
  {
Print("Karte nicht erkannt");
  }

Print("Karte erkannt");


Die mmc.c ist unverändert.
die mmc.h sieht so aus
/*###################################################################### 
#################
Connect AVR to MMC/SD

Copyright (C) 2004 Ulrich Radig
######################################################################## 
###############*/

#ifndef MMC_H
 #define MMC_H

//If use MMC-Card then set to 1
#define  USE_MMC       1       //EXPERIMENTAL NOT READY!!!!

#define SPI_Mode      0    //1 = Hardware SPI | 0 = Software SPI
//#define SPI_Mode      0

#define MMC_Write      PORTA  //Port an der die MMC/SD-Karte 
angeschlossen
ist also des SPI
#define MMC_Read      PINA
#define MMC_Direction_REG  DDRA

#if defined (_AVR_ATmega128_)
  #define SPI_DI        3    //Port Pin an dem Data Output der 
MMC/SD-Karte
angeschlossen ist
  #define SPI_DO        2    //Port Pin an dem Data Input der 
MMC/SD-Karte
angeschlossen ist
  #define SPI_Clock      0    //Port Pin an dem die Clock der 
MMC/SD-Karte
angeschlossen ist (clk)
  #define MMC_Chip_Select    1    //Port Pin an dem Chip Select der
MMC/SD-Karte angeschlossen ist
  #define SPI_SS        5    //Nicht Benutz muß aber definiert werden
#endif

#if defined (_AVR_ATmega32_)
  #define SPI_DI        6    //Port Pin an dem Data Output der 
MMC/SD-Karte
angeschlossen ist
  #define SPI_DO        5    //Port Pin an dem Data Input der 
MMC/SD-Karte
angeschlossen ist
  #define SPI_Clock      7    //Port Pin an dem die Clock der 
MMC/SD-Karte
angeschlossen ist (clk)
  #define MMC_Chip_Select    3    //Port Pin an dem Chip Select der
MMC/SD-Karte angeschlossen ist
  #define SPI_SS        4    //Nicht Benutz muß aber definiert werden
#endif

//Prototypes
inline unsigned char Read_Byte_MMC(void);

inline void Write_Byte_MMC(unsigned char);

extern void MMC_Read_Block(unsigned char *,unsigned char *,unsigned
int);

extern unsigned char mmc_init(void);

extern unsigned char mmc_read_sector (unsigned long,unsigned char *);

extern unsigned char mmc_write_sector (unsigned long,unsigned char *);

extern unsigned char Write_Command_MMC (unsigned char *);

extern unsigned char Read_CSD_MMC (unsigned char *);

extern unsigned char Read_CID_MMC (unsigned char *);

//set MMC_Chip_Select to high (MMC/SD-Karte Inaktiv)
#define MMC_Disable() MMC_Write|= (1<<MMC_Chip_Select);

//set MMC_Chip_Select to low (MMC/SD-Karte Aktiv)
#define MMC_Enable() MMC_Write&=~(1<<MMC_Chip_Select);

#define nop()  _asm__ __volatile_ ("nop" ::)

#endif //_MMC_H_


Der MEGA läuft mit externen Quarz 16MHZ.

von Nils (Gast)


Lesenswert?

Hallo Hans Peter,

beim Software SPI kann ich Dir keine Hilfe geben, aber warum denkst Du
nicht nochmal über das nach, was Thorsten geschrieben hat?

SPI ist ein BUS, d.h. Du kannst mehrere Slaves (das Display und die
Karte) an die selben Pins parallel anschließen. Über Chip Select wählst
Du dann den Slave aus...

Oder habe ich jetzt irgendwas falsch verstanden?!

Gruß, Nils

von Wolfram (Gast)


Lesenswert?

Wenn du die angegebene Beschaltung
>Port A0=CLK
>Port A1=CS
>Port A2=DI
>Port A3=DO
und die weiter unten angegebenen Sourcen benutzt kann das nichts
werden,
da du es falsch konfiguriert hast.
Ich verstehe aber auch nicht, warum du nicht das HardwareSPI benutzt.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Er schrob irgendwas, dass er nicht an den SPI-Bus rankäme.

von Hans Peter (Gast)


Lesenswert?

Hallo

Habe versucht die SD CARD an den Hardware SPI anzuschalten.
Zwei LED sollen mir sagen ob die karte erkannt wurde oder nicht.

es leuchtet kurz die nichterkannt led und geht nach ca 0,5 s aus.
danach leuchet die erkannt led.

Ich glaube jetzt gehts.

Nur kommt jetzt mein zweites Prob.

Das LCD Display was auch am SPI hängt seitdem wird es nicht
initialisiert.

Wenn ich die routine mmc_init ausklammerer dann ghet auch wieder mein
display.


while ( mmc_init() !=0) //ist der Rückgabewert ungleich NULL ist ein
Fehler aufgetreten
    {
PORTLEDC &= ~(1<<LEDFAULT);

    }

PORTLEDC |= (1<<LEDFAULT);          // LED PORTPIN "1" LED LOW ACTIV
PORTLEDC &= ~(1<<LEDOK);
lcdinit();
clsdsp(weiss);



hier die display init von der nokia 6100 c +h

void lcdinit (void)
{

  SPIDDR=(1<<SDA)|(1<<CLK)|(1<<CS)|(1<<RESET); //Port-Direction Setup



  int i;

  CS0
  SDA0
  CLK1

  RESET1
  RESET0
  waitms(10);
  RESET1

  CLK1
  SDA1
  CLK1

  sendCMD(0x01);
  waitms(10);
  sendCMD(0x11);
  waitms(40);
  sendCMD(0x29);
  waitms(40);
  sendCMD(0x3a);
  sendData(0x02);
  sendCMD(0x20);
  sendCMD(0x36);
  sendData(0x00);
  sendCMD(0x2d);

//FARBTABELLE 254
unsigned char lcdinitd[]={0x00 , 0x02 , 0x04 , 0x06 , 0x09 , 0x0B ,
0x0D , 0x0F , 0x00 , 0x02 , 0x04 , 0x06 , 0x09 , 0x0B , 0x0D , 0x0F ,
0x00 , 0x04 , 0x0B , 0x0F};

for (i=0;i<20;i++)
{
sendData(lcdinitd[i]);

}
//DISPLAY LÖSCHEN
  clsdsp(weiss);

}


void clsdsp(unsigned char color)
{
lcd_box(0,131,0,131,color);
}


void lcd_box(int lx1,int lx2,int ly1,int ly2,unsigned char color)
{
Lcd_window(lx1,lx2,ly1,ly2);
int px;
int py;
int pixel;
int i;
   px = lx2 - lx1;
   px++;
   py = ly2 - ly1;
   py++;
   pixel = px * py;
   for (i= 0;i<=pixel;i++)
   {
   sendData(color);

   }



}


//Fenster AdressBereich setzen
void Lcd_window(int lx1,int lx2,int ly1,int ly2)
{  sendCMD(0x2A);
   sendData(lx1);
   sendData(lx2);
   sendCMD(0x2B);
   sendData(ly1);
   sendData(ly2);
   sendCMD(0x2C);

}


void shiftBits(byte b) {

  CLK0
  if ((b&128)!=0) SDA1 else SDA0
  CLK1

  CLK0
  if ((b&64)!=0) SDA1 else SDA0
  CLK1

  CLK0
  if ((b&32)!=0) SDA1 else SDA0
  CLK1

  CLK0
  if ((b&16)!=0) SDA1 else SDA0
  CLK1

  CLK0
  if ((b&8)!=0) SDA1 else SDA0
  CLK1

  CLK0
  if ((b&4)!=0) SDA1 else SDA0
  CLK1

  CLK0
  if ((b&2)!=0) SDA1 else SDA0
  CLK1

  CLK0
  if ((b&1)!=0) SDA1 else SDA0
  CLK1

}


//send data
void sendData(byte data) {

  CS0
  CLK0
  SDA1                                                 //1 for param
  CLK1

  shiftBits(data);
}

//send cmd
void sendCMD(byte data) {

  CS0
  CLK0
  SDA0                                                 //1 for cmd
  CLK1

  shiftBits(data);
}


habe bei senCMD und sendDATA ein CS0 eingesetzt Chip select ist das
richtig???


Wie muß man rangehen um das entsprechende gerät anzusteuern.

Mal die SD CARD mal das Display.


Das display ist paralel an die SDCARD angebunden.

von Avr N. (avrnix) Benutzerseite


Lesenswert?

abo

von Wolfram (Gast)


Lesenswert?

also nochmal ganz einfach, über die CS-Leitung des jeweiligen Gerätes
wählst du aus WELCHES gerät du ansprechen willst. Das andere CS-Leitung
sollte dabei INAKTIV sein. Dein "Code" legt sehr nahe das du die CS
Leitung des
Display's aktivierst aber nicht wieder deaktivierst. Wenn du das bei
der MMC vorher genauso gemacht hast, ist es kein Wunder das es nicht
funktioniert.
BTW: dein Code ist nichtssagend bzw. es fehlen sämtliche Teile die ein
Verständnis fördern würden,poste entweder den ganzen Code oder auch
sämtliche Makros die du verwendest.

von Hans Peter (Gast)


Angehängte Dateien:

Lesenswert?

So ich habe mal die ganzen sources beigelegt

Ich hoffe man kommt zurecht damit.

Mein Problem ist in der SPI init.

habe es dort dokumentiert

von Wolfram (Gast)


Lesenswert?

Wie schon geschrieben du kannst nicht GLEICHZEITIG auf beide Geräte
zugreifen sondern musst immer das, welches du benutzen willst, vor dem
Zugriff mit der jeweiligen CS Leitung aktivieren und danach wieder
DEAKTIVIEREN. Für das Display ist dies nicht erkennbar.
BTW: Wenn du willst das andere mit deinem Programcode ohne Schaltung
zurechtkommen,schreib hin ob das jeweilige Signal High oder Lowaktiv
ist.

von Hans Peter (Gast)


Lesenswert?

Hallo

Also ich komme absolut niucht weiter CS High oder LOW bringt alles
nichts.


SPCR=(1<<SPIE)|(1<<SPE)|(1<<MSTR)|(1 << CPOL) | (1 << CPHA)  | (1 <<
SPIE);

Die Ursache liegt bei 1<<SPE   //Enable SPI.

Wenn ich es rausnehme aus SPCR dann geht das display wenn ich zuvor die
CS des Displays auf low setze.

aber wenn ich danach die CS des Displays wieder auf hight setzte und
die CS der SDCARD wird die SDCARD nicht angesprochen LEDS bleiben aus.

Wenn ich in SPCR die 1<<SPE mit eingebe und wieder das gleiche mache

dann wird das Display nicht initialisiert aber die SDCARD.

kann es sein das das Display nicht Master Slave tauglich ist???

von Wolfram (Gast)


Lesenswert?

Ich nehme nicht an das du den Code selber geschrieben hast, wenn du
schon fremden Code verwendest solltest du ihn auch verstehen. Die
Display ansteuerung ist in Software geschrieben mit "Pinwackeln"
die MMC ansteuerung die du versuchst ist über die
Hardwarespischnittstelle.
Wenn du also die Hardwarespischnittstelle anschaltest geht nur die MMC
sonst nur das Display. Du wirst dies nicht über die gleichen Pins
machen können!

von Hans Peter (Gast)


Lesenswert?

Ja genaus das Meine ich am Anfang meiner Frage.

Deshalnb würde ich gerne die MMC über Software SPI Steuern.

von Hans Peter (Gast)


Lesenswert?

Mit SOftware SPI gehts gar nicht auch mit dem Beispiel Source von
Ullrich Radig.

SPI Mode auf 0 für Software SPI

Port A0=CLK
Port A1=CS
Port A2=DI
Port A3=DO

Karte wird nicht gefunden.

Habe wieder die SD an den Hardware SPI angeschlossen


MOSI=B2 auf Display Eingabg und SDCard Pin 2
MISO=B3 nicht auf Display nur auf SDCard pin 7
CLK=B1 auf Display und SDCard pin 5
SS = B0 nicht angeschlossen
CSDisplay = B5 auf Display
CSSDCard = A1 auf SDCard Pin1
Reset =B6 auf Display


habe mal das display ausen vor gelassen um nur die MMC anzusteuern.
CS vom Display auf High.
PORTB|=(1<<5);


Wenn ich jetzt in meinen Terminal schaue kommt folgendes


Karte nicht gefundenKarte gefundena 1f dd d1 31 e7 9b 9f 7b 9d 62 56 ce
e 4b cb
Directory

Cluster = cfd7 DirA = ab Size=    16059 FileName = çåhÿɾäM.O«
Cluster = 14f3 DirA = 2f Size=    -3829 FileName = ¹ŽÝ:ZÇÜS.Ý\<
Cluster = bf7c DirA = ee Size=     4451 FileName = ñ}¯¾ÈÅ}.CnK
Cluster = fde4 DirA = 9b Size=    -2107 FileName = 2Ûºÿ¼þý.vK‹
Cluster = f9a8 DirA = 4f Size=    24531 FileName = ­:Íy÷¾.³^^
Cluster = c700 DirA = c3 Size=      215 FileName = d[g²›~/A.~r
Cluster = 7dae DirA = 29 Size=    24377 FileName = +7šà’½øO.µØ
Cluster = 7edc DirA = 2a Size=   -14389 FileName = Zÿû†é§ÿñ.÷¸o
Cluster = 5671 DirA = f0 Size=   -16859 FileName = Ǖýÿ¥sÎ.[qC
Cluster = 3bfe DirA = d6 Size=    -6557 FileName = þä{ÁÏ.ܽK
Cluster = ffb4 DirA = fb Size=     -217 FileName = ÷Õ}ûWÛÿ.óo­
Cluster = f3dc DirA = 58 Size=   -18565 FileName = Oû¾Çž‚Ö.ޏj
Cluster = edea DirA = b0 Size=    -2058 FileName = ïsȲ³—Òî.÷?á
Cluster = d747 DirA = 65 Size=    30575 FileName = —†ìÙn~Õ.Pÿ×
Cluster = 2bf5 DirA = 60 Size=    31444 FileName = Í<;fçßì.—°‡
Cluster = be6e DirA = 2e Size=   -10083 FileName = Í<;fçßì....
Cluster = cfd7 DirA = ab Size=    16059 FileName = çåhÿɾäM.O«
Cluster = 14f3 DirA = 2f Size=    -3829 FileName = ¹ŽÝ:ZÇÜS.Ý\<
Cluster = bf7c DirA = ee Size=     4451 FileName = ñ}¯¾ÈÅ}.CnK
Cluster = fde4 DirA = 9b Size=    -2107 FileName = 2Ûºÿ¼þý.vK‹
Cluster = f9a8 DirA = 4f Size=    24531 FileName = ­:Íy÷¾.³^^

Directory Ende

FERTIG!!


Normalerweise ist die SDcard leer(frisch foramtiert mit FAT16.

was hat das zu bedeuten.

Source ist die von Ullrich radig 2.5 1:1 übernommen. Nur die Ports
Angepasst.


#ifndef MMC_H
 #define MMC_H

#include "typedefs.h"
#include "main.h"

#define SPI_Mode      1    //1 = Hardware SPI | 0 = Software SPI
//#define SPI_Mode      0

#define MMC_Write      PORTB  //Port an der die MMC/SD-Karte 
angeschlossen
ist also des SPI
#define MMC_Write1      PORTA  //Port an der die MMC/SD-Karte 
angeschlossen
ist also des SPI

#define MMC_Read      PINB
#define MMC_Direction_REG  DDRB
#define MMC_Direction_REG1  DDRA

#if defined (_AVR_ATmega128_)
  #define SPI_DI        3    //Port Pin an dem Data Output der 
MMC/SD-Karte
angeschlossen ist
  #define SPI_DO        2    //Port Pin an dem Data Input der 
MMC/SD-Karte
angeschlossen ist
  #define SPI_Clock      1    //Port Pin an dem die Clock der 
MMC/SD-Karte
angeschlossen ist (clk)
  #define MMC_Chip_Select    1    //Port Pin an dem Chip Select der
MMC/SD-Karte angeschlossen ist
  #define SPI_SS        0    //Nicht Benutz muß aber definiert werden
#endif

#if defined (_AVR_ATmega32_)
  #define SPI_DI        6    //Port Pin an dem Data Output der 
MMC/SD-Karte
angeschlossen ist
  #define SPI_DO        5    //Port Pin an dem Data Input der 
MMC/SD-Karte
angeschlossen ist
  #define SPI_Clock      7    //Port Pin an dem die Clock der 
MMC/SD-Karte
angeschlossen ist (clk)
  #define MMC_Chip_Select    3    //Port Pin an dem Chip Select der
MMC/SD-Karte angeschlossen ist
  #define SPI_SS        4    //Nicht Benutz muß aber definiert werden
#endif

//Prototypes
inline U08 mmc_read_byte(void);

inline void mmc_write_byte(U08);

extern void mmc_read_block(U08 *,U08 *,U16);

extern U08 mmc_init(void);

extern U08 mmc_read_sector (U32,U08 *);

extern U08 mmc_write_sector (U32,U08 *);

extern U08 mmc_write_command (U08 *);

extern U08 mmc_read_csd (U08 *);

extern U08 mmc_read_cid (U08 *);

//set MMC_Chip_Select to high (MMC/SD-Karte Inaktiv)
#define MMC_Disable() MMC_Write1|= (1<<MMC_Chip_Select);

//set MMC_Chip_Select to low (MMC/SD-Karte Aktiv)
#define MMC_Enable() MMC_Write1&=~(1<<MMC_Chip_Select);

#define nop()  _asm__ __volatile_ ("nop" ::)

#endif //_MMC_H_


SPI buslänge ca 3cm.(SDCARD->ATMEGA128.

Warum zeigt er mir nicht im Terminal das es keine Verzeichnisse gibt???

von Wolfram (Gast)


Lesenswert?

>Deshalnb würde ich gerne die MMC über Software SPI Steuern.
dann mach es doch...
Wenn du fremden Code benutzt, musst du dich auch damit
auseinandersetzen und ihn verstehen und richtig konfigurieren. So wie
du es gemacht hast
ist es falsch konfiguriert. Ich würde vorschlagen du zeichnest dir
einen Schaltplan und gehst die konfigurationsdatei Schritt für Schritt
durch
und setzt die Parameter richtig. Wenn du willst das dir jemand hilft
setze den Schaltplan ins Forum. Lies dir die Dokumentation durch und
wenn du da Verständnisprobleme hast lies noch andere Dokumentation.
Wenn es dann immer noch Probleme gibt, stell die Fragen im Forum.
Eine Frage wie
Was bedeutet das für mich???
zeigt sehr deutlich das du dich mit der Problematik noch nicht
auseinandergesetzt hast. Der Thread erweckt sehr den Anschein das du
fremden Code genommen hast, diesen zusammengestöpselt hast,es nicht
funktioniert hat und du jetzt erwartest das irgendjemand es zum
funktionieren bringt.
DU bist dieser irgendjemand, es ist natürlich sehr ungünstig wenn du
die Antworten nicht verstehst.

von Hans Peter (Gast)


Angehängte Dateien:

Lesenswert?

Wieso falsch konfiguriert???

Auf der Seite von AVR DOS gibt es eine Shematic die Zeigt wo dei SDCARd
angeschaltet wird dieses habe ich auch gemacht.

Mein Mega 128 ist ein Board von Display 3000 D62.

Dort hängt am SPI PortB standartmäßig ein Display dran.

Parallel dazu habe ich die SDCARD so wie es im Netzt zu finden ist.

Ich habe die Schaltung geprüft und stimmt mit dem von AVR DOS überein.

Das Board besitz einen Levelshifter (5V>3V 3V>5V). das heist ich kann
direkt ohne Spannungsteiler an die Pins.

MOSI habe ich direkt an das Beinchen des 128Mega gelötet B3.

Wenn man schon schreibt das es falsch konfiguriert ist dann bitte auch
warum.

Wenn ich die Source von Ullrich Radig nehme steht ja man muß nur die
Ports anpassen was kann daran verkehrt sein.

Beim Display genau das gleiche.

von Wolfram (Gast)


Lesenswert?

Mach endlich mal einen Schaltplan, schau dir an an welche Pins du das
einzelne angeschlossen hast und welche Pins in der Konfigurationsdatei
angegeben sind für clk di do.

Das was du aus dem Netz ziehst ist jeweils Code für diesen Schaltplan.
Dein Display mit GPIO Pins angesteuert deine MMC mit SPI das wird
nichts zusammen!!!

von Hans Peter (Gast)


Angehängte Dateien:

Lesenswert?

Hier mal so wie es angeschlossen ist.

Der Levelshifter ist nicht eingezeichnet.

Pin B3 ist direkt mit dem Pin 7 der SD angeschlossen.

So wie im Schaltplan von Ullrich radig der mit dem Spannungsteilern
ohne Transistoren.

Ich hoffe es hilft.

von Hans Peter (Gast)


Angehängte Dateien:

Lesenswert?

Ich glaube du hast recht das Display wird mit Software angesteuert und
ist aber am SPI Hardware Ports angeschlossen.

Nur habe ich auch die Lib von APATECH probiert nur da geht das display
nicht wird nicht initialisiert.

von Wolfram (Gast)


Lesenswert?

Warum probierst du noch weitere Libs aus statt das was du hast auf
deinen Fall anzupassen?
1. Display und MMC am gleichen Port Hardware SPI
dazu müsstest du die Ansteuerung des Displays und der MMC verstehen
sowie SPI und mindestens die Ansteuerung des Displays neuschreiben.
2. MMC an HardwareSPI Display in Software
Dazu muestest du das Display an andere Pins anhängen die MMC an den SPI
Port den das fkt. ja schon. Änderungen an der Displayansteuerung sind
notwendeig halten sich aber im Rahmen.
3. Display bleibt wo es ist MMC an andere Portpins, anpassung der
Software von der MMC. Das hast du zwar schon probiert allerdings falsch
konfiguriert.

von Hans Peter (Gast)


Lesenswert?

Display lässt sich nicht an andere Ports anschalten da es ein Fertiges
Modul ist.


Warum habe ich dei Ports falsch konfiguriert wo steht das???

von Wolfram (Gast)


Lesenswert?

schau dir mal in der Konfigurationsdatei des mmc codes DI und DO an.

von Hans Peter (Gast)


Lesenswert?

Wenn Du das meinst das DO und DI vertauscht seien könnte habe ich schon
probiert bringt nichts.

von Hans Peter (Gast)


Angehängte Dateien:

Lesenswert?

Hier nochmal die Anschaltung


Ist vieleicht der MISO der Fehler weil er direkt am Port B3 hängt 5Volt
LEvel.Muß er etwa auch 3 Volt Level haben????

von Wolfram (Gast)


Lesenswert?

Warum hängt die MMC am SPI Port? Ich denke du hast dort das Display und
wir haben doch schon festgestellt das das Display und MMC nicht auf den
gleichen PINs liegen können. Mach doch bitte mal einen kompletten
Schaltplan so wie du es beschaltet hast und sag welche Variante du
haben willst.

von Hans Peter (Gast)


Lesenswert?

Also der Hardware SPI und MMC funktionieren jetzt prima das Ergebnis aus
dem Hyperterminal

Karte gefunden0 2d 0 32 13 59 83 c9 f6 d9 cf 80 16 40 0 33
Directory

Cluster =    3 DirA = 20 Size=       10 FileName = MMC.TXT

Directory Ende


File Found!!

test hallo


das sieht soweit gut aus.

Jetzt muß nur noch das Display in den Hardware SPI versetzt werden.

von Wolfram (Gast)


Lesenswert?

>Jetzt muß nur noch das Display in den Hardware SPI versetzt werden.
viel spass beim umschreiben des Programmcodes des Displays.

von Hans Peter (Gast)


Lesenswert?

So habe es geschafft das Dispaly über SPI Anzusteuern leiderist ein
Hacken dran es ist ziemlich lahm ich kann zuschauen wie es pixel für
pixel setzt oder löscht.Mit der Software Routine gings blitzschnell
hatz das Auge nicht bemerkt.

Kann es mit dem SPI Timing zusammenhängen?????

von Markus (Gast)


Lesenswert?

Hallo Hans Peter,

ich weiß das Thema ist schon Uralt, vielleicht schaust du ja aber doch 
ab und zu rein. Ich habe das selbe Problem mit dem D62 Board vom selben 
Hersteller.
Wie hast du es schlussendlich gelößt?

Beste Grüße
Markus

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.