Forum: Mikrocontroller und Digitale Elektronik SD Karte(FatFs) verträgt sich mit ENC28J60 nicht


von Jan H. (jan_h865)


Lesenswert?

Guten Abend,
Nachdem nun meine SD Karte ohne Probleme läuft mit der FatFs Library. 
Wollte ich es nun nach vielen ausprobieren der ganzen Befehle die, die 
Library mit sich bringt, in mein eigentlich's Projekt einbinden.

Mein Projekt ist eine Art Home Server. Mit dem kann man Daten über 
Temperatur, Licht etc.. ablesen. Da ich die ganzen Daten nicht auf einem 
EEPROM(externes 2Kbits, i2c) speichern wollte. Wollte ich auf die SD 
Karte zurückgreifen und dann es auch möglich machen diese am PC 
auszulesen.

Jedoch scheint sich die SD Karte nicht mit dem ENC28J60 zu vertragen. 
Denn ich wenn ich alles angeschlossen habe(external i2c eeprom, 2x 
ds18b20, lux sensoren, tft display) und dann meine 2GB SD Karte lesen 
will. Geht das er zeigt mir ohne Probleme denn freien Speicher auf der 
Karte an.

Stecke ich nun denn ENC28J60 hinzu. Dann sagt er immer das der Freie 
Speicher 0 MB beträgt. Sowie alles andere auch fehl schlägt. Wenn ich 
ihn wieder wegnehme(Also abklemme, SPI Verbindung), dann geht wieder 
alles ohne Probleme.

Es reicht übrigens auch schon nur das Abklemmen der MISO Leitung, dann 
funktioniert die SD Karte auch.

Es werden bei mir als erstes alle I/O gesetzt(Input, Output), dann die 
SPI Verbindung hergestellt, dann TFT, SD und ENC CS Leitung auf HIGH 
gesetzt. Dann wird das TFT Display initialisiert und der Start 
Bildschirm erscheint, dann kommt die SD Karte und danach der ENC. Auch 
wenn der ENC nicht initialisiert ist funktioniert die SD Karte 
nicht(wenn ENC angeklemmt).

Jeder Abschnitt hat seine eigene Spannung Versorgung also der ENC28J60 
bekommt 5V vom LM7805, der ATMega644, ds18b20, eeprom bekommen von einen 
anderen 5V Regler Spannung, und das TFT mit SD Karte bekommt auch von 
sein eigenen 5V Regler die Spannung. Es sind nur die GND's verbunden.


Woran könnt das liegen? Hardware oder doch ehr Software Problem?

Lg Jan.

von Wolfgang (Gast)


Lesenswert?

Jan H. schrieb:
> Es werden bei mir als erstes alle I/O gesetzt(Input, Output), dann die
> SPI Verbindung hergestellt, dann TFT, SD und ENC CS Leitung auf HIGH
> gesetzt.

Heißt das, dass du MISO von SD und ENC am selben MISO deines Servers 
angeschlossen hast und beide CS Leitungen gleichzeitig aktivierst?

Zeige mal einen Schaltplan

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Jan H. schrieb:
> Bildschirm erscheint, dann kommt die SD Karte und danach der ENC. Auch
> wenn der ENC nicht initialisiert ist funktioniert die SD Karte
> nicht(wenn ENC angeklemmt).

 Failsafe pullups an MISO/MOSI ?
 SPI Mode stimmt bei allen ?

 Versuche mal ENC zuerst zu initialisieren.

: Bearbeitet durch User
von Jan H. (jan_h865)


Lesenswert?

Marc V. schrieb:
> Failsafe pullups an MISO/MOSI ?

Ein 10K(3V3) Pullup Widerstand an MISO ist der SD Karte dran. Jedoch ist 
ein 10K Pullup Widerstand(5V) am ENC28J60.

Kann das was mit denn Spannung unterschieden zutun haben. Denn die ENC 
ist ja 5V Tolerant(ENC28j60 spi anschlüsse) SD Karte jedoch nicht

von Jim M. (turboj)


Lesenswert?

Jan H. schrieb:
> Kann das was mit denn Spannung unterschieden zutun haben. Denn die ENC
> ist ja 5V Tolerant(ENC28j60 spi anschlüsse) SD Karte jedoch nicht

Ja. MISO hat üblicherweise keinen Pegelwandler für die SD Karte, wird 
aber vom ENC auf 5V hochgezogen. Damit verbrätst Du die Karte, denn die 
vertragt nur maximal 3V6 auf dieser Leitung.

Zurück zum Zeichenbrett für neuen Schaltplan...

von Jan H. (jan_h865)


Lesenswert?

Jim M. schrieb:
> Ja. MISO hat üblicherweise keinen Pegelwandler für die SD Karte, wird
> aber vom ENC auf 5V hochgezogen. Damit verbrätst Du die Karte, denn die
> vertragt nur maximal 3V6 auf dieser Leitung.

Nein. Daran liegt es nicht. Der ENC bekommt nur 3V3 Versorgungsspannung 
kann also auch nur 3V3 auf der MISO Leitung ausgeben. Das stimmt auch 
jedoch steht die Leitung dauerhaft unter "Strom" damit meine ich das 
dauerhaft Signale da durchgesendet werden. So konnte man das auf dem 
Oszi sehen.

Es gehen auch Signale durch wenn der Chip gar nicht angesprochen wird.

lg jan.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Jan H. schrieb:
> Nein. Daran liegt es nicht. Der ENC bekommt nur 3V3 Versorgungsspannung

Marc V. schrieb:
> Versuche mal ENC zuerst zu initialisieren.

von Jim M. (turboj)


Lesenswert?

Marc V. schrieb:
> Versuche mal ENC zuerst zu initialisieren.

Dann wäre die SD Karte aber im SD Modus, und würde die Bussignale 
ebenfalls versuchen zu interpretieren. Das knallt also auch.

Die SD Karte muss zuerst in den SPI Mode geschickt werden, erst dann 
ist CS wirksam - Dummy Clocks beim Deselect beachten!

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Jim M. schrieb:
> Dann wäre die SD Karte aber im SD Modus, und würde die Bussignale
> ebenfalls versuchen zu interpretieren. Das knallt also auch.

 Nein.
 SD wird sowieso mit CS = Deselect und Dummy clocks initialisiert.
 Das passt schon.

von grundschüler (Gast)


Lesenswert?

Welcher Prozessor? avrs haben usart-spi. Damit kannst du eine separate 
Schnittstelle schaffen.

von Jim M. (turboj)


Lesenswert?

