Hi! Ich möchte mit einem Arduino UNO einen AT28C256 EEPROM programmieren. Mein Grundlegender Aufbau ist der folgenden. EEPROm Pins: Chip Enable: geerdet Output Enable: mit einem Digitalpin des Arduino verbunden. Write Enable: mit einem Digitalpin des Arduino verbunden. Addresspins: über 2 CD4015 Schieberegister mit dem Arduino verbunden (ja, die haben keinen Latch, dürfte aber mit meinem code theoretisch kein Problem darstellen) IO Pins: Direkt an Arduino Digitalpins. Auf meinem Arduino läuft der angehängte Sketch, welcher versucht, eine Adresse zu beschreiben. Was leider nicht klappt: Wenn man die gerade beschriebene Adresse direkt danach liest, bekommt man nur ff zurück. Ich hab alle Teile des Aufbaus gründlich getestet: An den Adresspins wird die richtige Adresse eingestellt, Output und Write Enable können gesteuert werden und die Digitalpins, die zu den IO Pins führen, werden richtig eingestellt. Trotzdem wird der EEPROM nicht beschrieben und ich kann das Problem einfach nicht finden. Wäre super wenn jemand von euch mit ein bisschen mehr Ahnung mir helfen könnte :) PS: Hab gelesen, dass es möhlicherweise an SDP liegen könnte und versucht, diese abzuschalten - ohne Erfolg EDIT: Bin bei meinem Aufbau so ungefähr diesem Video gefolgt: https://www.youtube.com/watch?v=K88pgWhEb1M
:
Bearbeitet durch User
Moritz T. schrieb: > Chip Enable: geerdet Geht das bei dem? Ich kenne das so, dass das im Datenblatt als eigenes Diagramm angegeben ist. Habe ich bei dem nicht gefunden.
Moritz T. schrieb: > Wäre super wenn jemand von euch > mit ein bisschen mehr Ahnung mir helfen könnte Wäre super wenn du durch einen klaren Schaltplan uns Klarheit in deinen "Versuchsaufbau" bringen könntest. Mit Schaltplan ist auch Schaltplan gemeint, nicht Foto vom Aufbau oder Ähnliches.
Moritz T. schrieb: > Chip Enable: geerdet das gibt das Datenblatt aber nicht her! Ich habe bei 28Cxxx noch nie CE auf GND gesehen. Den einen Pin wirst du noch freihaben und das Timing einhalten können. Ich denke dir spucken Interrupts dazwischen, ggffs. mal ein Cli(); und Sei(); einbauen beim Schieben.
Ganz klar, für Single Write gibt es zwei Möglichkeiten und beide Modi beinhalten die Betätigung des CE. RTFM (und nicht irgendwas anderes aus dem Internet)
Joachim B. schrieb: > Ich habe bei 28Cxxx noch nie CE auf GND gesehen. Geht aber, erhöht nur etwas den Stromverbrauch. tCS ist nur eine Minimalzeit, /CS darf also schon unendlich auf low sein. /CS muß man nur bei Speichern mit Adreßlatch takten.
Peter D. schrieb: > /CS muß man nur bei Speichern mit Adreßlatch takten. was schrieb der TO? "Arduino EEPROM Programmer, kann zwar lesen, aber nicht schreiben" Adresslatch hat er doch nicht, wo soll also das passende Timing herkommen?
Du musst die Data protection enablen... Schau mal im Datenblatt unter: 19. Software Data Protection Enable Algorithm
ich tippe immer noch auf störende IRQs zwischen den 8 Bits während der seriellen Bitschieberei vom 2ten Byte, wenn die ersten 8 Bit seriell rausgeschoben wurden.
:
Bearbeitet durch User
Also ich bin mir relativ sicher, dass der Chip Enable Pin permanent geerdet werden darf, dass Datenblatt gibt ja (wie peda schon sagte) tCS als Minimum an. Electro-Man sagt, dass ich SDP enablen muss. Würde das das Beschreiben nicht eher verhindern? Ab Werk ist SDP ja aus (obwohl man im Internet auch von Fällen liest, bei denen es versehentlich an war und erst abgeschaltet werden musste. Was ich versucht habe). Und um das, was jar geschrieben hat zu verstehen reicht mein arduinowissen leider nicht aus... Aber vielen Dank schonmal für die ganzen Antworten :)
Evtl. ist hier ja was dabei an Code Beispielen. http://danceswithferrets.org/geekblog/?p=496 ;-) Peter
:
Bearbeitet durch User
Also die einzigen Unterschiede die ich zwischen dem Projekt und meinem erkennen kann, sind dass der ein anderes Delay hat und dass der keine Shiftregister verwendet. Das andere Delay hab ich erfollos ausprobiert, also ist das Problem wohl auf die Shiftregister lokalisiert. Woran genau es liegen könnte, weiß ich aber nicht. sowohl sein WE als auch meiner wird erst nach dem einstellen der Adressen getriggert...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.