Forum: Mikrocontroller und Digitale Elektronik Programmer zum laufen bringen


von Michael H. (Gast)


Lesenswert?

Hallo,

ich habe mir bei Ebay folgenden Programmer bestellt:
http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&ssPageName=STRK:MEWNX:IT&item=270349545654

Dort steht dass man mit avrdude ihn ansprechen kann. Dort ist keine 
Beschreibung mit enthalten, wie ich das Ding über avrdude anspreche.

Der Programmer wird von lsusb erkannt.
Bus 002 Device 011: ID 16c0:2a9b VOTI

Ich muss dazu sagen, dass ich hier unter Linux arbeite.

Aber wie spreche ich ihn an?

Grüße

Michael

von Uwe .. (uwegw)


Lesenswert?

Der Treiber installiert nen virtuellen COM-Port. In AVRdude muss dann 
die vergebenen Portnummer und das STK500v2 als Programmer ausgewählt 
werden.

von Walter T. (nicolas)


Lesenswert?

Einfach mit "Herr Programmer".

von Michael H. (Gast)


Lesenswert?

Unter welcher Deviceadresse wird dieser dann angemeldet?

Lshal sagte mir, dass ich ihn eventuell auf /dev/2-6 finden würde, aber 
fehlanzeige.

avrdude: ser_open(): can't set attributes for device "/dev/2-6": 
Inappropriate ioctl for device
root[michael]# avrdude -c stk500v2 -p m8
avrdude: ser_open(): can't set attributes for device "/dev/ttyS0": 
Inappropriate ioctl for device

von Karl H. (kbuchegg)


Lesenswert?

Michael H. wrote:

> Lshal sagte mir, dass ich ihn eventuell auf /dev/2-6 finden würde, aber
> fehlanzeige.
>
> avrdude: ser_open(): can't set attributes for device "/dev/2-6":

Auch als absoluter Linux Laie, kann ich mir nicht vorstellen, dass es da 
ein Device namens "2-6" geben wird.
Was ich mir aber eher vorstellen kann ist, dass das installierte Device 
entweder

   /dev/com2          oder
   /dev/com3          oder
   /dev/com4          oder
   /dev/com5          oder
   /dev/com6

heißt. Für 'com' die unter Linux gebräuchliche Abkürzung für einen 
seriellen Port einsetzen.

Schlimmsten falls einfach mal ins /dev Verzeichnis reinschauen und nach 
Devices suchen, deren Name nach 'Abürzung für serieller Schnittstelle' 
klingt oder deren Datumseintrag neuer ist.

von Olli R. (omr) Benutzerseite


Lesenswert?

Virtuelle serielle USB-Ports heissen

/dev/ttyUSB0
/dev/ttyUSB1

usw, im Gegensatz zu den "echten" COM-Ports

/dev/ttyS0
/dev/ttyS1
...

Also mal nach /dev/ttyUSB0 suchen.

hth,
Olli

von Michael H. (Gast)


Lesenswert?

Hallo,

erst einmal vielen Dank für eure Hilfe.

Ich habe nun ein tty gefunden, das erstellt wird, wenn ich den 
Controller anschließe.

Jetzt habe ich noch nichts zum Programmieren dranhängen und bekomme 
folgende Fehlermeldung:

root[michael]# avrdude -P /dev/ttyACM0 -c stk500v2 -p m8

avrdude: stk500v2_command(): command failed
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.

Ist das normal oder sagt mir das, das ich immer noch die Falsche Adresse 
habe?

von Olli R. (omr) Benutzerseite


Lesenswert?

Michael H. wrote:

> avrdude: stk500v2_command(): command failed
> avrdude: initialization failed, rc=-1
>          Double check connections and try again, or use -F to override
>          this check.

> Ist das normal oder sagt mir das, das ich immer noch die Falsche Adresse
> habe?

Das ist nicht normal. "Adresse" ist der falsche Ausdruck, es handelt 
sich hier um ein Device.

Gibt es kein /dev/ttyUSB0?

Wahrscheinlich ist stk500v2 die falsche Programmer-ID. Versuch mal 
stk500 oder stk500v1.

Olli

von Michael H. (Gast)


Lesenswert?

Welcher könnte es denn sein?

Valid programmers are:
  c2n232i  = serial port banging, reset=dtr sck=!rts mosi=!txd miso=!cts 
[/usr/etc/avrdude.conf:791]
  dasa3    = serial port banging, reset=!dtr sck=rts mosi=txd miso=cts 
