Speicher beschreiben schlägt fehl

OP Persönliche Seite #3290231
Lesenswert?

Hallo an alle,

wie aus meinem gestrigen Posting zu erahnen, arbeite ich immer noch an 
der Ansteuerung eines Flash-Speichers. AMIC A29040l-70.

Datenblatt:
http://pdf1.alldatasheet.com/datasheet-pdf/view/55589/AMICC/A29040L-70.html

Lesen klappt soweit wunderbar, Verkabelung zum Mikrocontroller(Arduino 
Mega 2560, also ATMega 2560) alles in Ordnung und überprüft. Der Fehler 
liegt in meinem Programmtext, ich blicke mit den Comand Sequences und 
dem Write Befehl, insbesondere dem Chip Erase, an das ich mich als 
erstes herangewagt habe, nicht klar :/
 Hier seht ihr meinen Versuch, einen Chip Erase durchzuführen, im 
Anhang. Stellenweise war sogar ein teil des ersten Sektors schön mit 
"1"en gefüllt, aber jetzt funktioniert gar nichts mehr. Vielleicht liegt 
es am Timing, aber so vermurkst kann es ja gar nicht sein, wenn es 
zumindest partiell funktioniert (hat). Könntet ihr bitte einmal als 
Experten den Programmcode durchsehen und mir sagen, warum es nicht 
klappt?

Schonmal Danke, freue mich über jeden konstruktiven Beitrag :)
Angehängte Dateien:
Gast #3290498
Lesenswert?

Hast Du den AMIC direkt am µC angeschlossen? Der AMIC braucht zum 
Schreiben/Löschen 30mA, zum Lesen nur 20mA. Der AVR liefert nur 20mA.

Wie schnell kommen denn die Befehle aus dem AVR? Bist Du vllt. zu 
schnell: Noise pulses of less than 5ns (typical) on OE,CE or WE do not 
initiate a write cycle.
OP Persönliche Seite #3290559
Lesenswert?

Die Adress-, Steuer- und Datenleitungen liegen direkt an dein uC Ein-, 
bzw. Ausgängen. Die Spannungsversorgung ist jedoch extern über einen 
Spannungsregler, da sollte es kaum Probleme geben, der wird dadurch kaum 
ausgelastet.
Hm, ich dachte, da ein Takt 62ns bei 16Mhz dauert, und "digitalWrite" in 
dieser IDE in mindestens 3,4 Befehle kompiliert wird, dass das kein 
Problem darstellen wird.
Gast #3291743
Lesenswert?

Beitrag "M32 Bascom Programm zum Beschreiben von AM29F040 Flash"
http://www.mikrocontroller.net/attachment/18571/f040test.bas

Ein Beisiel in BASCOM zum Lesen/Schreiben und Löschen eines AM29F040. 
Solltest Dich zurechtfinden.


Zu Deinem Code:
1
// Zum allgemeinen Aufrufen einer Command Sequence muss WE und CE auf Logic-Low und OE auf Logic-High liegen
2
  digitalWrite(CE, LOW);
3
  digitalWrite(WE, LOW); // WE High?
4
  digitalWrite(OE, HIGH);
5
  //delay?
6
  
7
  // First Cycle
8
  digitalWrite(WE, HIGH);

Warum setzt Du WE wieder auf HIGH?

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