Forum: Compiler & IDEs Problem mit USB nach Seriell Konverter


von Gizmo (Gast)


Lesenswert?

Hallo

Ich habe das STK500 über einen USB nach Seriell Konverter mit dem Laptop 
verbunden. Der Konverter wird in der Systemsteuerung als USB Serial Port 
(Com13) erkannt. Das ganze habe ich mit einem Terminal programm und 
einem 9 Poligen Sub-D Loopback adapter getestet, fiunktioniert 
einwandfrei. Nun habe ich mir mit WINAVR ein Programm geschrieben und 
hab versucht das ganze zu flashen geht aber nicht, ich bekomme von 
avrdude folgende Fehlermeldung
did not find any USB device "usb".

habe das ganze im make file auch mal auf com13 umgeschrieben das 
funktioniert aber genau so wenig. Im Terminal Programm(Realterm) wird 
das Interface aber als com13 erkannt. Es wäre nett wenn ihr mir helfen 
könntet.

Gruß Gizmo.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

"usb" kann nicht gehen, das würde ja bedeuten, dass du über die libusb
direkt auf das USB-Gerät zugreifen können müsstest.

com13 muss dagegen funktionieren.  Was genau bekommst du denn von
avrdue als Fehlermeldung?  Du kannst auch mal folgendes aufrufen:
1
avrdude -c stk500v2 -p m16 -P com13 -uF -vvvv 2> logfile.txt

und dann logfile.txt hier als Anhang posten.

von Peter D. (peda)


Lesenswert?

Stell den Adapter mal auf ne COM1..4 um.


Peter

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Peter Dannegger wrote:

> Stell den Adapter mal auf ne COM1..4 um.

Wir sind doch hier nicht bei avrprog.exe.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Probiere mal
1
avrdude -c stk500v2 -p m16 -P \\.\com13 -uF -vvvv 2> logfile.txt

Serielle Schnittstellen jenseits von COM9 müssen mit dieser geänderten 
Syntax angesprochen werden.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ah, ist das eigentlich eine Windows-Macke?  Der String wird ja am
Ende direkt ins Win32 API durchgereicht...

Ggf. könnte man die Heuristik dafür ja ins ser_open() in
ser_win32.c gleich mit einbauen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> Ah, ist das eigentlich eine Windows-Macke?

So kann man das auch nennen. Ist uralt* und hat mit den "reservierten 
Namen" aus DOS-Zeiten zu tun. Das sind COM, LPT, CON, PRN, AUX und NUL. 
Die werden schon immer etwas ... anders behandelt.


*) also bereits in Windows NT 3.1 von 1993 so vorhanden gewesen

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Die Heuristik könnte man IMHO schon benutzen, sogar für com1 bis com9

Ergänzung zum Nachlesen

HOWTO: Specify Serial Ports Larger than COM9
http://support.microsoft.com/?scid=kb%3Ben-us%3B115831&x=7&y=10

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

OK, macht mal bitte einer einen Bugreport bei AVRDUDE dafür auf?
Nur, damit es nicht vergessen wird.  Ich würde dann sowas machen
wie
1
  if (strncasecmp(device, "com", strlen("com")) == 0) {
2
    // prepend "\\\\.\\" to name, required for ports >= 10
3
    cp = malloc(strlen("\\\\.\\") + strlen(device) + 1);
4
    // handle error
5
    strcpy(cp, "\\\\.\\");
6
    strcat(cp, device);
7
    device = cp;
8
  }

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Bugreport ist eingeschickt. Ich hoffe, dass ich mich nicht zu blöd dabei 
angestellt habe.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Nö, danke, ist OK.  Ist ja nur eine Erinnerung, dass ich das mal vor
dem nächsten Release mit mache.  Heute abend wird's nicht mehr.

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.