www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik STK500 mit Ubuntu 9.10 über RS232 läuft nicht


Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Da ich von jeher für die kreativen Aufgaben lieber Linux nutze, wollte 
ich mein STK500 auf Linux zum laufen bringen (unter Windows klappt 
alles)

Das c-Plugin für Eclipse habe ich schon installiert. Alles läuft soweit 
auch gut, wird kompiliert und die .hex Datei wird ordnungsgemäß 
erstellt.

Leider schaffe ich nicht, das Programm auf den Controller zu schaufeln. 
Als Programmer wähle ich beim avrdude das STK500. Definiere ich beim 
Port extra /dev/ttyS1 folgt die Ausgabe:

avrdude: ser_open(): can't set attributes for device "/dev/ttyS1": 
Inappropriate ioctl for device

Das gleiche bis ttyS3, obwohl nix dransteckt.

Definiere ich keinen Port folgt

avrdude: stk500_2_ReceiveMessage(): timeout

Leider finde ich im Netz nur lauter Anleitungen, die das Board über 
einen Adapter mit USB verbinden. Ich besitze allerdings einen richtigen 
RS232 Anschluss. Mein Betriebssystem ist Ubuntu 9.10.

Hat irgendwer vielleicht eine Idee was ich falsch mache?

Mit freundlichen Grüßen

Bernd Peukert

Autor: Robert Weber (rweber)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dir ist aber bekannt, dass ttyS1 die 2. Schnitstelle ist?

Schau mal welche Schnittstellen dein Rechner kennt:

% ls -d /sys/class/tty/ttyS*
/sys/class/tty/ttyS0  /sys/class/tty/ttyS2  /sys/class/tty/ttyS4 
/sys/class/tty/ttyS6
/sys/class/tty/ttyS1  /sys/class/tty/ttyS3  /sys/class/tty/ttyS5 
/sys/class/tty/ttyS7

und ob sich die korrekte Hardware dahinter verbirgt:

% setserial -g /dev/ttyS0
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
% setserial -g /dev/ttyS1
/dev/ttyS1, UART: 16950/954, Port: 0xe480, IRQ: 19


Gruss,
rweber

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Robert

Vielen Dank erstmal für die Antwort.

Ich hab das nachgeprüft:

bernd@bernd-desktop:~$ ls -d /sys/class/tty/ttyS*
/sys/class/tty/ttyS0  /sys/class/tty/ttyS2
/sys/class/tty/ttyS1  /sys/class/tty/ttyS3
bernd@bernd-desktop:~$ setserial -g /dev/ttyS0
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
bernd@bernd-desktop:~$ setserial -g /dev/ttyS1
/dev/ttyS1, UART: unknown, Port: 0x02f8, IRQ: 3

Tja mit der Ausgabe an ttyS1 kann ich nichts anfangen. Wenn ich beim 
avrdude ttyS0 nutze kommt wie gesagt der

avrdude: stk500_2_ReceiveMessage(): timeout

Bin immernoch ratlos. Muss man beim programmer noch mehr einstellen als 
den port?

Viele Grüße
Bernd

Autor: A. F. (frankalicious)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
- Auch mal als root getestet?
- Programmierstecker(ISP6PIN) ist gesteckt?

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Die Stecker sind alle korrekt. Habe nix verändert. Unter Windows läuft 
alles wie es soll.

Auch als su bekomme ich den gleichen Fehler. Immer timeout :-/

Grüße
Bernd

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

Bewertung
0 lesenswert
nicht lesenswert
Bernd schrieb:

> Tja mit der Ausgabe an ttyS1 kann ich nichts anfangen.

Klingt nicht wie eine normale UART.  Kannst ja ggf. in den Bootmeldungen
mal nachsehen, ob da noch weitere Informationen zu finden sind.  Diese
stehen normalerweise in /var/log/boot.log.  Ansonsten musst du deinen
Computer befragen, was er an Port 0x2f8 angeklemmt hat. ;-)

> Wenn ich beim
> avrdude ttyS0 nutze kommt wie gesagt der

Der dann sehr wahrscheinlich der richtige ist...

> avrdude: stk500_2_ReceiveMessage(): timeout

Mit welcher genauen Kommandozeile?

Für einen Test kannst du mal Pin 2 und 3 am 9-poligen RS-232-Stecker
verbinden und aufrufen
avrdude -c stk500v2 -P /dev/ttyS0 -p m8 -vvvv

Du müsstest dann irgendwie das Echo der Kommunikation sehen können.

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich hab den echo test jetzt gemacht. Es folgen wieder nur weitere 
timeouts. Leider kein Echo zu detektieren.

EIne Sache verwundert mich außerdem noch. Ich habe zwei rs232 durch eine 
pci Karte, aber setserial liefert nur bei ttys0

/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4

Alle anderen sind

bernd@bernd-desktop:~$ setserial /dev/ttyS1
/dev/ttyS1, UART: unknown, Port: 0x02f8, IRQ: 3
bernd@bernd-desktop:~$ setserial /dev/ttyS2
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4

Muss ich die Ports bei Ubuntu erst irgendwie aktivieren?

Viele Grüße
Bernd

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem ist gelöst, die Ports mussten erst korrekt eingerichtet 
werden:

http://forum.ubuntuusers.de/topic/wie-krieg-ich-de...

hat mir geholfen. Jetzt funktioniert alles.

Viele Grüße
Bernd

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.