[/usr/etc/avrdude.conf:778]
  dasa     = serial port banging, reset=rts sck=dtr mosi=txd miso=cts 
[/usr/etc/avrdude.conf:765]
  siprog   = Lancos SI-Prog [/usr/etc/avrdude.conf:752]
  ponyser  = design ponyprog serial, reset=!txd sck=rts mosi=dtr 
miso=cts [/usr/etc/avrdude.conf:739]
  frank-stk200 = Frank STK200 
[/usr/etc/avrdude.conf:704]
  blaster  = Altera ByteBlaster             [/usr/etc/avrdude.conf:691]
  ere-isp-avr = ERE ISP-AVR  [/usr/etc/avrdude.conf:681]
  atisp    = AT-ISP V1.1 programming cable for AVR-SDK1 from 
<http://micro-research.co.th/>;  [/usr/etc/avrdude.conf:671]
  dapa     = Direct AVR Parallel Access cable 
[/usr/etc/avrdude.conf:660]
  xil      = Xilinx JTAG cable              [/usr/etc/avrdude.conf:647]
  futurlec = Futurlec.com programming cable. [/usr/etc/avrdude.conf:630]
  abcmini  = ABCmini Board, aka Dick Smith HOTCHIP 
[/usr/etc/avrdude.conf:620]
  picoweb  = Picoweb Programming Cable,  [/usr/etc/avrdude.conf:610]
  sp12     = Steve Bolt's Programmer        [/usr/etc/avrdude.conf:599]
  alf      = Nightshade ALF-PgmAVR, http://nightshade.homeip.net/ 
[/usr/etc/avrdude.conf:583]
  bascom   = Bascom SAMPLE programming cable [/usr/etc/avrdude.conf:573]
  dt006    = Dontronics DT006               [/usr/etc/avrdude.conf:563]
  pony-stk200 = Pony Prog STK200 
[/usr/etc/avrdude.conf:551]
  stk200   = STK200                         [/usr/etc/avrdude.conf:535]
  bsd      = Brian Dean's Programmer, http://www.bsdhome.com/avrdude/ 
[/usr/etc/avrdude.conf:524]
  pavr     = Jason Kyle's pAVR Serial Programmer 
[/usr/etc/avrdude.conf:516]
  dragon_dw = Atmel AVR Dragon in debugWire mode 
[/usr/etc/avrdude.conf:509]
  dragon_hvsp = Atmel AVR Dragon in HVSP mode 
[/usr/etc/avrdude.conf:501]
  dragon_pp = Atmel AVR Dragon in PP mode    [/usr/etc/avrdude.conf:493]
  dragon_isp = Atmel AVR Dragon in ISP mode 
[/usr/etc/avrdude.conf:485]
  dragon_jtag = Atmel AVR Dragon in JTAG mode 
[/usr/etc/avrdude.conf:477]
  jtag2dw  = Atmel JTAG ICE mkII in debugWire mode 
[/usr/etc/avrdude.conf:469]
  jtag2isp = Atmel JTAG ICE mkII in ISP mode [/usr/etc/avrdude.conf:461]
  jtag2    = Atmel JTAG ICE mkII            [/usr/etc/avrdude.conf:453]
  jtag2fast = Atmel JTAG ICE mkII            [/usr/etc/avrdude.conf:445]
  jtag2slow = Atmel JTAG ICE mkII            [/usr/etc/avrdude.conf:437]
  jtagmkII = Atmel JTAG ICE mkII            [/usr/etc/avrdude.conf:429]
  jtag1slow = Atmel JTAG ICE (mkI)           [/usr/etc/avrdude.conf:422]
  jtag1    = Atmel JTAG ICE (mkI)           [/usr/etc/avrdude.conf:414]
  jtagmkI  = Atmel JTAG ICE (mkI)           [/usr/etc/avrdude.conf:406]
  avr911   = Atmel AppNote AVR911 AVROSP    [/usr/etc/avrdude.conf:400]
  avr109   = Atmel AppNote AVR109 Boot Loader 
[/usr/etc/avrdude.conf:394]
  butterfly = Atmel Butterfly Development Board 
[/usr/etc/avrdude.conf:388]
  usbtiny  = USBtiny simple USB programmer, 
http://www.ladyada.net/make/usbtinyisp/ [/usr/etc/avrdude.conf:382]
  usbasp   = USBasp, http://www.fischl.de/usbasp/ 
[/usr/etc/avrdude.conf:376]
  avr910   = Atmel Low Cost Serial Programmer 
