Forum: Mikrocontroller und Digitale Elektronik RS232-USB-Adapter mit AVRDUDE


von mr08b002 (Gast)


Lesenswert?

Hallo,

ich möchte mit Hilfe von AVRDUDE über einen RS232-USB-Adapter ein 
Programm auf einen uC übertragen. Über den Parameter -P möchte ich den 
Port übergeben. Allerdings weis ich nicht unter welchem tty-File (ich 
verwende Linux) sich der Adapter versteckt. Kann man das mit irgend 
einem Befehl oder Programm herausfinden? Der Adapter selbst scheint 
jedenfalls erkannt zu werden. Der Befehl lsusb -v gibt nähmlich unter 
anderem folgendes aus:
1
Bus 006 Device 003: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
2
Device Descriptor:
3
  bLength                18
4
  bDescriptorType         1
5
  bcdUSB               1.10
6
  bDeviceClass            0 (Defined at Interface level)
7
  bDeviceSubClass         0 
8
  bDeviceProtocol         0 
9
  bMaxPacketSize0        64
10
  idVendor           0x067b Prolific Technology, Inc.
11
  idProduct          0x2303 PL2303 Serial Port
12
  bcdDevice            3.00
13
  iManufacturer           1 Prolific Technology Inc.
14
  iProduct                2 USB-Serial Controller
15
  iSerial                 0 
16
  bNumConfigurations      1
17
  Configuration Descriptor:
18
    bLength                 9
19
    bDescriptorType         2
20
    wTotalLength           39
21
    bNumInterfaces          1
22
    bConfigurationValue     1
23
    iConfiguration          0 
24
    bmAttributes         0x80
25
      (Bus Powered)
26
    MaxPower              100mA
27
    Interface Descriptor:
28
      bLength                 9
29
      bDescriptorType         4
30
      bInterfaceNumber        0
31
      bAlternateSetting       0
32
      bNumEndpoints           3
33
      bInterfaceClass       255 Vendor Specific Class
34
      bInterfaceSubClass      0 
35
      bInterfaceProtocol      0 
36
      iInterface              0 
37
      Endpoint Descriptor:
38
        bLength                 7
39
        bDescriptorType         5
40
        bEndpointAddress     0x81  EP 1 IN
41
        bmAttributes            3
42
          Transfer Type            Interrupt
43
          Synch Type               None
44
          Usage Type               Data
45
        wMaxPacketSize     0x000a  1x 10 bytes
46
        bInterval               1
47
      Endpoint Descriptor:
48
        bLength                 7
49
        bDescriptorType         5
50
        bEndpointAddress     0x02  EP 2 OUT
51
        bmAttributes            2
52
          Transfer Type            Bulk
53
          Synch Type               None
54
          Usage Type               Data
55
        wMaxPacketSize     0x0040  1x 64 bytes
56
        bInterval               0
57
      Endpoint Descriptor:
58
        bLength                 7
59
        bDescriptorType         5
60
        bEndpointAddress     0x83  EP 3 IN
61
        bmAttributes            2
62
          Transfer Type            Bulk
63
          Synch Type               None
64
          Usage Type               Data
65
        wMaxPacketSize     0x0040  1x 64 bytes
66
        bInterval               0
67
Device Status:     0x0000
68
  (Bus Powered)

bin für jede Hilfe dankbar!

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


Lesenswert?

1
% dmesg | grep ttyUSB
2
usb 1-4.1: FTDI FT232BM Compatible converter now attached to ttyUSB0
3
usb 1-4.2: FTDI FT232BM Compatible converter now attached to ttyUSB1
4
FTDI FT232BM Compatible ttyUSB0: FTDI FT232BM Compatible converter now disconnected from ttyUSB0
5
FTDI FT232BM Compatible ttyUSB1: FTDI FT232BM Compatible converter now disconnected from ttyUSB1
6
usb 1-4.1: FTDI FT232BM Compatible converter now attached to ttyUSB0
7
usb 1-4.2: FTDI FT232BM Compatible converter now attached to ttyUSB1
8
FTDI FT232BM Compatible ttyUSB0: FTDI FT232BM Compatible converter now disconnected from ttyUSB0
9
FTDI FT232BM Compatible ttyUSB1: FTDI FT232BM Compatible converter now disconnected from ttyUSB1

mr08b002 schrieb:

> Der Adapter selbst scheint
> jedenfalls erkannt zu werden. Der Befehl lsusb -v gibt nähmlich unter
> anderem folgendes aus:

Das heißt allerdings nur, dass die USB-Hardware ihn erkannt hat,
nicht jedoch, dass dafür auch wirklich bereits ein Treiber installiert
worden ist.