Marc V. schrieb:
> Jim M. schrieb:
>> Dann wäre die SD Karte aber im SD Modus, und würde die Bussignale
>> ebenfalls versuchen zu interpretieren. Das knallt also auch.
>
>  Nein.
>  SD wird sowieso mit CS = Deselect und Dummy clocks initialisiert.
>  Das passt schon.

Nur zur Klarstellung: Das is solange SD Mode, bis das Kommando CMD0 mit 
CS=Low durch ist und die Karte korrekt antwortet. Erst ab dann kann man 
die Karte mit CS=High deselektieren.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Jim M. schrieb:
> Nur zur Klarstellung: Das is solange SD Mode, bis das Kommando CMD0 mit
> CS=Low durch ist und die Karte korrekt antwortet. Erst ab dann kann man
> die Karte mit CS=High deselektieren.

 Nein.
 Karte braucht erst mal etwa 80 Clocks (minimum) mit CS=High.
 Das macht man deswegen weil die Karte sich vielleicht noch in
 einem undefiniertem Zustand befindet (voriges Befehl war falsch /
 irgendein Fehler aufgetreten / Powerup nicht richtig etc.)

 Erst nach diesen 80 Clocks setzt man CS auf Low und sendet CMD0.

 P.S.
 Allerdings bin ich mir nicht sicher, ob während dieser Zeit MISO
 tatsächlich freigegeben wird oder auf LOW gezogen wird - insofern
 könntest du Recht haben...

: Bearbeitet durch User
von dasrotemopped (Gast)


Lesenswert?

Jan Hampel schrieb:
>Jedoch ist ein 10K Pullup Widerstand(5V) am ENC28J60.

>Der ENC bekommt nur 3V3 Versorgungsspannung kann also auch nur 3V3 auf >der MISO 
Leitung ausgeben.

AHA !

von Jan H. (jan_h865)


Lesenswert?

Hallo Leute,

Sorry für denn späten Beitrag, hatte ein paar Problem mit mein Internet.

Marc V. schrieb:
>> Versuche mal ENC zuerst zu initialisieren.

Nein das Funktion leider nicht. Wenn ich denn ENC als erstes 
initialisiere, und dann die SD Karte lesen will in meinen Fall denn 
freien Speicher kommt immer der Error Code 13 zurück(Kein Dateisystem 
gefunden).

Entferne ich denn ENC von der Hardware sagt der ja nach SD Karte 975 MB 
Freier Speicher oder 7574 MB Freien Speicher.

Jan H. schrieb:
> MISO Leitung ausgeben. Das stimmt auch
> jedoch steht die Leitung dauerhaft unter "Strom"

Das sind meine Websites Requests die ich mit denn ENC in der while 
Schleife ausführe. Diese werden jedoch gar nicht aufgerufen solange er 
noch im Init Teil ist.

lg Jan.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Jan H. schrieb:
> Marc V. schrieb:
>>> Versuche mal ENC zuerst zu initialisieren.
>
> Nein das Funktion leider nicht. Wenn ich denn ENC als erstes
> initialisiere, und dann die SD Karte lesen will in meinen Fall denn
> freien Speicher kommt immer der Error Code 13 zurück(Kein Dateisystem
> gefunden).
>
> Entferne ich denn ENC von der Hardware sagt der ja nach SD Karte 975 MB
> Freier Speicher oder 7574 MB Freien Speicher.

 Dann stimmt irgendetwas nicht mit CS bei ENC.
 Höchstwahrscheinlich wird der ENC nicht deselektiert und blockiert
 die MISO Leitung.

von Jan H. (jan_h865)


Lesenswert?

Marc V. schrieb:
> Höchstwahrscheinlich wird der ENC nicht deselektiert und blockiert
>  die MISO Leitung.

Hallo,

Okay, die Library und der Schaltplan für denn ENC28J60 habe ich von 
Tuxgraphics:

Hier mal das Schaltbild: 
http://tuxgraphics.org/common/src2/article06061/eth-remote-device.pdf


Ich habe nur clkout, WOL und Int nicht angeschlossen.

Was macht der 220 Ohm Widerstand in der MISO Leitung muss der dahin?
Denn habe ich nämlich nicht an der MISO Leitung.

//EDIT: Was man gut auch am Display sehen kann ist das die SPI 
Geschwindigkeit auf F_CPU / 64 gesetzt wird. Aber nicht zurück auf F_CPU 
/ 2.

lg jan.

: Bearbeitet durch User
von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Jan H. schrieb:
> Was macht der 220 Ohm Widerstand in der MISO Leitung muss der dahin?
> Denn habe ich nämlich nicht an der MISO Leitung.

 Ermöglicht, dass MEGA über ISP programmiert wird.
 Ohne Widerstand würde wahrscheinlich dasselbe passieren was dir jetzt
 auch passiert...

von Rudolph R. (rudolph)


Lesenswert?

Jan H. schrieb:
> TFT mit SD Karte

Welches genau und wie sieht der Schaltplan dazu aus?
Wäre jetzt nicht das erste Mal, dass die Chinesen da Schrott abliefern 
und einen Pegel-Wandler schnitzen der nur ein Gerät am SPI zulässt...

von Jason (Gast)


Lesenswert?

Rudolph R. schrieb:
> Jan H. schrieb:
>> TFT mit SD Karte
>
> Welches genau und wie sieht der Schaltplan dazu aus?
> Wäre jetzt nicht das erste Mal, dass die Chinesen da Schrott abliefern
> und einen Pegel-Wandler schnitzen der nur ein Gerät am SPI zulässt...

Nenne ein paar Beispiele, um deine Behauptung zu untermauern?

von Jan H. (jan_h865)


Lesenswert?

Rudolph R. schrieb:
> Welches genau und wie sieht der Schaltplan dazu aus?
> Wäre jetzt nicht das erste Mal, dass die Chinesen da Schrott abliefern
> und einen Pegel-Wandler schnitzen der nur ein Gerät am SPI zulässt...

Das ist ein QVGA 2.2 TFT SPI 240x320 Display. Die Pegelwandler für 3,3 
Volt habe ich selber gebaut.

Die SD Karte funktioniert ja auch mit dem TFT Display zusammen. Nur wenn 
der ENC28J60 noch bei ist geht die SD karte nicht. Der ENC lässt sich 
ohne Probleme ansprechen reagiert auch auf pings. Und das TFT Display 
was als Benutzeroberfläche dient, funktioniert auch nur die 
Initzalisierung der SD Karte schlägt immer fehl.

lg jan.

von Rudolph R. (rudolph)


Lesenswert?

Jason schrieb:
> Nenne ein paar Beispiele, um deine Behauptung zu untermauern?

Nein, keinen Bock drauf das zu suchen.
Vor ein paar Monaten war hier jemand der ein Problem mit einem bei EBay 
gekauften SD-Modul hatte bei dem wie sich herausstellte die Chinesen 
MISO nicht in Abhängigkeit von CS auf Tristate geschaltet haben.

