www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI Speicher AMIC A25L40P


Autor: Stefan M. (stefan1991)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Allerseits!

Ich habe ein Problem.
Und zwar habe ich einen uC LPC935, mit diesem möchte ich einen SPI 
Speicher AMIC A25L40P ansteuern.

Im Anhang ist die Schaltung die ich verwende.
Datenblatt des Speichers hier:

http://www.farnell.com/datasheets/34130.pdf

Datenblatt des Sticks hier:

http://www.humerboard.at/produkte/nlb_nxp/NLB_LPC935.pdf

Mein Problem ist, dass es einmal funktioniert hat Daten in den Speicher 
zu schreiben und dann auszulesen.

Dann habe ich das Programm erweitern wollen und ein paar mal die 
Versorgung des Speichers ausgesteckt und nochmal eingesteckt bzw. ein 
paar mal mit den Fingern draufgegriffen.

Meine 1. Frage ist jetzt, kann ich den Speicher dadurch zerstört haben?

Mein Problem ist nämlich, dass ich beim 2. auslesen des Registers einen 
Falschen Wert zurückbekomme (7, statt 4)

Dadurch hänge ich in der Schleife in der ich das WIP (Write in Process 
Bit) abfrage und komme nie zum auslesen des Wertes.

Durch Lesen des Datenblattes habe ich dann bemerkt, dass das Bit ein 
Block Protect bit ist. (1ter Block , adressen ganz unten )
Dann habe ich in den Nächsthöheren Block geschrieben und beim Register 
lesen den Wert 6 zurückbekommen und einen falschen Wert beim auslesen 
der Daten.

Mein Verwendeter Code ist angehängt.

Hoffe, dass Ihr mir helfen könnt, wäre euch sehr dankbar

MfG Stefan M.

Autor: Pete K. (pete77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es fehlen die Abblockkondensatoren.

Autor: Stefan M. (stefan1991)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey

Danke für die Antwort aber ich habe wieder eine Frage :)

Was bzw. wo und mit welchem Wert braucht man die?

Ich habe solche noch nie verwendet, ich hoffe die Frage kommt jetzt 
nicht zu blöd rüber.

MfG

Mörth Stefan

Autor: Stefan M. (stefan1991)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So....

Ich habe jetzt die Abblockkondensatoren eingebaut und es funktioniert 
leider immer noch nicht :(

Es ist weiterhin so, dass ich beim 2ten mal auslesen des Registers
einen falschen Wert bekomme und dadurch in meiner

do

while

schleife festhänge...

Könnte es sein, dass ich einen Software Fehler habe oder weiß einer
warum das so sein könnte?

Wäre über Tipps sehr dankbar.

MfG

Stefan M.

Autor: Daniel V. (danvet)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm.. ist schwierig.
Überprüfe die Verwendung von SPSTAT und SPDAT. Stimmen deine 
While-Abfragen bezüglich dieser Variablen?
Mach das ganze mal ohne Interrupt.
Ich habe hier zwei Speicherchips (AT45DB32) über SPI laufen und es 
funktioniert einwandfrei.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.