Forum: Compiler & IDEs msp430-jtag über USB/Parallelportadapter?


von Volkhard (Gast)


Lesenswert?

Hi an alle Sachkundigen!
Zuhause an meinem mit Schnittstellen wohlbestückten Desktop läuft die
Toolchain einwandfrei, ich kann compilieren und die Daten ins Flash
mittels des JTAG-Adapters an einem Parallelanschluss in meinen MSP430
schießen.
Auf meinem Notebook verfüge ich leider nicht über einen Parallelport,
sondern nur über USB. Ich hatte mir daraufhin einen
USB-/Paralleportadapter zugelegt. Dieser wird beim Anschluss ans
Notebook unter Win2k auch korrekt als Parallelport eingebunden.
Allerdings sieht mein msp430-jtag darüber nicht den MSP430.
Weiß jemand bzw. hat eine Idee, wie das zu lösen ist?

von KoF (Gast)


Lesenswert?

hmpf...

soetwas ist imer schwer. virtuelle com oder lpt-ports haben viele progs
probleme mit.

zur not würde ich mir ein bsl bauen und über einen virtuellen
usb-comport via eines tools einspielen.

da gabs doch einen hier im forum eine sehr bunte komerzielle seite von
einem msp-lern. der hatte ein von ihm geschriebenem freien bsl-loader
für win angepriesen. da sollte man mal nachsehen, ob das prob mit
virtuellen com-ports ( höher als pomport 4 ) zurecht kommt.

von Sven Bohner (Gast)


Lesenswert?

das wird wohl ein ding der unmöglichkeit...

da programme, die probleme mit virtuellen treibern haben meist auf die
hardware direkt zugreifen...

...deswegen wird bei xp auch das giveio (oder wie es genau heisst)
mitinstalliert... um direkte hardwarezugriffe zu erlauben...

für den msp430 ist das nämlich kein LPT mit den standardprotokollen
EPP/ECP sondern wird als FIFO genutzt...

usb-parallel-konverter kannst du da voll vergessen...

von Rufus T. Firefly (Gast)


Lesenswert?

Du wirst nicht umhinkommen, Dir den USB-JTAG-Adapter von TI anzuschaffen
oder auf die Verwendung des Notebooks zu verzichten.

von Volkhard (Gast)


Lesenswert?

Vielen Dank für die ernüchternden Antworten - habe mir sowas schon fast
gedacht.

@Rufus:
Ich bin mir nicht mal sicher, ob der USB-JTAG-Adapter helfen würde.
Unterstützt der MSPGCC bzw. GiveIO denn den Zugriff über USB überhaupt?

von Rufus T. Firefly (Gast)


Lesenswert?

Der USB-JTAG-Adapter von TI wird mit eigener Software betrieben, da ist
kein "giveio" erforderlich.

Allerdings gibt es eine vage Hoffnung, daß möglicherweise doch einige
Parallelport-Adapter per USB verwendbar sind;
der hier
http://www-user.tu-chemnitz.de/~heha/bastelecke/Rund%20um%20den%20PC/USB2LPT/
beschriebene USB-Paralleladapter ist mehr als die üblichen
USB-Paralleladapter, weil er mit einem Devicetreiber daherkommt, der
direkte I/O-Zugriffe auf die I/O-Register des Parallelports abfängt und
sinnvoll umsetzt.
Das machen die üblichen Adapter nicht, und daher sollten die üblichen
giveio-Lösungen auch mit diesem Adapter funktionieren; allerdings ist
unklar, mit welcher Geschwindigkeit sie das tun mögen.

Einen Versuch ist es jedenfalls wert.


