EEPROM per SPI lesen!

Gast #51850
Ich bin daran, das EEPROM AT25256 von Atmel über die SPI (Hardware)
Schnittstelle anzusprechen!

Meine Frage ist:

Wie kann ich das Byte vom EEPROM lesen!
Muss man dann der uC (8515) als Slave initialisieren?

Jetzt habe ich es so gemacht:

1. CS Leitung LOW
2. Read OP-Code übermitteln
3. High Adresse übermitteln
4. Low Adresse übermitteln
5. -> Jetzt will ich den Wert vom EEPROM lesen!

das habe ich so realisiert:

variable = SPDR;
while (!(SPSR & (1<<SPIF)));   // warten bis SPI übermittlung komplett

Leider funktioniert es so nicht!


Hab ich da etwas völlig falsch gemacht?

THANKS





PS: Ein DA  - Wandler konnte ich ohne Problem ansteuern...
Gast
Was soll "funktioniert nicht" heissen? Könntest du das Problem mal
besser beschreiben? Kriegst du gar nichts oder geht es um die falschen
Werte?
Gast
Also wenn ich das richtig verstehe, sollten, sobald ich vom SPDR
Register lese, 8 Takte am SCLK PIN kommen! Diese kann ich nicht
anschauen!

Leider kann ich nicht sagen, ob die Schreibe- bzw. Leseroutine für das
EEPROM läuft oder nicht!

Das ist ja das blöde! Ich kann es gar nicht kontrollieren, ausser das
Übermittlungsprotokoll mit dem Osziloskop aufzuzeichen!

Im Anhang noch mein Code!
Angehängte Dateien:
Gast
Der Controller läuft doch als Master, also soll der Controller diese 8
Takte erzeugen. Wenn du keine Takte hast, dann kannst du nichts
auslesen, ist ja logisch. Wie es bei dem eingebauten SPI geht weiß ich
nicht so gut, aber ich habe mit den EEPROM's gearbeitet, kann dir ein
Paar Proceduren schicken. Das Problem ist daran, dass die in Assembler
sind
Gast
Ich möchte es mit dem eingebauten SPI machen!

stimmt es, dass der Master, sobald ich die Zeile:


variable = SPDR;


schreibe, sofort 8 Takte erzeugt und danach der Wert in Variable ist!

Oder wie muss ich vom SPDR - Register Daten lesen????

Ich denke, dort mach ich den Fehler!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 23 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.