Wasn das für Frage... Natürlich liegt der Sinn darin, den AVR zu programmieren.
Hi Leutz,
bin gerade dabei, meine Jahresarbeit fürs Abi über Mikrocontroller fertig zu stellen und dabei bin ich auf eine Wissenslücke meinerseits gestoßen: Klar brauchen wir alle einen ISP-Adapter, um unsere AVRs zu programmieren, aber wo liegt der Sinn eines solchen Adapters?
Wenn mir jemand die Frage beantworten könnte, wäre superklasse!
Viele Grüße,
Sven
Wasn das für Frage... Natürlich liegt der Sinn darin, den AVR zu programmieren.
Ja, sehr gute Antwort... Wenn ich Daten über die serielle Schnittstelle versende, nutze ich beispielsweise einen MAX232, da Controller und PC-Schnittstelle mit unterschiedlichen Spannungen arbeiten.
Beim ISP-Adapter gibt es unterschiedliche Varianten: Mit "schützendem" Dongel oder einfach nur mit Dioden - die Auswahl an Anleitungen im Internet ist da ja groß.
Ich muss wissen, welche Funktion der ISP-Adapter beim Programmieren hat. Kann mir diese Frage jemand beantworten?
Gruß,
Sven
Der ISP Adapter ist dazu da, um das Programm von PC in den Flash Speicher des Controllers zu übertragen. Daneben kann man auch das EEPROM und die Fuses (Taktquelle, usw.) einstellen. Die Daten werden über 4 Leitungen + GND (und meistens noch Vcc) seriell mit Logicpegel, je nach Vcc der Schaltung übertragen. Da die PCs keine entsprechente Schnittstelle haben, braucht mein die Adapter, die zum Teil auch nur ein bischen Schutz für den PC und den passenden Stecker bieten.
Je nach Controller kann man mit einem Bootloader Programm im Controller auch einen Teil des Controllers (z.B. keine Fuses) über eine andere Schanittstelle, z.B. Serielle der USB programmieren. Um erst mal das Bootloader Programm draufzukriegen braucht man aber erst einmal einen ISP Adapter (oder einen anderen Programmieren). Je nach Chip gibt es noch andere Programmiermöglichkeiten (JTAG,Debugwire, Hochvolt), die man aber für den Anfang nicht braucht.
okay, vielen dank für die Antwort! Leider wusste ich das alles nur schon... Kannst du bitte noch einmal auf deinen unten gequoteten Satz etwas genauer eingehen?
Welche Schnittstelle genau hat der Rechner nicht, die der Adapter bereit stellt? Wie gesagt, es gibt ja auch Möglichkeiten, den µC direkt mit dem Parallelanschluss über ein paar Dioden anzuschließen. Insofern frage ich mich: Welche Rolle spielen der Adapter (Spannungswandel etc.) bzw. die Dioden?Da die PCs keine entsprechente Schnittstelle haben, braucht mein die Adapter,
Viele Grüße,
Sven
Hallo
Hier beschreibt ATMEL, wie der Programmer funktioniert:
http://atmel.com/dyn/resources/prod_...ts/doc0943.pdf
Das ist die ApplicationsNote AVR910, die Grundlage für die gleichnahmigen Adapter.
AVR109 beschreibt die SelfProgramming-Funktion der AVRs und AVR911 ist ein OpenSource-Programm dazu.
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Der Punkt ist doch, dass die parallele Schnittstelle am PC einfacher zu programmieren ist, als die Serielle. Denn man kann einfach Bits in gewünschter Reihenfolge setzen oder nicht. Bei der Seriellen muss man nicht nur die Pegel ändern, sondern auch das gesamte Protokoll, mit Stopbits usw. Das ist wesentlich komplizierter.
Das alles ist notwendig, weil der PC keine ISP-Schnittstelle hat, oder besser gesagt keine SPI, die zu einer ISP umfunktioniert werden kann.
Die Geschichte mit den Diode ist meines Wissens nach nicht nur weniger sicher für den Rechner sondern auch weniger kompatibel zu "Standard-Programmiersoftware" Schließlich haben sich einige Leute auf diese Schnittstelle "geeinigt" und ihre Programme dafür geschrieben. Letztendlich macht es kaum einen Unterschied, ob ich ein paar Dioden oder ein IC auf eine Platine löte.
Besser?
Gruß
Alles klar! Das hat mir sehr gut weitergeholfen! Vielen Dank! Ich werde mir jetzt gerade mal das Teil von Atmel anschauen und wenn ich nicht weiterkommen sollte, dann melde ich mich nochmal.
Eine Frage stelle ich trotzdem nochmal: In dem ISP-Adapter aus dem Wiki ist ein Bus-Treiber (74HC244N) verbaut. Was genau ist ein Bus-Treiber und welche Funktion hat der in diesem Adapter?
Vielleicht weiß dazu noch jemand eine Antwort
Viele Grüße,
Sven
Hi,
Ein Bus Treiber verstärkt letztendlich die Ströme eines TTL Eingangspegels. Er soll einfach nur dafür sorgen, daß der TTL Pegel auch garamntiert eingehalten wird. Es gibt heutzutage auch Druckerschnittstellen, die nur mit 3,3V arbeiten. In diesem Fall wird auch der Pegel etwas erhöht.
Du muss auch unterscheiden: Es gibt einfache Programmeradapter, die lediglich einige Anschlüsse des Druckerports ausnutzen und daraus per SW die entsprechenden Programmierimpulsfolgen auf den AVR geben.
Warum sich die Leute hier im Forum ständig mit diesen Billig Dingern rumärgern, hat mir noch nie so richtig eingeleuchtet. Da Windows kein Echtzeitbetriebsystem ist, wundert mich sowieso, daß dies überhaupt funktioniert.
Die "richtigen" Programmieradapter basieren eben auf das Atmel doc AVR910. Hier werden die Programmierimpulse vom eingebauten 90S1200 erzeugt. Dabei werden nur die entsprechenden Datenbytes seriell vom PC über die Leitung geschoben. Dieser Adapter kostet nur einige Pennys mehr
Gruß
pctoaster
Okidoki, dann kann ich das jetzt auch beschreiben Ich danke euch allen nochmals für die Mühe!
Viele Grüße,
Sven
Lesezeichen