www.mikrocontroller.net

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


Autor: mr08b002 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:
Bus 006 Device 003: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x067b Prolific Technology, Inc.
  idProduct          0x2303 PL2303 Serial Port
  bcdDevice            3.00
  iManufacturer           1 Prolific Technology Inc.
  iProduct                2 USB-Serial Controller
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           39
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x000a  1x 10 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
Device Status:     0x0000
  (Bus Powered)

bin für jede Hilfe dankbar!

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
% dmesg | grep ttyUSB
usb 1-4.1: FTDI FT232BM Compatible converter now attached to ttyUSB0
usb 1-4.2: FTDI FT232BM Compatible converter now attached to ttyUSB1
FTDI FT232BM Compatible ttyUSB0: FTDI FT232BM Compatible converter now disconnected from ttyUSB0
FTDI FT232BM Compatible ttyUSB1: FTDI FT232BM Compatible converter now disconnected from ttyUSB1
usb 1-4.1: FTDI FT232BM Compatible converter now attached to ttyUSB0
usb 1-4.2: FTDI FT232BM Compatible converter now attached to ttyUSB1
FTDI FT232BM Compatible ttyUSB0: FTDI FT232BM Compatible converter now disconnected from ttyUSB0
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 ...

Autor: mr08b002 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke,

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

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

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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der device node heißt ja auch /dev/ttyUSB0.

Autor: Thomas Klima (rlyeh_drifter) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
avrdude -p m8 -P /dev/ttyUSB0 -c stk500 -U flash:w:main.hex:a

Autor: mr08b002 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habs damit auch versucht. Der uC scheint aber nicht antworten zu können.
sudo avrdude -p m8 -P /dev/ttyUSB0 -c stk500 -vvvv -U flash:w:main.hex:a

avrdude: Version 5.5, compiled on Jul  5 2010 at 19:25:10
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

         System wide configuration file is "/opt/cross/etc/avrdude.conf"
         User configuration file is "/root/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port            : /dev/ttyUSB0
         Using Programmer      : stk500
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: Send: . [1b] . [01] . [00] . [01] . [0e] . [01] . [14]

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Benutze mal stk500v2.

Autor: mr08b002 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
habe ich schon versucht, mit dem selben Ergebnis

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was hängt denn dran, ein echter STK500?

Autor: mr08b002 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.