Jan H. schrieb:
> Das ist ein QVGA 2.2 TFT SPI 240x320 Display. Die Pegelwandler für 3,3
> Volt habe ich selber gebaut.
>
> Die SD Karte funktioniert ja auch mit dem TFT Display zusammen.

Okay, dass das TFT auch am SPI hängt habe ich überlesen.
Geht der MISO auf der Controller-Seite denn in Abhängigkeit der beiden 
CS in Tristate? Ist ja zu vermuten wenn TFT und ENC laufen.

Ein Schaltplan würde übrigens ungemein helfen das stochern im Nebel 
einzudämmen.
Kann ja auf den SPI beschränkt sein, der Ausschnitte sollte dann aber 
vollständig und korrekt sein.

von Jason (Gast)


Lesenswert?

Rudolph R. schrieb:
> Jason schrieb:
>> Nenne ein paar Beispiele, um deine Behauptung zu untermauern?
>
> Nein, keinen Bock drauf das zu suchen.

Hättest du nicht zu schreiben brauchen. Mit ging es nur darum, einen 
Sprüchemacher zu entlarven.

von Jan H. (jan_h865)


Angehängte Dateien:

Lesenswert?

Rudolph R. schrieb:
> Ein Schaltplan würde übrigens ungemein helfen das stochern im Nebel
> einzudämmen.

Klar sorry, ich habe mich mal hingesetzt und ein Schaltplan dafür 
entworfen

Für meine RJ45 Buchse(MagJack) konnte ich keine passende Library finden. 
Habe dann einfach Magjack+/- ctr dran geschrieben

lg Jan.

: Bearbeitet durch User
von Rudolph R. (rudolph)


Angehängte Dateien:

Lesenswert?

Jason schrieb:
>>> Nenne ein paar Beispiele, um deine Behauptung zu untermauern?
>>
>> Nein, keinen Bock drauf das zu suchen.
>
> Hättest du nicht zu schreiben brauchen. Mit ging es nur darum, einen
> Sprüchemacher zu entlarven.

Gähn.
Hier, das erste Modul das ich auf EBay finden konnte wo der Schaltplan 
dabei war:
http://www.ebay.de/itm/3pc-Micro-SD-TF-Memory-Modul-Karte-slot-Kartenadapter-cardreader-Arduino-TE417-/311575381934?hash=item488b5707ae:g:Qa4AAOSwnFZXVZzO

Viel Spass damit am SPI mit dem fest auf GND verdrahtetem OE für MISO.

von holger (Gast)


Lesenswert?

R17 und R18 sind auf der falschen Seite von den 4050
angeschlossen. Am Ausgang bewirken die gar nichts.
Die müssen an den Eingang.

von Jan H. (jan_h865)


Lesenswert?

holger schrieb:
> R17 und R18 sind auf der falschen Seite von den 4050
> angeschlossen. Am Ausgang bewirken die gar nichts.
> Die müssen an den Eingang.

Hi holger.

Danke wusste ich nicht. Die Widerstände kommen dann auf 5V?

von Falk B. (falk)


Lesenswert?

@Jan Hampel (jan_h865)

>Klar sorry, ich habe mich mal hingesetzt und ein Schaltplan dafür
>entworfen

Der ECHTE HEF4050 ist bei 3,3V schnarchlangsam, da sollte man kaum 1 MHz 
SPI-Takt drüber schieben. Der moderne 74HC4050 ist locker Faktor 10 
schneller! Der wird auch meistens eingebaut!

Was soll denn der Mischmasch am SPI? Warum wird dein ENC, der 
anscheinend mit 3,3V betrieben wird, direkt an deinen 5V AVR 
angeschlossen? Sollte der nicht auch wie die SD-Karte am 3,3V SPI NACH 
den Pegelwandlern angeschlossen werden?

Für MISO fehlt ein Pegelwandler von 3,3 auf 5V, 74HCT125 ist dein 
Freund. Wenn dann noch die OE Pins mit dem zugehörigen CS verbunden 
werden, wird das auch was.

von Jan H. (jan_h865)


Lesenswert?

Falk B. schrieb:
> Der ECHTE HEF4050 ist bei 3,3V schnarchlangsam, da sollte man kaum 1 MHz
> SPI-Takt drüber schieben. Der moderne 74HC4050 ist locker Faktor 10
> schneller! Der wird auch meistens eingebaut!

Es ist ein 74HC4050 verbaut.

Falk B. schrieb:
> Warum wird dein ENC, der
> anscheinend mit 3,3V betrieben wird, direkt an deinen 5V AVR
> angeschlossen?

Die Eingänge des ENC28J60 sind 5V Tolerant, die brauchen nicht umbedingt 
ein Pegelwandler.

Falk B. schrieb:
> Für MISO fehlt ein Pegelwandler von 3,3 auf 5V, 74HCT125 ist dein
> Freund.

Soweit wie ich weiß erkennt der Avr 3,3 Volt als High pegel

Falk B. schrieb:
> Wenn dann noch die OE Pins mit dem zugehörigen CS verbunden
> werden, wird das auch was.

Das verstehe ich nicht so ganz

//EDIT 22:34 Was ich aber immer noch nicht so ganz verstehe, die 
initzalsierung der SD Karte schlägt wenn der ENC angeschlossen ist fehl 
also die disk_init(); Funktion. Wenn der ENC nicht angeschlossen ist 
schlägt nix fehl. Irgendwie mysteriös

Lg Jan.

: Bearbeitet durch User
von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Jan H. schrieb:
> //EDIT 22:34 Was ich aber immer noch nicht so ganz verstehe, die
> initzalsierung der SD Karte schlägt wenn der ENC angeschlossen ist fehl
> also die disk_init(); Funktion. Wenn der ENC nicht angeschlossen ist
> schlägt nix fehl. Irgendwie mysteriös

 Antworten lesen und wenigstens versuchen zu verstehen:
Marc V. schrieb:
> Jan H. schrieb:
>> Was macht der 220 Ohm Widerstand in der MISO Leitung muss der dahin?
>> Denn habe ich nämlich nicht an der MISO Leitung.
>
>  Ermöglicht, dass MEGA über ISP programmiert wird.
>  Ohne Widerstand würde wahrscheinlich dasselbe passieren was dir jetzt
>  auch passiert...

 Wenn du keinen Pegelwandler auf MISO hast, dann schaltet der ENC den
 MISO anscheinend nicht auf HiZ bzw. auf Eingang wenn deselektiert.

 Wenn du einen Pegelwandler hast, dann kannst du höchstwahrscheinlich
 die ganze Sache mit mehreren SPI-Modulen gleichzeitig vergessen.

 Aber probiere es erstmal mit einem Widerstand zwischen ENC-MISO und
 AVR-MISO.

