Forum: Mikrocontroller und Digitale Elektronik SPI Speicher AMIC A25L40P


von Stefan M. (stefan1991)


Angehängte Dateien:

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.

von Pete K. (pete77)


Lesenswert?

Es fehlen die Abblockkondensatoren.

von Stefan M. (stefan1991)


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

von Stefan M. (stefan1991)


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.

von Daniel V. (danvet)


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.

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.