www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Serielle Kommunikation verstehen


Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute!
Könnt ihr mir bei einem kleinen Verständnisproblem helfen? Ein 
Programmer-Tool wie z.B. PonyProg kann ja über die Setielle 
Schnittstelle einen AVR programmieren. Dabei werden 5 Leitungen benutzt.
Aber so ein COM-Port am PC kann ja auch für andere Schnittstellen (USB 
oder Bluetooth) benutzt werden, die nur 2 Leitungen besitzen.
Könnte man also auch mit PonyProg über so eine Verbindung programmieren 
(ist ja für das Programm immer noch nur ein einfacher COM Port, was 
dahinter kommt sieht es ja nicht?)?

Danke!

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ralf wrote:
> Hallo Leute!
> Könnt ihr mir bei einem kleinen Verständnisproblem helfen? Ein
> Programmer-Tool wie z.B. PonyProg kann ja über die Setielle
> Schnittstelle einen AVR programmieren. Dabei werden 5 Leitungen benutzt.
> Aber so ein COM-Port am PC kann ja auch für andere Schnittstellen (USB
> oder Bluetooth) benutzt werden, die nur 2 Leitungen besitzen.
> Könnte man also auch mit PonyProg über so eine Verbindung programmieren
> (ist ja für das Programm immer noch nur ein einfacher COM Port, was
> dahinter kommt sieht es ja nicht?)?

Nein.

Die 5 Leitungen kommen deshalb zustande, weil der AVR an seiner
ISP Schnittstelle 5 Leitungen bedient haben will. Im Grunde
könnte man an einem PC jegliche Schnittstelle dafür einsetzen,
solange es nur gelingt diese 5 Leitungen richtig zu bedienen.

Und hier liegt auch dein Denkfehler. Die serielle Schnittstelle
am PC wird gar nicht als serielle Schnittstelle im eigentlichen
Sinn benutzt. Für Ponyprog sind das einfach nur 5 Leitungen, die
nach draussen führen und die vom Programm aus angesprochen
werden können. Gleichzeitig resultiert daraus auch das grosse
Problem, von dem hier in diesem Forum immer wieder berichtet
wird. Ein ordentliches Betriebssystem kann es nämlich nicht
so ohne weiteres zulassen, dass sich jedes dahergelaufene
Programm so mir nichts dir nichts direkt an der Hardware
vergreift und die Schnittstelle in einer Art und Weise benutzt,
für die sie gar nicht vorgesehen ist.

Autor: Obelix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die µCs R8C/M16C von Renesas werden über die ganz normale RS232 
Schnittstelle geflasht und debuggt. Bei diesen hättest du also die 
Möglichkeit, ohne großen Aufwand, über USB (FTDI-Chips) oder Bluetooth 
zu "In System" zu programmieren.

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber man könnte doch ans andere Ende der Leitung einen AVR setzen, der 
zuerst die das . hex file vom PC empfängt (über 2 Leitungen), und dann 
über 5 Pins einen anderen AVR programmiert? Oder ist das Protokoll da zu 
kompliziert?

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ralf wrote:
> Aber man könnte doch ans andere Ende der Leitung einen AVR setzen, der
> zuerst die das . hex file vom PC empfängt (über 2 Leitungen), und dann
> über 5 Pins einen anderen AVR programmiert? Oder ist das Protokoll da zu
> kompliziert?
Was glaubst Du, was kommerziell erhältliche Programmer (z.B. der AVRISP 
[MK II]) machen? Genau! Da sitzt ein kleiner schnuckeliger AVR drin, der 
vom PC über die ganz stinknormale RS232 die Daten bekommt und sie an den 
Ziel-AVR weiterschickt.

PonyProg kommt eben ohne den "Übersetzer"-AVR aus, benötigt dafür aber 
direkten Zugriff auf die Signalleitungen der seriellen Schnittstelle, 
was erstens einige Betriebssysteme nicht mögen und zweitens voraussetzt, 
dass man eine echte RS232 am Rechner hat, und keinen Wandler (USB-RS232) 
dazwischen. Hat eben den Vorteil, dass es billiger ist und dass man 
keinen zweiten µC braucht, der ja, wenn man nicht grad ein kommerzielles 
Gerät kauft, auch erstmal irgendwie progrmmiert werden muss.

Mittlerweile verzichten aber im AVR-Bereich (und afaik auch bei anderen 
µC-Familien, die die entsprechende Hardware-Ausstattung besitzen) viele 
fast ganz auf das lästige ISP und brennen einen Bootloader in den µC, 
der dann direkt über RS232 ohne den "Übersetzer" dazwischen 
kommunizieren kann.

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ahja, das macht Sinn. Danke für die auführlichen Erläuterungen.
Dauert das Programmieren mit einem Bootloader denn länger als mit einer 
5 Poligen Schnittstelle?

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ralf wrote:
> Ahja, das macht Sinn. Danke für die auführlichen Erläuterungen.
> Dauert das Programmieren mit einem Bootloader denn länger als mit einer
> 5 Poligen Schnittstelle?

Vermutlich nicht, es kommt aber auf die Effizienz des Bootloaders an.

Tempo ist aber nicht Alles. Zuverlässigkeit sollte man auch nicht 
vernachlässigen. Die ist bei Bitbanging nur gegeben, wenn OS und 
PC-Hardware mitspielen. Pony arbeitet gerne "am Limit", was bei 
ungünstigen Umständen zu Fehlern (bis hin zu verstellten Fuses) führen 
kann.

...

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann noch eine Frage hinterher. Angenommen ich benutze einen AVR 
(master) um einen anderen (slave) zu programmieren.

Dazu schaufle ich erstmal das .hex file auf den Master, und verbinde 
MISO, MOSI etc. des slaves mit ein paar Ausgängen des Masters.
Wie schwierig ist es nun, das Programm vom Master auf den Slave zu 
übertragen?
Hat das schon mal jemand gemacht? Ist das Protokoll irgendwo leicht 
verständlich dokumentiert, oder handelt es sich dabei um ein wohl 
gehütetes ATMEL Geheimnis? ;-)

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ISP-Protokoll steht im Datenblatt. Außerdem gibts Application Notes 
zu dem Thema (bin mir jetzt nicht ganz sicher und hab auch grad keine 
Zeit/Lust, nachzusehen, aber ich meine, es hätte zu dem ursprünglichen 
AVRISP sogar die Software für den Programmer-AVR samt Doku gegeben).

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ISP-Protokoll ist öffentlich (Datenblatt). Die Schaltung etlicher 
(modifizierter) ATMEL-Nachbauten sind auch öffentlich verfügbar. Die 
Firmware gibts im (kostenlosen) AVR-Studio, ist also auch verfügbar.

Durchsuche mal das Forum nach Programmer und 7 Euro, dann findest Du 
sicher ein Projekt, das Deine Wünsche erfüllt.

...

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.