von Falk B. (falk)


Lesenswert?

@Jan Hampel (jan_h865)

>> Für MISO fehlt ein Pegelwandler von 3,3 auf 5V, 74HCT125 ist dein
>> Freund.

>Soweit wie ich weiß erkennt der Avr 3,3 Volt als High pegel

NEIN! Damit sind schon viele andere Leute auf's Maul gefallen! Mach es 
einfach richtig!

>> Wenn dann noch die OE Pins mit dem zugehörigen CS verbunden
>> werden, wird das auch was.

>Das verstehe ich nicht so ganz

Das OE vom MISO Pegelwandler gehört an das CS für die SD-Karte. Damit 
ist diese auf MISO inaktiv, wenn sie deselktiert ist.

>//EDIT 22:34 Was ich aber immer noch nicht so ganz verstehe, die
>initzalsierung der SD Karte schlägt wenn der ENC angeschlossen ist fehl
>also die disk_init(); Funktion. Wenn der ENC nicht angeschlossen ist
>schlägt nix fehl. Irgendwie mysteriös

Dann ist das CS vom ENC nicht sauber auf high. IO nicht richtig 
initialisiert?

von Jan H. (jan_h865)


Lesenswert?

Falk B. schrieb:
> NEIN! Damit sind schon viele andere Leute auf's Maul gefallen! Mach es
> einfach richtig!

Aha, okay. Der 74HCT124 hat ja 2 Eingänge und 1 Ausgang. Also würde ich 
jetzt mein CS Signal an denn 1OE Pin anschließen von der SD Karte. Und 
dann die MISO Leitung an 1A und dann mit 1Y auf denn Avr MISO Pin.

http://codeandlife.com/wp-content/uploads/2012/04/74hct125.png

Vcc ist dabei dann 5V an dem Chip?

Kann man auch ein SN74AHCT125N verwenden?

LG Jan.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

@Jan Hampel (jan_h865)

>> NEIN! Damit sind schon viele andere Leute auf's Maul gefallen! Mach es
>> einfach richtig!

>Aha, okay. Der 74HCT124 hat ja 2 Eingänge und 1 Ausgang. Also würde ich

74HCT125! Der hat einen Signaleingang und einen Steuereingang (OE).

>jetzt mein CS Signal an denn 1OE Pin anschließen von der SD Karte. Und
>dann die MISO Leitung an 1A und dann mit 1Y auf denn Avr MISO Pin.

Genau.

>http://codeandlife.com/wp-content/uploads/2012/04/...

>Vcc ist dabei dann 5V an dem Chip?

Ja.

>Kann man auch ein SN74AHCT125N verwenden?

Ja.

Vergiss den Pull-Up am CS Signal nicht, 10k gegen +5V.

Dann kann man den AVR auch ohne Probleme uns sinnlose Längswiderstände 
am SPI programmieren.

https://www.mikrocontroller.net/articles/AVR_In_System_Programmer#ISP-Pins_am_AVR_auch_f.C3.BCr_andere_Zwecke_nutzen

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Falk B. schrieb:
> Dann kann man den AVR auch ohne Probleme uns sinnlose Längswiderstände
> am SPI programmieren.

 Schade, dass ATMEL so einen Genie wie dich nicht beschäftigt.

 Anscheinend arbeiten dort nur Idioten mit sinnlosen Ideen.

von Jan H. (jan_h865)


Angehängte Dateien:

Lesenswert?

Falk B. schrieb:
> Vergiss den Pull-Up am CS Signal nicht, 10k gegen +5V.

Okay. Also kommt je ein Buffer vom 74hct125 an denn ENC und an die SD 
Karte(TFT MISO nicht verbunden - nicht benötigt). Dann 10K Widerstand 
gegen 5V an der CS Leitung und so wie im Schaltbild angeschlossen.


Falk B. schrieb:
>>Soweit wie ich weiß erkennt der Avr 3,3 Volt als High pegel
>
> NEIN! Damit sind schon viele andere Leute auf's Maul gefallen! Mach es
> einfach richtig!

Aber die CS, SCK, und MOSI Leitungen brauchen kein Pegelwandler von 5V 
zu 3.3V

Lg Jan.

von Falk B. (falk)


Lesenswert?

@Jan Hampel (jan_h865)

>Okay. Also kommt je ein Buffer vom 74hct125 an denn ENC und an die SD
>Karte(TFT MISO nicht verbunden - nicht benötigt). Dann 10K Widerstand
>gegen 5V an der CS Leitung und so wie im Schaltbild angeschlossen.

Fast. Das CS zur SD-Card muss noch über den 74HC4050 Pegelwandler 
laufen!

>> NEIN! Damit sind schon viele andere Leute auf's Maul gefallen! Mach es
>> einfach richtig!

>Aber die CS, SCK, und MOSI Leitungen brauchen kein Pegelwandler von 5V
>zu 3.3V

Für die SD-Karte schon! Ich würde auch den ENC an den 3,3V Bus klemmen, 
auch wenn der 5V tolerant ist. Macht die Sache irgendwie einheitlicher.

Zeichne einen vollständigen Schaltplan, dann kann man darüber sinnvoll 
reden. Schaltungslyrik ist selten sinnvoll.

von Jan H. (jan_h865)


Lesenswert?

Falk B. schrieb:
> Fast. Das CS zur SD-Card muss noch über den 74HC4050 Pegelwandler
> laufen!

Okay, ja der 4050 ist hinter dem 10K Widerstand. Habe ich dort aber 
nicht mit eingezeichnet. Die reihen folgende wäre dann so:

1) SD Karten Widerstand gegen 5V
2) Pegelwandler von 5V auf 3V3 fürs SD Karten Signal.(Hinter OE Pin)
3) MISO Signal von der SD karte durch denn 125 jagen
4) MISO Signal vom 125 auf denn AVR(PORTB6 - ATMega644)

Falk B. schrieb:
> Zeichne einen vollständigen Schaltplan

Dieser ist so ziemlich vollständig was mein aktuellen Aufbau betrifft. 
Habe im Schaltplan zeichnen grade mit Eagle noch nicht so viel 
Erfahrungen

Danke dir. Wäre mir morgen/übermorgen mal ein paar Chips davon besorgen.

Lg Jan.

von Falk B. (falk)


Lesenswert?

@Jan Hampel (jan_h865)

>> Fast. Das CS zur SD-Card muss noch über den 74HC4050 Pegelwandler
>> laufen!

>Okay, ja der 4050 ist hinter dem 10K Widerstand.


