Forum: FPGA, VHDL & Co. GAL lässt sich nicht schreiben


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Frank (Gast)


Lesenswert?

Hallo,

ich habe genau das gleiche Problem wie hier:
Beitrag "GAL lässt sich nicht schreiben"

Mein kleines Projekt versucht mit einem Arduino Uno einen GAL (16V8D) zu 
brennen. Dazu hab ich einen Arduino-Sketch und ein PC-Programm 
geschrieben. Ich halte mich dabei strikt an die Regeln von hier:
http://www.armory.com/~rstevew/Public/Pgmrs/GAL/program.htm

Ich schaffe es problemlos das GAL auszulesen, die PES meiner 16V8D ist 
wie folgt:
0x00 0x05 0x1A 0xA1 0xCD 0xA4 0x03 0x12

allerdings funktioniert das Brennen nicht. Ich versuche z.B. was in die 
UES zu schreiben, doch nach dem Brennen stehen weiter lauter Einsen in 
der Zeile.
Der Brennvorgang ist wie folgt: Ich lege 14V an Edit und gebe dann einen 
Befehl an Arduino, der erst P/V auf 1 setzt und dann die Adresse setzt. 
Danach werden die 64 Bits eingesetzt (SDIN, CLK auf 1 und gleich wieder 
auf 0). Dann STB für 40ms auf 0, dann wieder 1 und schließlich PV wieder 
auf 0.

Ich bin derzeit ziemlich ratlos was ich da verkehrt machen könnte. Kann 
es sein, dass die GALs zu alt sind (ca. 10 Jahre)? Könnte es an der 
Spannung liegen?
Ich schließe den Arduino übrigens nicht direkt an sondern habe zwei 
74HC245 dazwischen.

Ich bin für jeden Tipp dankbar.

Viele Grüße,
Frank

von Thomas T. (knibbel)


Lesenswert?

Hallo,

ich habe gerade mal in alten Unterlagen gewälzt und meine an EDIT müssen 
für's Schreiben 16,5 Volt dran sein. Vielleicht sind 14 Volt zu wenig.

Überprüfe dies mal bitte ...

Gruß,
Thomas

von Frank (Gast)


Lesenswert?

Hallo Thomas,

das hab ich versucht und hatte schon Angst das GAL kaputtzubrennen, da 
ja laut PES nur 14V erlaubt sind. Hat dem GAL aber nix ausgemacht. 
Funktioniert hat's aber trotzdem nicht.
Ich hab dann irgendwann per Zufall festgestellt, dass SDIN auf H steht 
(sollte aber L sein) und dann dass tatsächlich mein Coding falsch ist. 
Dabei habe ich gelernt dass '==' stärker bindet als '&', d.h. if(x & 
mask == 0) lieferte bei mir immer FALSE.
Nachdem ich das korrigiert hatte konnte ich auch die UES schreiben (mit 
14V). Jetzt versuche ich es auch mit den anderen Zeilen.

Vielen Dank für Deine Hilfe!

Viele Grüße,
Frank

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.