(Der Link entstammt diesem Thread hier:
http://www.mikrocontroller.net/forum/read-7-143344.html#160628)

von nobody0 (Gast)


Lesenswert?

Weil die Treiber für die Parallelport-Hardware meist direkt drauf
zugreifen, funktioniert meist keine USB-Adapter aber eine Karte, also
ISA, PCI oder PCMCIA.

von Rufus T. Firefly (Gast)


Lesenswert?

@Nobody0 - Du hast aber schon gelesen, was ich da geschrieben habe,
oder?

von nobody0 (Gast)


Lesenswert?

Ja, aber das Abfangen der I/O-Zugriffe wird beispielsweise unter
Linux/MaxOS/FreeBSD nicht funktionieren.
Mit Karten kann man die I/O-Zugriffe problemlos direkt machen.

von Rufus T. Firefly (Gast)


Lesenswert?

Wenn man unter den von Dir genannten Betriebssystemen arbeitet, sollte
es kein sonderliches Problem darstellen, die jeweilige
Programmiersoftware dahingehend anzupassen, daß sie statt direkter
I/O-Zugriffe mit einem Devicetreiber kommuniziert; ich würde sogar
stark vermuten, daß sie das eh' schon machen wird.

Wieso vermutest Du, daß das Abfangen von I/O-Zugriffen unter anderen
Betriebssystemen nicht funktionieren soll? (MacOS mal ausgenommen, das
läuft auf einer Hardware, die gar keine separaten I/O-Zugriffe kennt)

Das wird es mit Sicherheit tun, sonst könnte ja eine belibige
Usermode-Applikation mit einigen wohlgemeinten I/O-Zugriffen das System
auskanten (Interruptcontroller umprogrammieren, Timer umprogrammieren
etc.).

Unter MacOS werden zwar keine I/O-Zugriffe, sondern memory-mapped-I/O
verwendet, aber auch diese Zugriffe werden abgefangen, da sonst dort
das gleiche Problem aufträte.

Also muss "nur" analog zum Windows-Devicetreiber mit
I/O-Zugriffs-abfangmöglichkeit ein Linux/BSD-Devicetreiber geschrieben
werden - durch die Veröffentlichung der Sourcen des Windows-Treibers
hat der Herr Haftmann schon viel lobenswertes getan.

Wenn die die I/O-Zugriffe machende Software nicht im Sourcecode
vorliegt, sondern festcodierte I/O-Adressen für die drei
Standard-Druckerschnittstellen enthält, können übrigens weder PCI- noch
Cardbus-/PCMCIA-Karten verwendet werden. Die nämlich legen ihre
I/O-Adressen in einen anderen Adressbereich, außerdem werden die
Adressen dynamisch zugewiesen.


Abschließend sei noch angemerkt, daß es einen Versuch wert ist,
auszuprobieren, welche Parallelport-Programmierer/-JTAG-Software mit
diesem speziellen USB-Adapter klarkommt.
Ich werde das Thema in absehbarer Zeit mit einem Arm-Wiggler und einem
AVR-ISP testen.

von nobody0 (Gast)


Lesenswert?

Das Problem beim MSP430-JTAG-Adapter für den Parallelport ist aber, daß
da nix mit Abfangen geht, weil die Software wegen Betriebsgeheimnissen
von TI nicht open source ist.

von Rufus T. Firefly (Gast)


Lesenswert?

Magst Du das inhaltlich noch etwas elaborieren?
Mal angenommen, die Software macht einen I/O-Zugriff, dann ist das ein
I/O-Zugriff, ob die Software nun Horst oder Detlef heisst - und mit der
I/O-Virtualisierungsmimik lässt sich sowas von einem Devicetreiber
abfangen.
Das macht Windows übrigens schon seit Ewigkeiten; wie sonst würden
DOS-Programme mit seriellen Schnittstellen kommunizieren können? Ja,
genau, durch Virtualisierung. Die funktioniert zwar nicht sonderlich
zuverlässig, was aber eher an der grauenerregend schlechten Ansteuerung
serieller Schnittstellen durch viele DOS-Programme denn an Defiziten der
DOS-VM von Windows liegt.

Man benötigt keinen Quelltext der Software; wäre der Quelltext
vorhanden, müsste man ja keinen Aufwand mit dem Abfangen von
I/O-Zugriffen betreiben, sondern könnte die entsprechenden Stellen
einfach anpassen.

Auf der Seite des Herrn Haftmann sind die Einschränkungen seines
Treibers beschrieben, da lässt er sich über Dongle-Emulationen aus, die
mit seiner Lösung nicht möglich sind.

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.