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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.