[/usr/etc/avrdude.conf:370]
  stk500hvsp = Atmel STK500 V2 in high-voltage serial programming mode 
[/usr/etc/avrdude.conf:364]
  stk500pp = Atmel STK500 V2 in parallel programming mode 
[/usr/etc/avrdude.conf:358]
  stk500v2 = Atmel STK500 Version 2.x firmware 
[/usr/etc/avrdude.conf:352]
  stk500v1 = Atmel STK500 Version 1.x firmware 
[/usr/etc/avrdude.conf:346]
  stk500   = Atmel STK500                   [/usr/etc/avrdude.conf:340]
  avrisp2  = Atmel AVR ISP mkII             [/usr/etc/avrdude.conf:330]
  avrispmkII = Atmel AVR ISP mkII 
[/usr/etc/avrdude.conf:324]
  avrispv2 = Atmel AVR ISP V2               [/usr/etc/avrdude.conf:318]
  avrisp   = Atmel AVR ISP                  [/usr/etc/avrdude.conf:312]

Ich werde aus der Ebaysedite nicht schlau, welcher es sein wird? Stk500 
wird da genannt, also müsste es doch das Ding sein oder?

von Michael H. (Gast)


Lesenswert?

Nachtrag: Es gibt kein ttyUSB0, etc.

Anmerkung: Ich habe bisjetzt keinen Controller zum Programmieren 
angeschlossen. Kann es sein, dass die Fehlermeldung dann normal ist?

von Michael H. (Gast)


Lesenswert?

Nein, STK500 bzw. STK500v1 nimmt er nicht:

root[michael]# avrdude -P /dev/ttyACM0 -c stk500 -p m8
avrdude: stk500_recv(): programmer is not responding
avrdude: successfully opened stk500v2 device -- please use -c stk500v2

avrdude: stk500v2_command(): command failed
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.

root[michael]# avrdude -P /dev/ttyACM0 -c stk500v1 -p m8
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
root[michael]#

von Olli R. (omr) Benutzerseite


Lesenswert?

Michael H. wrote:

>   stk500v2 = Atmel STK500 Version 2.x firmware
>   stk500v1 = Atmel STK500 Version 1.x firmware
>   stk500   = Atmel STK500                   [/usr/etc/avrdude.conf:340]

Einer von denen?

> Ich werde aus der Ebaysedite nicht schlau, welcher es sein wird? Stk500
> wird da genannt, also müsste es doch das Ding sein oder?

Noe, da steh was von stk500v2. Die man-Page von avrdude hat dazu auch 
noch was beizutragen:

"Atmel’s STK500 programmer is also supported and connects to a serial 
port.  Both, firmware versions 1.x and 2.x can be handled, but require a 
different programmer type specification (by now)."

Olli

von Olli R. (omr) Benutzerseite


Lesenswert?

Michael H. wrote:
> Nachtrag: Es gibt kein ttyUSB0, etc.
>
> Anmerkung: Ich habe bisjetzt keinen Controller zum Programmieren
> angeschlossen. Kann es sein, dass die Fehlermeldung dann normal ist?

BITTE? JA KLAR! Einen Controller musst Du schon anschliessen...

Olli

von Michael H. (Gast)


Lesenswert?

Danke, nun geht es! Tausend Dank! Luftsprünge machen

von Olli R. (omr) Benutzerseite


Lesenswert?

Michael H. wrote:
> Danke, nun geht es! Tausend Dank! *Luftsprünge machen*

Kein Problem, ich habe auch schon Naechte mit avrdude und seltsamen 
Programmieradaptern verbracht :-)

Olli

von Olli R. (omr) Benutzerseite


Lesenswert?

Ich wuerde aber nicht als root mit dem avrdude arbeiten.

Einmal ein falsches Device angegeben, schon passieren schlimme Dinge 
(Festplatte platt, Raumstation explodiert, etc).

Lieber als unprivilegierter User arbeiten.

Evtl. klappt das allerdings auf Grund von mangelnden Rechten nicht auf 
Anhieb. Dann mal schauen, wem das Device gehoert:

z.B.:

ls -al /dev/ttyACM0

crw-rw---- 1 root dialout 188, 0 2009-03-05 16:23 /dev/ttyACM0

In dem Fall gehoert es root und der Gruppe dialout, und beide duerfen 
drauf schreiben. Nun musst Du nur noch Mitglied der Gruppe dialout 
werden, als root:

addgroup username dialout

Und Dich neu einloggen.

Olli

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.