logo elektroda
logo elektroda
X
logo elektroda

USB Blaster Programmer - Platine mit zusätzlichen Versorgungsspannungen

phanick 7755 8
WERBUNG
Treść została przetłumaczona Polnisch » Deutsch Zobacz oryginalną wersję tematu
  • Leiterplatte mit elektronischen Bauteilen.

    Es gibt so einen kleinen, ordentlichen und günstigen USB Blaster Programmierer für Altery CPLD/FPGA Schaltungen, der seine Rolle perfekt erfüllt.
    USB-Blaster-Programmiergerät auf einer blauen Leiterplatte mit USB-Anschluss und LED-Anzeigen. Elektrisches Schaltbild eines USB-Blaster-Programmiergeräts für Altera-Geräte Nahaufnahme des USB Blaster-Steckers mit Pin-Nummerierung.

    Leider stellt es nicht die Versorgungsspannung bereit, was erfordert, dass die programmierbare Schaltung von einer externen Quelle gespeist werden muss. Verschiedene Stromkreise haben unterschiedliche Versorgungsspannungen (und manchmal sogar mehrere).

    Zum Beispiel hat mein Lieblings-CPLD EPM3064 eine Spannung für die Versorgung des Kerns der Schaltung (VCCINT) und die andere für die Versorgung von Puffern der Endstufen I/O (VCCIO), damit die Schaltung in einem System arbeiten kann, das an unterschiedliche Spannungen angepasst ist, z.B. 3,3 V, 2,5 V.
    Pinbelegungsdiagramm des EPM3064A im TQFP44-Gehäuse

    Der EPM240 hat beispielsweise vier IOLABS-Blöcke und jeder dieser Blöcke kann seine eigene VCCIO-Spannung haben.


    So kam ich auf die Idee, für den oben genannten Programmierer einen kleinen "Adapter" zu bauen, der die gängigsten Spannungen produziert. Das Ganze musste in das bestehende Gehäuse passen, was eine ziemlich große Herausforderung war. Die Annahme sollte folgende Spannungen beinhalten: +1,8 V, +2,5 V, +3,3 V, +5 V, +12 V.

    Als Ergebnis entstand eine Platine, angepasst an die Größe des bestehenden Gehäuses, die mit zwei Drähten (an Masse und +5 V) an die Hauptplatine des Programmierers angelötet wird, wo sich der J1-Stecker auf der Originalplatine befindet. Die Platine hat auch zwei Löcher, durch die LEDs hindurchgehen können, die den Betrieb von der Originalplatine signalisieren. Wir haben es geschafft, alles auf eine einlagige Platine zu montieren, damit die Platine ohne Angst vor einem Kurzschluss eng an die Originalplatine passt.
    PCB-Design für ein Zusatzmodul zum USB-Blaster-Programmierer. Leiterplatte mit elektronischen Bauteilen. Nahaufnahme einer Leiterplatte mit Komponenten und LED-Anzeigen.
    Leiterplatte in einem kleinen Gehäuse eines USB-Blaster-Programmierers mit zusätzlichen elektronischen Komponenten. Altera USB Blaster-Programmierer mit modifizierter Platine zur Erzeugung verschiedener Spannungen. Schaltplan der USB Blaster-Erweiterungsplatine mit Reglern und Konverter.

    Ich habe mich entschieden, alle Spannungen mit der Stiftleiste abzuleiten, da sie sich im Gegensatz zum Buchsenleiste nicht abnutzt (Buchsenleisten lösen sich bei häufigem Einsetzen schnell). Um mich vor einem versehentlichen Kurzschluss der Stifte im Moment des Kontakts mit etwas zu schützen, setze ich eine Kappe auf die Stifte (aus einer Buchsenleiste).
    USB-Blaster-Programmiergerät mit Spannungsadapter

    o Die Spannungen +1,8 V, +2,5 V, +3,3 V kommen von den dedizierten AMS1117-Stabilisatoren
    o Die Spannung von +5 V kommt direkt vom USB-Anschluss
    o Für eine Spannung von +12 V habe ich den Konverter MC34063 verwendet

    Der Leser mag sich fragen, wozu das Vorhandensein von +12 V dient? Nun, die Notwendigkeit, diese Spannung zu haben, war im Grunde der Grund für die Entwicklung der beschriebenen Leiterplatte. Oftmals versuchen wir bei der Konstruktion eines Gerätes, eine Schaltung dafür auszuwählen, dass sie den Bedürfnissen entspricht, aber nicht zu ,,übertrieben" ist (d. h. es hat die erforderliche Anzahl an Anschlüssen). Zu viele Stifte und ungenutzte Stifte sind nicht nur Preisverschwendung (teurere Schaltung), sondern auch eine kompliziertere Leiterplatte (mehr Stifte = größeres Gehäuse = meist komplizierteres Platinendesign).
    Daher reicht für viele Bedürfnisse z.B. das zuvor beschriebene einfache EPM3064 Schaltung aus. Diese Schaltung hat 30 I/O-Stifte. Allerdings war ich oft in einer Situation, in der ich den einen/zwei zusätzlichen Stifte verpasst habe und auf seltsame Kombinationen zurückgreifen musste. Es stellt sich heraus, dass die JTAG-Programmierstifte dieser schaltung (TDI/TMS/TCK/TDO) auch als Standard-I/O-Stifte fungieren können. Um sie dazu zu zwingen, gehen Sie in der Quartus-Umgebung wie folgt vor:
    1. Klicken Sie mit der rechten Maustaste auf Schaltung, Device >> Device and Pin Options >> wählen, Karte "General".
    2. Deaktivieren Sie "Enable JTAG BST Support"
    3. Kompilieren Sie das Projekt neu
    Quartus II Software-Oberfläche mit ausgewählten Geräteeinstellungen. Screenshot aus Quartus zeigt das Gerätauswahlfenster mit dem hervorgehobenen Button Device and Pin Options. Screenshot der allgemeinen Einstellungen in der Quartus-Software mit Optionen für JTAG BST-Unterstützung.

    Leider wird nun ein Versuch, die "POF"-Datei zum Hochladen in die Schaltung auszuwählen, mit der mysteriösen Meldung "JTAG support disabled in file..." enden.
    Fehlermeldung in Quartus II, die anzeigt, dass die JTAG-Unterstützung deaktiviert ist.

    4. Gehen Sie also zurück zu Karte ,"Programming files" und wählen Sie "JEDEC STAPL Format File (.jam)" und kompilieren Sie das Projekt erneut.
    Screenshot der Einstellungen Programming Files in Quartus II Software mit der Option JEDEC STAPL Format File (.jam) aktiviert.

    Von nun an wird nach jedem Übersetzen zusätzlich zur Standard-POF-Datei eine JAM-Datei generiert und diese Datei sollte beim Programmieren ausgewählt werden.

    Um einen Stapel mit abgeschalteten JTAG-Pins zu programmieren (oder umzuprogrammieren), braucht man leider - laut Kataloghinweis - einen speziellen Hochspannungs-Programmierer. Kein Wunder, denn wenn jetzt JTAG-Pins als Standard-I/O-Pins verwendet werden, woher soll das System dann wissen, dass wir sie für die Programmierung wiederverwenden wollen?
    Es gibt jedoch einen Trick (der im Kataloghinweis nicht erwähnt wird). Wenn der EPM3064-Chip im Moment des Einschaltens eine Spannung von +12 V an seinem I/OE1-Pin sieht (im QFP44-Gehäuse ist es Pin 38), dann werden die JTAG-Pins wieder aktiv (bis zum Neustart) und können zum Programmieren verwendet werden. Bei dieser Methode sollten Sie natürlich einige Dinge beachten:
    o +12 V an den I/OE1-Pin für die Zeit der Programmierung anschließen MUSS mit einem Schutzwiderstand in Reihe (z. B. 1kΩ). Ich weiß nicht genau, welche Spannung die Schaltung benötigt, da die andere Seite des Widerstands etwa 8 V beträgt.
    o I/OE1-Pin sollte im Projekt entweder gar nicht verwendet werden, oder zumindest mit einem Jumper gesichert werden, der ihn für die Dauer der Programmierung vom Rest des Systems "abschneidet", damit +12 V darauf nicht kämen und andere daran angeschlossene Schaltungen beschädigen.
    o die Stromsignale an den Pins TDI/TMS/TCK/TDO dürfen den Programmiervorgang nicht stören, d.h. sie dürfen nicht mit Ausgängen anderer Systeme verbunden werden, über die wir keine Kontrolle haben, oder sie können mit Ausgängen anderer Systeme verbunden werden, aber durch die Schutzwiderstände. Idealerweise werden diese Pins nur vom EPM3064-Chip angesteuert und für andere Schaltungen sind sie nur Eingänge.
    o es ist eine Situation analog der Verwendung von MOSI/MISO/SCK-Pins von gängigen AVR-Mikrocontrollern für deren Zwecke. Dort ist der Pin zum Umschalten in den Programmiermodus der /RESET-Pin, der auch mit Fusebits abgeschaltet und in einen I/O-Pin umgewandelt werden kann, dann wird aber auch ein Hochspannungs-Programmierer benötigt).

    Zussamenfassung
    Die entworfene Platine erfüllt ihre Aufgabe perfekt, das einzige was noch hinzugefügt werden könnte, ist eine Spannung von 1,2 V, vielleicht könnte noch ein AMS1117 Regler hineingesteckt werden.

    Cool? DIY-Rangliste
    Über den Autor
    phanick
    Niveau 28  
    Offline 
    phanick hat 2899 Beiträge geschrieben mit der Bewertung 2812, und dabei 65 Mal geholfen. Wohnt in der Stadt Warszawa. Er ist seit 2007 bei uns.
  • WERBUNG
  • #2 19698349
    jackfinch
    Niveau 18  
    Hallo
    Nachdem ich deinen Beitrag gelesen habe, weiß ich nicht, ob ich das richtig verstanden habe. Es hat ein epm3032 mit einem blockierten jtag nur in der plcc-Version (I/OE1 ist auf Pin 44). Kann ich mit Ihrer Methode 12 V durch 1kΩ Widerstand an I/OE1, eine Pof-Datei über USB-Blaster hochladen?
  • WERBUNG
  • #3 19698580
    phanick
    Niveau 28  
    Hallo
    1. Wenn Sie JTAG im aktuell erstellten Projekt deaktiviert haben, müssen Sie eine JAM-Datei generieren (Quartus lässt Sie die SOF-Datei nicht zum Programmieren verwenden).
    2. Wenn der EPM3032 derzeit JTAG ausgeschaltet hat (er wird von USB Blaster mit AutoDetect-Option nicht erkannt) oder Sie versuchen, einen Stapel aus einem Projekt mit ausgeschaltetem JTAG aufzuzeichnen, dann muss Pin I/OE1 vorher mit 12 V versorgt werden oder gleichzeitig mit der Stromversorgung des programmierter Schaltung. Wenn der EPM3032 bereits eingeschaltet ist, schaltet das Anlegen von 12 V den JTAG nicht ein.
  • #4 19701333
    jackfinch
    Niveau 18  
    Danke für die Antwort. Es stellte sich heraus, dass mein Altera die 7000er-Serie ist und genau der EPM7032SLC44-10 und nicht der 3032, wie ich vorhin geschrieben habe. Beim USB Blaster ist meine Version etwas anders: STM32F101C8T6 + 74HC244D. Wenn ich einen Moment finde, schliesse ich alles an und versuche zu spielen.

    Ich habe es so gemacht, wie Sie es beschrieben haben, ich habe 12 V über den 1kΩ-Widerstand an Pin 44 (INPUT/OE1) gegeben, den USB-Blaster an den USB angeschlossen, in Quartus ein kurzes Programm generiert und die Optionen Program/Configure ausgewählt. Es sieht so aus, als ob das Jtag entsperrt ist. Ich hänge den Screenshot an. Ich habe immer noch EPM7128slc84-15, das von jtag nicht erkannt wird.
  • WERBUNG
  • #5 19722540
    jackfinch
    Niveau 18  
    Hallo

    Ich habe eine Frage zu den Überprüfungsoptionen nach der Programmierung. Auf dem beigefügten Foto sehen Sie, dass die Schaltung nach der Programmierung die Überprüfung nicht besteht. Für mich ist es genau so, wie ich die Option VERIFY auswähle. Ich verstehe es nicht so sehr, ist das normal, wurde die Schaltung wirklich falsch programmiert?

    Grüße
  • #6 19731626
    phanick
    Niveau 28  
    Wenn +12 V an OE1-Pin angeschlossen sind, besteht die Schaltung die Programmierung und Überprüfung und ist SUCCESS.
    Wenn keine +12 V anliegen, dann wird die Programmierung bestanden, die Überprüfung wird nicht bestanden, aber nach dem Neustart - wird die Schaltung nicht funktionieren, d.h. als ob die Überprüfung nur etwas in diesem Chip festlegt, dass es auf den neu hochgeladener Code umschalten soll.

    Bei einer von mir getesteten Schaltung ist mir etwas kaputt gegangen, denn auch nach dem Anschließen dieser +12 V über einen Widerstand besteht die Überprüfung ebenfalls nicht. Die Messung der Spannung an diesem Widerstand auf der anderen Seite ergibt +8 V.

    Bei anderen Schaltungen, bei denen die Verifizierung erfolgreich ist, ergibt die Messung +12 V auf beiden Seiten des Widerstands. Vielleicht auf einem anderen Chip überprüfen.
  • WERBUNG
  • #7 19732690
    jackfinch
    Niveau 18  
    Heute habe ich die Spannung des USB-Blasters überprüft, um den Altera mit Strom zu versorgen, und es kamen 2,69 V heraus, was wahrscheinlich nicht ausreicht. Ich habe eine externe Spannung 5 V angeschlossen und es scheint, dass die Überprüfung 100% ist. Meine Reset-Schaltung, die hinter dem 1kΩ-Widerstand an OE1 angeschlossen ist, beträgt genau 12 V. Es stellt sich jedoch heraus, dass mein Problem eine zu niedrige Spannung der Systemversorgung war. Ich hänge den Screenshot an. Ich habe im Datenblatt gelesen, dass die Chips der 7000er Serie maximal etwa 100 Mal gelöscht werden können. Ich habe das gleiche auf dem EPM7128SLC84 versucht, aber es stellte sich heraus, dass es nicht möglich sein wird, Jtag auf diese Weise zu aktivieren.
  • #8 19732733
    phanick
    Niveau 28  
    Der USB Blaster versorgt den Chip nicht durch dieses graue Flachband, eine zusätzliche Stromversorgung oder Modifikation ist wie in meiner Beschreibung notwendig.
  • #9 21280664
    cezarykl
    Niveau 1  
    >>19694414

    Hallo
    Ich bin auf der Suche nach der alten Version von USBblaster v3.1.
    Weiß jemand etwas über diese Version? Wo kann ich einen kaufen oder selbst aus einer Platine herstellen?
    [F]

Themenzusammenfassung

Der USB Blaster Programmierer für Altera CPLD/FPGA Schaltungen benötigt eine externe Stromversorgung, da er keine Versorgungsspannung bereitstellt. Nutzer berichten über die Notwendigkeit, unterschiedliche Spannungen für verschiedene Schaltungen zu verwenden, insbesondere für den EPM3064, der VCCINT und VCCIO benötigt. Es wird empfohlen, 12 V über einen 1kΩ Widerstand an den I/OE1-Pin anzulegen, um JTAG zu aktivieren. Probleme mit der Programmierung und Verifizierung treten auf, wenn die Versorgungsspannung zu niedrig ist. Eine externe 5 V Quelle hat die Verifizierung erfolgreich gemacht. Es wird darauf hingewiesen, dass der USB Blaster nicht in der Lage ist, den Chip über das Flachbandkabel zu versorgen, was zusätzliche Modifikationen erfordert.
Vom Sprachmodell generierte Zusammenfassung.
WERBUNG