Hallo, ich bin neu in diesem gebiet, habe hier auch schon im Forum rumgeschaut habe aber nie was passendes dazu gefunden. Es geht darum, ich habe einen Jtag für einen Reciver er wird über einen LPT anschluss mit dem PC verbunden (Jtag habe ich selber zusammengestellt). Das Klappt auch alles wunderbar ich kann den auch Reciver flashen. Aber mich nervt diese große LPT kabel. Ich habe mir überlegt ob es nicht möglich wäre, USB stat dem lpt kabel zu nehmen. Jetzt steh ich vor einem Problem, ich weiß nicht wie ich es machen soll. Meine Idee ist ich nehme eine größere Platine und löte den "jtag interface" ganz normal drauf aber anstatt des SUB D steckers verbinde ich die fasern mit dem USB interface der auch auf der gleichen platine draufgelötet wird (USB <> LPT). ISt sowas möglich ?
Einfach USB mit dem LPT verbinden geht natürlich nicht. USB ist ein serielles Interface und LPT ist ein paralleles (auch wenn JTAG seriell ist). Die Verwendung eines im Hanel erhältlichen USB-LPT Adapterkabel (für den Anschluss von Druckern gedacht) funktioniert mit den LPT basierenden ("Wiggler" kompatiblen) JTAG Programmern auch nicht, da die notwendigen Timings der einzelnen JTAG-Signale vollkommen verloren gehen, wenn es denn überhaupt funktionieren würde, einzelne Datenbits des LPT anzusteuern. Such mal nach "USB2LPT", da findet man eine brauchbare Lösung des Problems, da ein spezieller USB-Treiber den Bulk-Transfer ermöglicht. Ob die besonders preiswerte Variante mit einem Atmel ATMega µC ausreichend schnell ist, muss/sollte man mal ausprobieren. Da ja das JTAG-Interface nur 6 Signale umfasst, braucht man ja auch keinen "vollständigen" LPT-Port und könnte als µC auch einen ATtiny44 im platzsparenden DIL 14 Gehäuse verwenden.
guck mal hier, das sollte funktionieren ... Beitrag "[V] USB nach Parallel-Wandler (nicht nur Drucker)"
Ich fürchte bloss, dass auch diese Sorte USB/Parallel-Adapter nicht um den 1KHz-Takt des USB-Protokolls herum kommt. Wenn also zwischen Controller und LPT keine Intelligenz steckt, wird das das aufgrund unpassenen Timings entweder garnicht, oder nur schnarchlangsam funktionieren.
http://www-user.tu-chemnitz.de/~heha/bastelecke/Rund%20um%20den%20PC/USB2LPT/ da ist der beschrieben und laut beschreibung kann er das
Was für ein 1kHz Takt? Das dürfte wohl eine Verwechselung damit sein, dass USB nun mal paketorientiert ist und dadurch keine sinnvollen Datenraten herauskommen, wenn man versucht einzelne Bits zu übertragen. Ohne einen USB Controller, der direkt JTAG kann, wird das zu keinem brauchbaren Ergebnis führen. Die USB/LTP Adapter kann man für sowas geflissentlich vergessen.
@ JIPSO: Benutz doch gleich den FT2232 von FTDI, der hat ein JTAG-Interface eingebaut, und lässt sich leicht über das API ansteuern. Dieser Adapter von Henrik kann sich auch nicht um die USB Spec drücken.
Guido Körber wrote: > Das dürfte wohl eine Verwechselung damit sein, dass USB nun mal > paketorientiert ist und dadurch keine sinnvollen Datenraten > herauskommen, wenn man versucht einzelne Bits zu übertragen. USB arbeitet in einem Zeitraster von 1KHz, d.h. wenn du per Bitbanging am Parallelport einen Takt erzeugst und jedesmal den Zustand eines Pins abfragst, kommt bestenfalls ein Takt von 500Hz dabei raus.
Man könnte höchstens per Isochronem Streaming alle 125µs einen Datensatz abholen, aber das sind ja auch nur 8Khz dann. Ansonsten halt das JTAG Protokoll zum Beispiel auf dem Cypress FX2 implementieren. Ich arbeite gerade mit dem, im BULK-Transfer knallt der mit 11 Datenpakete zu je 512Byte in einen Microframe, macht im Windows knapp 40MByte/s Streaming.
>USB arbeitet in einem Zeitraster von 1KHz, d.h. wenn du per Bitbanging >am Parallelport einen Takt erzeugst und jedesmal den Zustand eines Pins >abfragst, kommt bestenfalls ein Takt von 500Hz dabei raus. USB benutzt eine 1kHZ Framerate, das ist richtig, High Speed hat dann aber Microframes von denen 8 in einem Frame sind. Deine Aussage mit den 1kHz trifft ausschließlich auf Interrupt Transfers bei Full Speed zu.
Lange Rede, kurzer Sinn: Hab mal schnell diesen USB2LPT-Adapter mit einem ATtiny461 (hatte ich gerade zur Hand) aufgebaut und damit bei einen DVB-S Receiver (Edison Tyran, hab ich hier gehabt) den Bootlader-Code (64 KByte) per JTAG-Interface geflasht. Funktioniert bestens, aber es ist natürlich deutlich langsamer als mit einem direkten LPT-Anschluss. Man benötigt ca. die vierfache Zeit, d.h. ca. 40 min für 64 KByte mit dem USB2LPT-Adapter gegenüber ca. 10 min mit einem LPT-Port. Was will man mehr, sobald der Bootlader auf der Box o.k. ist, kann man die Firmware (ca. 2 MByre) wieder per RS-232 in ca. 5 min mit 115.200 Baud flashen.
Noch als Ergänzung eine Anmerkung zur erreichbaren Flash-Zeit: In dem Receiver ist ein 29M160 Flash-Chip und mit Optimierung der Timingparameter flasht man die 64 KByte des Boot-Loaders mit dem USB2LPT-Adapter über das JTAG-Interface in ca. 15 min. Die ca. 40 min kamen mir doch sehr langsam vor und waren hauptsächlich durch für den USB-Transfer ungünstig gewählte Timing-Parameter bedingt. Mit Optimierung der Timing-Parameter ist das USB2LPT-Interface also ein brauchbarer Ersatz für einen LPT-Port. Hab mal versucht ein Layout mit einem ATtiny44 (reicht ja für die 6 Jtag-Signale zum Flashen) im DIL-Gehäuse zu entwerfen und man bekommt das mit einer kleinen einseitigen Leiterplatte und bedrahteten Bauelementen (also keine SMDs) realisiert.
Der eigentliche Boot-Loader wird wahrscheinlich keine 64 KByte benötigen, aber Boot-Block im Flash-EPROM (29M160) ist wohl 64 KByte groß und muss/kann nur als 64 kByte Block geflasht werden.
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.