> Habe ich dort aber
>nicht mit eingezeichnet. Die reihen folgende wäre dann so:

>1) SD Karten Widerstand gegen 5V

Nö, gegen 3,3V.

>2) Pegelwandler von 5V auf 3V3 fürs SD Karten Signal.(Hinter OE Pin)
>3) MISO Signal von der SD karte durch denn 125 jagen
>4) MISO Signal vom 125 auf denn AVR(PORTB6 - ATMega644)

Eben solche Lyrik ist voll für die Katz! SCHALTPLAN!!!

>Falk B. schrieb:
>> Zeichne einen vollständigen Schaltplan

>Dieser ist so ziemlich vollständig was mein aktuellen Aufbau betrifft.

Du willst den ja verändern! Bevor man das tut, zeichnet man einen 
VOLLSTÄNDIGEN, LESBAREN Schaltplan.

>Habe im Schaltplan zeichnen grade mit Eagle noch nicht so viel
>Erfahrungen

Dann hast du JETZT die perfekte Gelegenheit, daran was zu ändern! Go for 
it!


>Danke dir. Wäre mir morgen/übermorgen mal ein paar Chips davon besorgen.

Aber HEUTE solltest und kannst du einen Schaltplan zeichnen.

Schaltplan richtig zeichnen

von Jan H. (jan_h865)


Angehängte Dateien:

Lesenswert?

Falk B. schrieb:
> Nö, gegen 3,3V.

holger schrieb:
> R17 und R18 sind auf der falschen Seite von den 4050
> angeschlossen.

Im meinen jetzigen Schaltplan sind die Pullup Widerstände gegen 3,3 Volt 
gezogen hinter dem 4050. Wenn diese davor aber kommen dann müssen die 
Widerstände doch gegen 5V gezogen werden, denn es kommt ja ein 5V Signal 
vom Avr.

Hier ist nur ein Ausschnitt damit ich weis wie ich das dann im späteren 
Schaltplan zeichnen muss

Falk B. schrieb:
> Aber HEUTE solltest und kannst du einen Schaltplan zeichnen.
>
> Schaltplan richtig zeichnen

Danke

lg jan.

von Falk B. (falk)


Lesenswert?

@Jan Hampel (jan_h865)

>Im meinen jetzigen Schaltplan sind die Pullup Widerstände gegen 3,3 Volt
>gezogen hinter dem 4050. Wenn diese davor aber kommen dann müssen die
>Widerstände doch gegen 5V gezogen werden, denn es kommt ja ein 5V Signal
>vom Avr.

Ja.

>Hier ist nur ein Ausschnitt damit ich weis wie ich das dann im späteren
>Schaltplan zeichnen muss

Ist fast OK. Dein 4050 ist ein 74HC4050, schreib das in deinen 
Schaltplan!!! Denn die beiden IC unterscheiden sich WESENTLICH in der 
Geschwindigkeit! Wenn du einen Porsche hast, nennst du ihn doch auch 
Porsche und nicht nur Automobil.

von Jan H. (jan_h865)


Lesenswert?

Falk B. schrieb:
> Ja.

Okay, hatte mich erst nur verwirrt.

Falk B. schrieb:
> Ist fast OK. Dein 4050 ist ein 74HC4050, schreib das in deinen
> Schaltplan!!! Denn die beiden IC unterscheiden sich WESENTLICH in der
> Geschwindigkeit! Wenn du einen Porsche hast, nennst du ihn doch auch
> Porsche und nicht nur Automobil.

Jo werde ich machen

Danke.

von Jan H. (jan_h865)


Lesenswert?

Jan H. schrieb:
> Dein 4050 ist ein 74HC4050,

Hallo, meine bestellen ICs sind heute von Reichelt angekommen. Ich nun 
auch denn SD Karten IC von ein HEF4050 gegen ein 74HC4050 ausgetauscht. 
Jedoch schlägt mit diesen IC immer die Initialisierung fehl. Die Pegel 
werden richtig von 5V auf 3V3 umgesetzt. Mit dem HCF4050BE funktioniert 
die SD Karte. Das Pinout beim 74hc4050 ist identisch mit dem hcf4050.

Ist der IC zu schnell?

Lg Jan.

von Falk B. (falk)


Lesenswert?

@ Jan Hampel (jan_h865)

>Hallo, meine bestellen ICs sind heute von Reichelt angekommen. Ich nun
>auch denn SD Karten IC von ein HEF4050 gegen ein 74HC4050 ausgetauscht.
>Jedoch schlägt mit diesen IC immer die Initialisierung fehl.

Schlecht.

>Die Pegel
>werden richtig von 5V auf 3V3 umgesetzt.

Gut.

>Mit dem HCF4050BE funktioniert
>die SD Karte. Das Pinout beim 74hc4050 ist identisch mit dem hcf4050.

>Ist der IC zu schnell?

Naja, er ist schon deutlich schneller, vor allem bei 3,3V. 
Möglicherweise hast du ein schlechtes Layout/Leitungsfühung und das 
Taktsignal klingelt, siehe Wellenwiderstand. Zeig mal ein Bild von 
deinem Aufbau.

https://www.mikrocontroller.net/attachment/318645/homeserver.png

In deinem Schaltplan fehlt der WICHTIGE 10K Pull Up Widerstand an 
SD_MISO nach 3,3V. Es fehlt auch der Pegelwandler von 3,3V auf 5V. Wie 
sieht dein Aufbau im Moment WIRKLICH aus?

von grundschüler (Gast)


Lesenswert?

Warum der ganze Aufwand? d0 und d1 sind eh frei. wie oben vorgeschlagen 
separate uart-spi-Schnittstelle und sd-Karte/enc kommen sich nicht mehr 
in die Quere.

von Falk B. (falk)


Lesenswert?

@grundschüler (Gast)

>Warum der ganze Aufwand?

Weil man irgendwann mal aufhören muss, nur mit Workarounds zu arbeiten 
und eine Schaltung solide zum laufen bringen sollte. Denn sonst wird man 
immer nur urban legends produzieren und mit esoterischen Lösungen den 
Mangel an soliden Grundfertigkeiten nur mäßig kompensieren können. Ich 
habe schon mindestens DREI verschiedene Platinen mit SD-Karte + andere 
ICs an einem SPI-Bus zum laufen bekommen, es gab dort keinerlei 
Probleme. Der TFT-Shield vom Arduino hat auch TFT+SD-Karte an einem 
SPI-Bus. Und es gibt noch Dutzende andere Boards, wo das so 
funktioniert. Also geht es auch hier! Der OP muss "nur" mal solide 
arbeiten und die Hinweise umsetzen.

von grundschüler (Gast)


Lesenswert?

