Hallo zusammen, ich versuche gerade eine EEPROM in einer Schaltung zu programmieren, was leider nicht klappt. Es handelt sich dabei um ein M95640, welches ich über einen CH341 China Programmer umprogrammieren will. Den China Programmer habe ich so modifiziert, dass er mit 3V3 versorgt wird und somit die Logikpegel auch bei 3V3 sind. Als Software verwende ich AsProgrammer. Ist das EEPROM ausgelötet klappt das auslesen auch wunderbar. Zum eigentlichem Problem: Mit dem Logikanalyzer sieht man sehr schnell, dass der CS (S) Pin nicht auf Low gezogen wird. Daher kann das EEPROM auch nicht ausgelesen werden. Das Signal des CS Pins in der Schaltung kommt über einen SN74LVC139A (Demultiplexer). Meine Vermutung ist, dass der CH341 es nun nicht schafft diesen auf Low zu ziehen. Würde hier evtl. ein externer Transistor, zur Verstärkung des CS Signals, helfen? Habt ihr eine andere Idee/Vorschlag? Vielen Dank und viele Grüße Chris *Links Datenblatt*: *EEPROM 95640:* https://www.st.com/resource/en/datasheet/m95640-w.pdf *SN74LVC139A Demultiplexer:* https://www.ti.com/lit/ds/symlink/sn74lvc139a.pdf *EEPROM Programmer:* https://de.aliexpress.com/item/32828012179.html *Datenblatt CH341:* https://www.anok.ceti.pl/download/ch341ds1.pdf [Mod: Lebenslauf aus Links entfernt]
:
Bearbeitet durch Moderator
Moin, Christian S. schrieb: > Meine Vermutung ist, dass der CH341 es nun nicht schafft diesen auf Low > zu ziehen. Würde hier evtl. ein externer Transistor, zur Verstärkung des > CS Signals, helfen? Habt ihr eine andere Idee/Vorschlag? Das ist sehr gut möglich. Der Plexer kann entspannt 50mA in die Leitung pumpen. Das schafft der CH341 nicht. Mach da keinen Transistor direkt rein, sonst grillst du den Output vom Plexer. Du könntest versuchen 10kOhm in die CS Leitung zu schleifen und deinen Transistor dann zwischen 10k und EEPROM zu hängen. Grüße!
:
Bearbeitet durch User
Christian S. schrieb: > Das Signal des CS Pins in der Schaltung kommt über einen SN74LVC139A > (Demultiplexer). Krasse Idee, vorsätzlich eine Buskollision zu verursachen und dann noch zu erwarten, dass das funktioniert. Das ist, wie wenn du bei laufendem Motor einen Kolben wechseln würdest und dich beschwerst, dass der dann ruckelt. > Habt ihr eine andere Idee/Vorschlag? Die beste Lösung ist, die Leitung(en) des EEPROMs zum Programmieren mit Jumpern aufzutrennen. Die zweitbeste Lösung ist, die EEPROM-Pins mit Serienwiderständen von anderen Treibern zu entkoppeln.
:
Bearbeitet durch Moderator
Danke für die Rückmeldungen, ein Serienwiderstand hin zu zu fügen ist nicht möglich, da es sich um eine bereitsfertige Platine aus einem Gerät handelt. Dann werde ich mal nachmessen, wo das Signal des Demultiplexers her kommt, um es auf der Seite ggf. auf Low ziehen zu können. Wahrscheinlich aber direkt aus dem µC, ebenfalls ohne Serienwiderstand. Das gucke ich mir nun aber genauer an. Vielen Dank und viele Grüße Chris
Christian S. schrieb: > wo das Signal des Demultiplexers her kommt, um es auf der Seite ggf. auf > Low ziehen zu können. Auch das wird eine Buskollision ergeben, denn damit "invertierst" du dein Problem einfach nur: wenn du dafür sorgst, dass der DeMUX immer low ausgibt, dann kann dein Programmer das Signal eben nicht mehr nach high ziehen. Und das EEPROM-Protokoll braucht eben beide Pegel auf der CS Leitung.
Der '139 hat Tristate-Ausgänge, wenn man die /G-Leitung nicht auf Masse legt, sind die Ausgänge hochohmig. Je nachdem, welche Hälfte benutzt wird, sind das die Pins 1 oder 15. (1 für die Ausgänge an Pin 4 .. 7, 15 für die Ausgänge an Pin 9 .. 12).
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.