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!
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.
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.
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?
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.
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?
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. ...
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? ;-)
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).
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. ...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.