USB AVR-ISP

Wer seine kompletten Projekte vorstellen möchte, kann dies hier tun

Moderator: Sebi

USB AVR-ISP

Beitragvon M.A.R.K 13 » 09.05.2009, 23:20

Viele wollen mit µC anfangen.
Manche haben an ihrem PC kein Parallelport, was den Einstig verhindert, da hier ein USB-Programmer benötigt wird, der schon einiges mehr kostet als ein einfache ISP-Kabel wie in den µC-Lehrgängen.
Es geht aber auch billiger!

Schaltplan:

Die Software und Treiber:
    AVRIsp.zip
    Software und Treiber
    (26.57 KiB) 347-mal heruntergeladen
    xpvista7.zip
    Weiterer Treiber
    (5.24 KiB) 298-mal heruntergeladen
    vista64.zip
    Treiber für 64-Bit
    (6.22 KiB) 280-mal heruntergeladen
    ReadyDriverPlus (wird evtl. auch benötigt)


Vorbereitung:

    Hex-File auf den Mega8 laden und den Takt auf
    (111111) Exr. Crystal/Resonator High Freq.: Start-up time 16K CK + 64
    setzen
    .

    Nach dem Aufbau der Schaltung kann diese mit dem PC verbunden werden.
    Dieser erkennt es als AVRISP und wird nach den Treibern fragen. Hier die Treiber aus der Zipdatei angeben.

    Im Gerätemanager sollte er nun unter Anschlüsse als Virtueller Com-Port erscheinen.
    Die Portnummer sollte zwischen 1 und 9 liegen. Ist dies nicht der Fall sollte dies in den Eigenschaften angepasst werden.

    Um den Programmer mit Bascom benutzen zu können wird noch AVR-Studio gebraucht!


Einstellung in BASCOM:
    Option - Programmer

    Programmer: STK500
    COM-Port: wie im Gerätemanager
    STK500EXE: "C:\Program Files\Atmel\AVR Tools\STK500\Stk500.exe" oder "C:\Program Files (x86)\Atmel\AVR Tools\STK500\Stk500.exe"


    LOCK/FUSE-Bits können nicht von BASCOM eingestellt werden.
    Hier braucht man ebenfals AVR-Studio.
    Einstellung in AVR-Studio:
    Tools - Program AVR - Connect..

    Platform: AVRISP
    Port: wie im Gerätemanager


    Der AVRISP wird an den zu programmierenden µC angeschlossen wie das ISP-Kapel aus den Lehrgängen.
    Zur Sicherheit sollte dazu das Gerät vom PC getrennt werden.
    Der 'V+' Anschluß ist dabei optional - falls keine Versorgungspannung am µC anliegt.

    Die LED´s geben Auskunft über den Status.
    D4 leuchtet bei Verbindung mit dem USB-Port.
    D3 rot beim Programmieren; grün wenn das Programmieren abgeschlossen ist.
    (je nach verwendeten Typ und Einbau)


Edit by Tim Sasdrich, RESET vom PC aus:
    Ab und zu passiert es, dass man das Programmiergerät versehentlich kurz aussteckt, die Schaltung aber eigentlich noch testen wollte.
    Damit das Programmiergerät den Reset-Pin wieder auf HIGH-Pegel setzt, kann man das Programm neu übertragen (dauert bei größeren Programmen eine Weile) oder das AVR-Studio öffnen und kurz die Fuse-Bits auslesen (blöder Aufwand).

    Hier gibt es natürlich auch eine einfache Möglichkeit. Man muss nur eine Desktopverknüpfung für die Stk500.exe erstellen (Dateipfad wurde oben genannt). Nun Rechtsklick auf die Verknüpfung, Eigenschaften auswählen und bei Ziel "[Leerzeichen]-dATmega8[Leerzeichen]-cCOM[Portnummer][Leerzeichen]-s" anhängen. Dann sieht es z.B. so aus:
    Code: Alles auswählen
    "C:\Program Files (x86)\Atmel\AVR Tools\STK500\Stk500.exe" -dATmega8 -cCOM2 -s
    Nun kann man noch eine Tastenkombi vergeben (z.B. STRG + ALT + R), ein anderes Symbol auswählen OK klicken. Dann der Verknüpfung noch einen schönen namen geben (z.B. RESET) und fertig.

    Achtung:
    Die Befehle müssen richtig geschrieben sein. Sonst kann es sogar passieren, dass der µC plötzlich verfused ist.

    Erklärung: Was passiert beim Ausführen?
    Der Datei Stk500.exe wird folgendes mitgeteilt:
    • -dATmega8 => Device: ATmega8 => Irgendein µC muss angegeben werden, sonst weigert sich dieses Programm, irgendetwas zu tun. Ob nun tatsächlich ein ATmega8 angeschlossen ist, ist hier egal.
    • -cCOM2 => COM-Port, an dem das Programmiergerät angeschlossen ist. Dieser Befehl ist nicht notwendig, es geht aber schneller, wenn nicht erst das Programmiergerät gesucht werden muss.
    • -s => lese Signatur => irgendein Befehl, der auf den µC zugreift, muss vorhanden sein. Damit nichts kaputt geht, sollte der Befehl nur lesen.