Falk B. schrieb:
> eine Schaltung solide zum laufen bringen

mit Pegelwandlern? Die Megas haben zwei vollwertige spi-Schnittstellen. 
Die zu nutzen ist keine Esoterik.

von Jan H. (jan_h865)


Angehängte Dateien:

Lesenswert?

Falk B. schrieb:
> In deinem Schaltplan fehlt der WICHTIGE 10K Pull Up Widerstand an
> SD_MISO nach 3,3V. Es fehlt auch der Pegelwandler von 3,3V auf 5V. Wie
> sieht dein Aufbau im Moment WIRKLICH aus?

Dieser MISO Pullup Widerstand nach 3,3 Volt ist bereits auf dem Display 
verlötet worden.

Falk B. schrieb:
> Zeig mal ein Bild von
> deinem Aufbau.

Klar, wenn es hilft.

Ich musst das leider mit der SCK leitung mit Kabeln lösen. Da ich mich 
damals beim bauen vertan mit dem Platz habe.

Der 74HC4050 funktioniert am TFT Display ohne Probleme.

Wahrscheinlich werde ich heute oder morgen ein neue Apdater Platine 
basteln. Diese wahr als Arduino Shield gedacht

Lg Jan.

von Helmut L. (helmi1)


Lesenswert?

grundschüler schrieb:
> Die Megas haben zwei vollwertige spi-Schnittstellen.
> Die zu nutzen ist keine Esoterik.

Vor allem Dingen, es gibt kein Geld zurueck fuer nicht genutzte 
Hardware.
Ausserdem kann man dann gleichzeitig auf Display u. Karte zugreifen.

von Falk B. (falk)


Lesenswert?

@grundschüler (Gast)

>> eine Schaltung solide zum laufen bringen

>mit Pegelwandlern?

JA! Ist das ein Problem für dich?

> Die Megas haben zwei vollwertige spi-Schnittstellen.
>Die zu nutzen ist keine Esoterik.

Die brauchen aber auch Pegelwandler, wenn der AVR mit 5V läuft! Und nun?

von Falk B. (falk)


Lesenswert?

@Helmut Lenzen (helmi1)

>> Die Megas haben zwei vollwertige spi-Schnittstellen.
>> Die zu nutzen ist keine Esoterik.

>Vor allem Dingen, es gibt kein Geld zurueck fuer nicht genutzte
>Hardware.

Bla! Aber es gibt Lobeshymnen für schlechtes Design?

>Ausserdem kann man dann gleichzeitig auf Display u. Karte zugreifen.

Theoretisch ja, praktisch kaum. Denn dazu bräuchte man eine SD-Lib, 
welche NICHT bis zum Ende diverser Dateioperationen die CPU benötigt 
(präemtives Multitaking), davon gibt es verdammt wenige. Und der OP ist 
damit auch überfordert. Allso mal wieder alles nur akademische 
Argumente, nur damit die Schaltung nicht aufgeräumt wird? Leute gibt's . 
. .

von Falk B. (falk)


Lesenswert?

@Jan Hampel (jan_h865)

>Dieser MISO Pullup Widerstand nach 3,3 Volt ist bereits auf dem Display
>verlötet worden.

OK.

>> Zeig mal ein Bild von
>> deinem Aufbau.

>Klar, wenn es hilft.

PATSCH

Und schon hast du dir eine virtuelle Ohrfeige eingefangen! Wo ist der 
verdammte Entkoppelkondensator für den Pegelwandler?

https://www.mikrocontroller.net/articles/Kondensator#Entkoppelkondensator

>Ich musst das leider mit der SCK leitung mit Kabeln lösen. Da ich mich
>damals beim bauen vertan mit dem Platz habe.

Hmm, da könnte ein Problem in der Masseführung drinstecken, das sieht 
man auf die Schnelle aber nicht. Markiere mal die gesammte Masse auf der 
Unterseite.

>Der 74HC4050 funktioniert am TFT Display ohne Probleme.

Das ist halt deutlich unempfindlicher gegen ein gestörtes SCK SIgnal.

von Jan H. (jan_h865)


Angehängte Dateien:

Lesenswert?

Falk B. schrieb:
> Und schon hast du dir eine virtuelle Ohrfeige eingefangen! Wo ist der
> verdammte Entkoppelkondensator für den Pegelwandler?

reichen 100 nF?

Falk B. schrieb:
> Hmm, da könnte ein Problem in der Masseführung drinstecken, das sieht
> man auf die Schnelle aber nicht. Markiere mal die gesammte Masse auf der
> Unterseite.

Ok.

Das SCK Signal geht knapp über einer GND Leitung her. Berührt diese aber 
nicht. An diesen Teil ist das Kabel nicht isoliert.

Zum 74HCT125: An denn OE Pin kommt die CS Leitung mit einen 10K Pullup 
nach 5V. Danach geht die CS Leitung auf SD_CS. Die MISO Leitung von der 
SD Karte geht auf denn 2 Pin des 125 und vom dritten Pin geht es dann 
zum MISO Pin des AVR's. Wie in mein Schaltbild Schnippels gezeigt oben. 
Jedoch sagt die SD Karte beim alten HCF4050BE "Disk Error FRESULT Code 
1"

Vcc ist bei dem Chip 5V

Falsch angeschlossen?

Lg Jan.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

@Jan Hampel (jan_h865)

>> Und schon hast du dir eine virtuelle Ohrfeige eingefangen! Wo ist der
>> verdammte Entkoppelkondensator für den Pegelwandler?

>reichen 100 nF?

Vorerst schon.

>> man auf die Schnelle aber nicht. Markiere mal die gesammte Masse auf der
>> Unterseite.

>Ok.


>Das SCK Signal geht knapp über einer GND Leitung her. Berührt diese aber
>nicht. An diesen Teil ist das Kabel nicht isoliert.

Nichtg schön, sollte abwr gehen.

>Zum 74HCT125: An denn OE Pin kommt die CS Leitung mit einen 10K Pullup
>nach 5V. Danach geht die CS Leitung auf SD_CS.

Vorher auf den Pegelwandler! Schaltplan!


> Die MISO Leitung von der
>SD Karte geht auf denn 2 Pin des 125 und vom dritten Pin geht es dann
>zum MISO Pin des AVR's. Wie in mein Schaltbild Schnippels gezeigt oben.

Ja.

>Jedoch sagt die SD Karte beim alten HCF4050BE "Disk Error FRESULT Code
>1"

>Vcc ist bei dem Chip 5V

>Falsch angeschlossen?

Wahrscheinlich. VCC/GND angeschlossen? Entkoppelkondensator?

von grundschüler (Gast)


Lesenswert?

Falk B. schrieb:
> Die brauchen aber auch Pegelwandler, wenn der AVR mit 5V läuft! Und nun?