Ich hoffe mal, dass du nicht gerade versuchst, einen "Bitbang"-Adapter
zum Programmieren zu benutzen ...

von mr08b002 (Gast)


Lesenswert?

Danke,

der Adapter wird jetzt anscheinend mit dem Port ttyUSB0 verbunden zu 
werden:
1
[ 1388.634514] usb 6-1: pl2303 converter now attached to ttyUSB0
2
[ 3355.000466] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
3
[ 3764.321293] usb 6-1: pl2303 converter now attached to ttyUSB0

beim Aufruf von AVRDUDE mit dem Befehl
1
avrdude -p m8 -P ttyUSB0 -c stk500 -U flash:w:main.hex:a

kommt allerdings immer noch folgende Fehlermeldung:
1
avrdude: ser_open(): can't open device "ttyUSB0": No such file or directory

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


Lesenswert?

Der device node heißt ja auch /dev/ttyUSB0.

von Thomas K. (rlyeh_drifter) Benutzerseite


Lesenswert?

1
avrdude -p m8 -P /dev/ttyUSB0 -c stk500 -U flash:w:main.hex:a

von mr08b002 (Gast)


Lesenswert?

Habs damit auch versucht. Der uC scheint aber nicht antworten zu können.
1
sudo avrdude -p m8 -P /dev/ttyUSB0 -c stk500 -vvvv -U flash:w:main.hex:a
2
3
avrdude: Version 5.5, compiled on Jul  5 2010 at 19:25:10
4
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
5
6
         System wide configuration file is "/opt/cross/etc/avrdude.conf"
7
         User configuration file is "/root/.avrduderc"
8
         User configuration file does not exist or is not a regular file, skipping
9
10
         Using Port            : /dev/ttyUSB0
11
         Using Programmer      : stk500
12
avrdude: Send: 0 [30]   [20] 
13
avrdude: Send: 0 [30]   [20] 
14
avrdude: Send: 0 [30]   [20] 
15
avrdude: ser_recv(): programmer is not responding
16
avrdude: stk500_recv(): programmer is not responding
17
avrdude: Send: . [1b] . [01] . [00] . [01] . [0e] . [01] . [14]

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


Lesenswert?

Benutze mal stk500v2.

von mr08b002 (Gast)


Lesenswert?

habe ich schon versucht, mit dem selben Ergebnis

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


Lesenswert?

Was hängt denn dran, ein echter STK500?

von mr08b002 (Gast)


Lesenswert?

Nein es ist kein echter STK500. Es ist eine nachgebaute Funktion von 
http://s-huehn.de/elektronik/avr-prog/avr-prog-alt.htm. Unter WinAVR 
konnte ich aber schon erfolgreich damit programmieren.

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


Lesenswert?

mr08b002 schrieb:
> Nein es ist kein echter STK500.

Was macht dich dann glauben, es könnte sich in irgendeiner Form
wie ein STK500 verhalten?

> Es ist eine nachgebaute Funktion von
> http://s-huehn.de/elektronik/avr-prog/avr-prog-alt.htm.

Oh Gott! (*)

> Unter WinAVR
> konnte ich aber schon erfolgreich damit programmieren.

Das widerspricht sich: "unter WinAVR" gibt's zum Programmieren auch
nur AVRDUDE, du müsstest es also nur mit gleichen Parametern benutzen.
Damals hast du ganz sicher nicht "-c stk500" geschrieben.

(*) Das ist genau die Sorte "Bitbang"-Programmieradapter, die ich oben
erwähnt habe, wahrscheinlich "-c ponyser" in AVRDUDE.  Aber im Ernst,
sowas willst du hinter einem USB-RS232-Wandler nicht benutzen, selbst
falls du es tatsächlich irgendwie zum Laufen bekommen solltest.  Am
USB gibt's nämlich die gute alte RS232-Schnittstelle nicht mehr in
ihrer ursprünglichen Form, sondern all das wird fein säuberlich in
USB-Rahmen eingewickelt — und von diesen überträgst du pro
Millisekunde genau einen.  Jedes Setzen eines Bits, jedes Löschen
eines Bits, jedes Abfragen eines Bits — eine Millisekunde.  Das wird
schweeeeeeeeiiiiiineeeeeelaaaaaahm.  Bestenfalls dafür geeignet, einem
etwas intelligenteren Programmieradapter seinen Bootloader
reinzuprogrammieren oder sowas, wo es nicht drauf ankommt, ob es mal
'ne Viertelstunde länger dauert.

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.