M.A.R.K 13
 

Re: USB AVR-ISP

Beitragvon alterhase » 10.05.2009, 10:36

Tolles Projekt :!: :D

Aber kommt Chef da nicht in Konflikt wenn er es professionell verwerten würde?
Löten verbindet ...manchmals. :mrgreen:
73 55
alterhase
 
Beiträge: 12050
Registriert: 14.11.2008, 08:58
Wohnort: Wien/Kapfenberg

Re: USB AVR-ISP

Beitragvon tungdil » 10.05.2009, 10:59

Nein, der Quelltext steht unter der GPL. Damit muss er lediglich den Lizenztext auf seiner Seite vorhalten (aus dem Shop verlinkt) und angeben, woher die Firmware stammt (Link), sofern er diese nicht verändert.

Wenn er sie verändert, muss zusätzlich der Quelltext zum Download angeboten werden.
tungdil
 

Re: USB AVR-ISP

Beitragvon M.A.R.K 13 » 10.05.2009, 12:35

Dann sollte ich vielecht auch dazu schreiben, daß ich den Code von Elektor bezogen habe.
M.A.R.K 13
 

Re: USB AVR-ISP

Beitragvon Jotte92 » 10.05.2009, 21:44

Kann man damit den Atmega8 auch mit C programmieren :?:
Jotte92
 

Re: USB AVR-ISP

Beitragvon Darki » 11.05.2009, 10:28

Ja natürlich, du kannst eigentlich in jeder Sprache programmieren. Die Frage ist nur ob es einen Compier dafür gibt.
Ich lese keine Anleitungen, ich drücke Knöpfe bis es klappt!
Darki
 
Beiträge: 528
Registriert: 21.11.2008, 17:23

Re: USB AVR-ISP

Beitragvon tungdil » 11.05.2009, 18:36

Im Archiv fehlt der Quelltext, das ist ein Verstoß gegen die GPL. :-)

Das darfst du so eigentlich nicht zum Download anbieten. Du musst zumindest auf eine Downloadmöglichkeit verweisen.

Davon abgesehen: Schön kompakt, gefällt mir, werde ich nachbauen. :-)
tungdil
 

Re: USB AVR-ISP

Beitragvon M.A.R.K 13 » 11.05.2009, 20:04

tungdil hat geschrieben:Im Archiv fehlt der Quelltext, das ist ein Verstoß gegen die GPL. :-)

Das darfst du so eigentlich nicht zum Download anbieten. Du musst zumindest auf eine Downloadmöglichkeit verweisen.

Davon abgesehen: Schön kompakt, gefällt mir, werde ich nachbauen. :-)


M.A.R.K 13 hat geschrieben:Dann sollte ich vielecht auch dazu schreiben, daß ich den Code von Elektor bezogen habe.


Da ich den Quellcode nicht verändert habe sollte es doch so genügen.

Ich hab es ja nur vereinfacht zusammengefasst, daß ein Anfänger sich nicht durch die Ordner wühlen muß um die Dateien zu finden die in meiner Beschreibung verwendet werden.

Oder sollte ich noch das Quellarchiv mit reinnehmen?
M.A.R.K 13
 

Re: USB AVR-ISP

Beitragvon tungdil » 11.05.2009, 20:34