Mega bis 8Mhz läuft mit 3,3 V schnell genug und braucht dann keinen 
Pegelwandler.

von Jan H. (jan_h865)


Angehängte Dateien:

Lesenswert?

Falk B. schrieb:
> Vorher auf den Pegelwandler! Schaltplan!

Okay. Also doch denn Pullup Widerstand auf 3,3V. Ich werde mich morgen 
mal hinsetzten und ein Board basteln für tft und sd. So das ich alles 
ohne Kabel verlöteten kann. Dann kommt auch der Pegelwandler und hct125 
direkt mit drauf. Hier ist mal der Schaltplan.

Lg Jan.

von holger (Gast)


Lesenswert?

Die 10k Pullups an den Ausgängen der 4050 sind schon
wieder Müll. Die gehören an die Eingänge.

von Jan H. (jan_h865)


Angehängte Dateien:

Lesenswert?

Falk B. schrieb:
>>Zum 74HCT125: An denn OE Pin kommt die CS Leitung mit einen 10K Pullup
>>nach 5V. Danach geht die CS Leitung auf SD_CS.
>
> Vorher auf den Pegelwandler! Schaltplan!

holger schrieb:
> Die 10k Pullups an den Ausgängen der 4050 sind schon
> wieder Müll. Die gehören an die Eingänge.

Vorher auf den Pegelwandler, damit ist denk ich gemeint das erst der 
Wandler kommt dann der Pullup Widerstand

@holger
Ist bearbeitet wäre das so nun richtig?

Lg Jan.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

@Jan Hampel (jan_h865)

>Vorher auf den Pegelwandler, damit ist denk ich gemeint das erst der
>Wandler kommt dann der Pullup Widerstand

Ohje.

Schaltplan richtig zeichnen

Das Geschmiere oben am Spannungsregler ist grausam.

IC2A Pin 1 gehört an IC1F Pin 14, auch wenn es so auch funktioniert. 
Wozu D1? Dort kommen 5V rein, die will man nicht um 0,7V senken.

Der Rest ist soweit OK.

von Jan H. (jan_h865)


Lesenswert?

Falk B. schrieb:
> Ohje.
>
> Schaltplan richtig zeichnen

Sorry, bin noch dabei.

Falk B. schrieb:
> Der Rest ist soweit OK.

Du beziehst dich auf denn zweiten Schaltplan richtig? Also mit denn 
Widerständen vor den Pegelwandlern

Lg Jan.

von Falk B. (falk)


Lesenswert?

Ja

von Jan H. (jan_h865)


Lesenswert?

Falk B. schrieb:
> Ja

Okay super dank dir

@holger
Dank dir auch

Werde morgen nach dem zweiten Schaltplan(HCT125 gefixt) ein neues Board 
bauen. Werde dann mal posten ob es dann so funktioniert.

Lg Jan.

von Jan H. (jan_h865)


Lesenswert?

Jan H. schrieb:
> Werde dann mal posten ob es dann so funktioniert.

Hallo nochmal,

Ich habe nun mein neues Board fertig mit dem 74HC4050 und 74HCT125. Die 
Ansteuerung des Displays und der SD Karte funktioniert auch. Was mir auf 
gefallen ist beim Lesen des Freien Speichers(8GB Karte) brauchte der 
74HC4050 circa 3 Sekunden weniger als der HEF4050.

Ich kann nun die SD Karte lesen und gleichzeitig denn ENC laufen lassen. 
Da gibt es jedoch noch einen Haken, ich initialisiere erst die SD Karte 
und lese dann denn Freien Speicher aus. Geht ohne Probleme. Dann 
initialisiere ich denn ENC28J60. Danach öffne ich kurz eine Datei und 
Schließe sie wieder -> Kein Fehler.

Danach geht der Code in die Dauerschleife über. Wo dauerhaft geprüft 
wird ob der ENC28J60 angesprochen wird(IP Adresse im Browser oder 
angepingt). Ich starte mit Windows ein ping XXX -t.

Vordem Init des ENC28J60 reagiert er nicht ist auch richtig. Ab dem 
Punkt wo der in der Dauerschleife ist reagiert er. Und Antwortet auf 
denn Ping mit <1ms. Nach 15 Sekunden öffne und schließe ich wieder die 
gleiche Datei auf der SD karte. Jedoch bleibt der ENC28J60 an der stelle 
hängen(Zeitüberschreitung). SD Karte führt die Aufgabe erfolgreich aus 
ohne ein Fehler.

Könnte es daran liegen das der ENC28J60 wenn in der Dauerschleife prüft. 
Und wenn ich dort die SD Karte anspreche, das kurz beide CS Leitungen 
auf LOW sind? Und er sich dadurch aufhängt.

Andernfalls spreche ich das TFT Display ja auch während der 
Dauerschleife über ein Overflow Timer(Benutzeroberfläche) an, und dort 
hängt der ENC ja sich auch nicht auf.

Der ENC28J60 hat kein Pegelwandler. Und auch kein 74HCT125.

Lg Jan.

von Falk B. (falk)


Lesenswert?

@ Jan Hampel (jan_h865)

>Ich habe nun mein neues Board fertig mit dem 74HC4050 und 74HCT125. Die
>Ansteuerung des Displays und der SD Karte funktioniert auch.

HALLELUJA!!!

> Was mir auf
>gefallen ist beim Lesen des Freien Speichers(8GB Karte) brauchte der
>74HC4050 circa 3 Sekunden weniger als der HEF4050.

Das sollte eher nicht so sein. Denn wenn gleich beide ICs 
unterschiedlich schnell sind, so bestimmt der uC den SPI-Takt.

>Ich kann nun die SD Karte lesen und gleichzeitig denn ENC laufen lassen.

TATA!!!!

>gleiche Datei auf der SD karte. Jedoch bleibt der ENC28J60 an der stelle
>hängen(Zeitüberschreitung). SD Karte führt die Aufgabe erfolgreich aus
>ohne ein Fehler.

Dann hast du wohl einen Fehler im Programm.

>Könnte es daran liegen das der ENC28J60 wenn in der Dauerschleife prüft.
>Und wenn ich dort die SD Karte anspreche, das kurz beide CS Leitungen
>auf LOW sind?

Ist das eine Vermutung oder weißt du sicher, daß irgendwann die beiden 
CS gleichzeitig auf LOW sind. Das darf denfinitv NICHT sein!

> Und er sich dadurch aufhängt.

>Andernfalls spreche ich das TFT Display ja auch während der
>Dauerschleife über ein Overflow Timer(Benutzeroberfläche) an, und dort
>hängt der ENC ja sich auch nicht auf.

AUA!!! Das geht schief!!! Deine Interrupts können jederzeit aktiv 
werden. Wenn währenddessen gerade ein SD-Kartenzugriff läuft, krachts!

Das mindestes was du tun musst, ist in deinem Interrupt zu prüfen, ob 
das gerade ein aktiver Zugriff auf deine SD-Karte im Hauptprogramm 
erfolgt.
Dazu reich es aber NICHT, einfach das IO-Bit für das SD-CS rückzulesen! 
Denn eine Besonderheit der SD-Karte ist es, daß sie NACH dem 
Deaktivieren von CS noch ein paar Takte braucht, um MISO wieder 
freizugeben. Du braucht ein Flag, das einen SD-Zugriff signalisiert, das 
muss man auswerten. Etwa so.

1
volatile flagSDaccess;
2
3
...
4
5
flagSDaccess = 1;
6
7
// mach was mit der SD-Karte
8
9
flagSDaccess = 0;
10
11
ISR(whatever) {
12
13
14
  if (!flagSDaccess) {
15
    // nur hier darf auf das TFT zugegriffen werden
16
  }
17
}

Wenn man in den Interrupts keinerlei Zugriffe auf SD oder TFT macht, 
braucht man das nicht. Dann kann man mit den normalen Funktionen im 
Hauptprogramm arbeiten, ohne gegenseitige Prüfung. Denn am Ende JEDER 
SD- bzw. TFT Funktion ist das jeweilige CS Signal wieder high.

>Der ENC28J60 hat kein Pegelwandler. Und auch kein 74HCT125.

Du hast es IMMER noch nicht verstanden!!!

Der ENC ist zwar 5V tolerant, d.h. man kann 5V an dessen Eingänge 
anlegen, ohne daß es zu negativen Effekten kommen, aber dessen MISO 
Ausgang liefert nur 3,3V!!! Das ist als HIGH für einen AVR mit 5V zu 
knapp!! Der will offiziell min. 3,5V sehen (0,7*VCC). Also tu dir den 
Gefallen und verpass auch dem ENC einen Pegelwandler für MISO!!! Dann 
ist das SICHER und stabil! In dem IC sind schließlich 4 Stück drin und 
für unbenutzte Gatter gibt es kein Geld zurück!

von Rudolph R. (rudolph)


Lesenswert?

Falk B. schrieb:
> aber dessen MISO Ausgang liefert nur 3,3V!!!
> Das ist als HIGH für einen AVR mit 5V zu
> knapp!! Der will offiziell min. 3,5V sehen (0,7*VCC).

Mindestens der hier benutzte M644 braucht bei 5V Versorgung mindestens 
0,6*VCC um High zu erkennen, das wären 3,0V.

Falk B. schrieb:
> Also tu dir den Gefallen und verpass auch dem ENC einen Pegelwandler
> für MISO!!! Dann ist das SICHER und stabil!

Dem stimmt ich dennoch voll zu, auch wenn eben noch "drin" sind 0,3V 
etwas knapp.

von Jan H. (jan_h865)


Lesenswert?

Falk B. schrieb:
> AUA!!! Das geht schief!!!

Ich habe grade nochmal mein Code geprüft. Es ist doch nicht so. Also die 
Benutzeroberfläche wird mit 5 Buttons gesteuert(OK, LEFT, RIGHT, UP, 
DOWN). Da ich die _delay_ms() Funktion nicht nutzen um eine kurze Pause 
zwischen denn Knopf drücken.

Also ich frage ob ein Knopf gedrückt wurde falls ja wird ein Counter bis 
250 hochgezählt(250 ms Wartezeit) dann wirt ein Boolean auf True gesetzt 
das wieder ein Knopf gedrückt werden kann. Und der Counter zurück auf 
null.

In der Dauerschleife frage ich dann die Buttons ab. Dort steht dann halt 
am Anfang drin if(nextButton) { //Button Funktion und nextButton = 
false}; Dann kann man für die nächsten 250ms kein Button drücken und die 
ISR setzt denn Boolean wieder auf false nach 250ms.

Falk B. schrieb:
> Gefallen und verpass auch dem ENC einen Pegelwandler für MISO

Ist.

Falk B. schrieb:
> Jedoch bleibt der ENC28J60 an der stelle
>>hängen(Zeitüberschreitung)

Das muss ich mal beobachten. Denn zurzeit ist dieser Fehler nicht mehr 
da.


Lg Jan.

von Falk B. (falk)


Lesenswert?

@Jan Hampel (jan_h865)

>> AUA!!! Das geht schief!!!

>Ich habe grade nochmal mein Code geprüft. Es ist doch nicht so. Also die
>Benutzeroberfläche wird mit 5 Buttons gesteuert(OK, LEFT, RIGHT, UP,
>DOWN). Da ich die _delay_ms() Funktion nicht nutzen um eine kurze Pause
>zwischen denn Knopf drücken.

>Also ich frage ob ein Knopf gedrückt wurde falls ja wird ein Counter bis
>250 hochgezählt(250 ms Wartezeit) dann wirt ein Boolean auf True gesetzt
>das wieder ein Knopf gedrückt werden kann. Und der Counter zurück auf
>null.

Glaubst du, daß ein AUßENSTEHENDER, welcher nicht neben dir sitzt und 
den Code sieht, damit großartig was anfangen kann?

https://www.mikrocontroller.net/articles/Netiquette#Klare_Beschreibung_des_Problems

>false}; Dann kann man für die nächsten 250ms kein Button drücken und die
>ISR setzt denn Boolean wieder auf false nach 250ms.

Die Frage ist schlicht und ergreifend, ob du in einer ISR einen SD, TFT 
oder ENC Zugriff machst oder nicht. Wenn nein, dann finden alle Zugriffe 
im Hauptprogramm statt und wenn deine Funktionen fehlerfrei sind, wird 
auch das entsprechende CS am Ende der Funktion wieder HIGH. Wenn nicht, 
siehe mein vorheriger Beitrag.

>> Gefallen und verpass auch dem ENC einen Pegelwandler für MISO

>Ist.

Gut.

>> Jedoch bleibt der ENC28J60 an der stelle
>>>hängen(Zeitüberschreitung)

>Das muss ich mal beobachten. Denn zurzeit ist dieser Fehler nicht mehr
>da.

Möglicherweise war es ein Problem mit dem fehlenden Pegelwandler, beim 
Lesezugriff kammen durch Störsignale soradisch falsche Daten im AVR an 
und die Software hat Unsinn gemacht. Möglicherweise ist der Fehler aber 
noch drin, tritt aber nur sporadisch auf. Siehe

https://www.mikrocontroller.net/articles/Fehlersuche#Allgemeine_Hinweise

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.