EEprom auslesen mit ATmega32u4

OP Gast #5179895
Lesenswert?

Hallo, ich brauche im Rahmen meiner Diplomarbeit einen EEprom um 
verschiederne Daten von Sensoren zu speichern.

Dabei verwende ich einen µC ATmega32U4 und einen EEprom 24AA1026 mit 1MB 
Speicher.
--> Datenblatt: 
http://docs-europe.electrocomponents.com/webdocs/137d/0900766b8137db20.pdf

Beschaltung des EEproms:
Pin 1 - Pin 4 wurden auf GND geschalten
Pin 5 Datenleitung inkl. 3k9 PullUp
Pin 6 Clock inkl. 3k9 PullUp (100kHz)
Pin 7 GND
Pin 8 Vcc

Das schreiben von Bytes sollte grundsätzlich funktionieren, aber kann 
dies nur bedingt überprüfen, da ich es bis jetzt noch nicht geschafft 
habe Bytes auszulesen.
Wenn ich versuche ein Byte auszulesen kommt immer der Wert 255 zurück, 
egal welche Word Adresse ich abfrage..

Im Anhang befinden sich die main.c und die EEprom.h, welche ich selbst 
geschrieben habe.

Um die Werte auszugeben habe ich ein LCD verwendet.

Vllt findet wer den Fehler bzw. kann mit weiter helfen :d

Danke im Vorraus
Angehängte Dateien:
Gast #5179915
Lesenswert?

Florian F. schrieb:
> Das schreiben von Bytes sollte grundsätzlich funktionieren, aber kann
> dies nur bedingt überprüfen, da ich es bis jetzt noch nicht geschafft
> habe Bytes auszulesen.

"Sollte" ist bei soetwas sehr vage.

Bekommst du vom EEPROM ein Ack auf dem Bus?
Wenn 'ja', dann kann man weiter sehen.
OP Gast #5179928
Lesenswert?

Wolfgang schrieb:
> Florian F. schrieb:
>> Das schreiben von Bytes sollte grundsätzlich funktionieren, aber kann
>> dies nur bedingt überprüfen, da ich es bis jetzt noch nicht geschafft
>> habe Bytes auszulesen.
>
> "Sollte" ist bei soetwas sehr vage.
>
> Bekommst du vom EEPROM ein Ack auf dem Bus?
> Wenn 'ja', dann kann man weiter sehen.

Ja ich bekomme ein ACK zurück, deshalb bin ich davon ausgegangen, dass 
die write Funktion funktioniert.
OP Gast #5180878
Lesenswert?

Stefan E. schrieb:
> Florian F. schrieb:
>> Ja ich bekomme ein ACK zurück, deshalb bin ich davon ausgegangen, dass
>> die write Funktion funktioniert.
>
> Woher weißt du das? Ich sehe im Lese- bzw. Schreib-Code keinen einzigen
> Zugriff auf TWSR.
>
> Davon abgesehen, die ganzen |= bei den TWCR-Zugriffen sind Quatsch. So
> wird z.B. TWSTA in deinem Code nicht wieder zurückgesetzt.

Danke für deine Hilfe, es ist an den ganzen |= gelegen :D!
#5180900
Lesenswert?

Der ganze Code ist auch irrend wie Murks. Denn will niemand benutzen ;).

Versuche vernünftige read und write Funktionen zu programmieren. 
Vorallen unter dem Aspekt wie man solche Speicher organisiert.

Sonst sind das nicht die einzigen Probleme die Auftauchen, für ein 
Stadium der Diplom Arbeit ist der Code schon sehr dürftig ;). Da er die 
Prinzipien wie erwähnt gar nicht berücksichtigt. Die Struktur ist auch 
... naja ...
OP Gast #5180903
Lesenswert?

Marco H. schrieb:
> Der ganze Code ist auch irrend wie Murks. Denn will niemand benutzen ;).
>
> Versuche vernünftige read und write Funktionen zu programmieren.
> Vorallen unter dem Aspekt wie man solche Speicher organisiert.
>
> Sonst sind das nicht die einzigen Probleme die Auftauchen, für ein
> Stadium der Diplom Arbeit ist der Code schon sehr dürftig ;). Da er die
> Prinzipien wie erwähnt gar nicht berücksichtigt.

Ja ich weiß, der Code dient rein für Testzwecke :D
#5180914
Lesenswert?

Naja glaube ich nicht da du den unterschied zwischen header Dateien usw. 
und was der Compiler daraus macht nicht verstanden hast. Auch C nicht ? 
Du backst dir irgend etwas zusammen und verstehst es nicht. So hat es 
den Anschein, für ein Bildungsprojekt finde ich das den falschen Ansatz. 
Kein Wunder das der BER nie aufmacht ...

Das dumme ist nur durch herum Probieren kommt man ganz selten zum Ziel. 
Da muss man sich eben um Literatur bemühen.

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