Also, nach GPL musst du den Quellcode bereitstellen. Das ist ja gerade der Sinn der GPL. Es soll bezweckt werden, dass die (Weiter-)Entwicklungen jedem offen stehen. Man kann den Code aber beliebig verändern oder Geräte, die diesen Code verwenden verkaufen. (Also wäre es kein Problem, wenn Chef programmierte AVRs ins Programm aufnehmen würde.) Der Quellcode, der verwendet wird, muss aber wieder allen offen (unter der GPL) zur Verfügung stehen. Es soll verhindert werden, dass jemand von fremdem Code profitiert, ohne dass etwas zurückgegeben wird, bzw. die geleistete Arbeit als seine eigene ausgibt.

Es sollte aber genügen, wenn du im Archiv eine Textdatei mit einem Link zum Download hinterlegst. Einfach nur ein Compilat, ohne den Quelltext anzubieten, reicht aus den oben genannten Gründen nicht aus. Dafür wäre die zweite Lizenz zuständig: Objective Development (die haben den USB-Stack für den AVR entwickelt), bietet zusätzlich zur GPL den Code unter einer proprietären, kommerziellen Lizenz an. Verwendest du diese, musst du den Quellcode nicht veröffentlichen, musst aber Lizenzgebühren an Objective Development entrichten.

Du wirst wahrscheinlich keine Probleme bekommen, wenn du es nicht tust. Aber ein zusätzliches Verzeichnis "src" oder "sources" in das Archiv aufzunehmen, bzw. da du den Code nicht verändert hast, einen Link auf das Original zu hinterlegen, ist für dich kein großer Aufwand, macht das Archiv nicht wesentlich unübersichtlicher und bringt dich rechtlich auf die sichere Seite. ;-)

Darüberhinaus wäre ein Link auf den Originalartikel bzw. zu Objective Development auch fair. Dazu zwingt dich aber niemand. :)
tungdil
 

Re: USB AVR-ISP

Beitragvon M.A.R.K 13 » 11.05.2009, 21:03

So erledigt. Hab jetzt das Archiv von Elektor mit eingefügt. In diesem ist der Quellcode ja enthalten.
Jetzt dürfte es keine Probleme mehr geben.
M.A.R.K 13
 

Re: USB AVR-ISP

Beitragvon tungdil » 11.05.2009, 22:31

Na, dann ist ja alles gut... :D
tungdil
 

Re: USB AVR-ISP

Beitragvon tungdil » 12.05.2009, 12:34

Gerade mal aufgebaut und getestet. Läuft schön. :mrgreen:
tungdil
 

Re: USB AVR-ISP

Beitragvon dussel07 » 12.05.2009, 14:01

Wofür ist die Reihenschaltung der Dioden D1 und D2? Habe solche Konstellation schon öfter gesehen aber verstehe nicht warum.
Will man vieleicht die Spannung etwas reduzieren??
Gruß vom Ahnungslosen :?
Ja, - ich bin Zwilling
Benutzeravatar
dussel07
 
Beiträge: 1627
Registriert: 30.04.2009, 21:04
Wohnort: Goslar

Re: USB AVR-ISP

Beitragvon wahivie » 12.05.2009, 14:23

Wie ich das sehe wird damit die Spannung um 2x 0.7V reduziert. Also von 5V auf 3.6V.
wahivie
 

Re: USB AVR-ISP

Beitragvon tungdil » 12.05.2009, 14:49

Ja, so soll das wohl sein (eigentlich müsste es sogar auf 3.3 V runter, laut Datenblatt liegen die im Originalartikel verwendeten BAS316 da ein gutes Stück näher dran, aber das ist ohnehin alles noch im Toleranzbereich). Praktisch funktioniert das aber nicht besonders gut. Bei mir liegen noch immer 4.2 V an. Das liegt schon außerhalb des Toleranzbereichs einiger AVRs (3.8 V). Man sollte also wohl besser nicht die Zielschaltung über den USB-Port mitversorgen, wenn man nicht die "normalen" AVRs nimmt, die bis 5.5 V ausgelegt sind. Ist ohnehin die Frage, ob man den USB-Port dazu benutzen möchte. Ich versorge meine Zielschaltungen lieber gesondert. Daher habe ich auch einen zusätzlichen Jumper eingebaut um die Versorgungsspannung vom ISP-Stecker zu trennen.

Hier noch ein Bild meines "Quick & Dirty"-Nachbaus von heute morgen.
Dateianhänge
usb-avr-isp-top.jpg
tungdil
 

Nächste

Zurück zu Komplette Projekte

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast