Einstieg USB Programmer

OP #2102962
Lesenswert?

Hallo,
lese schon seit längerem im Forum über Mikrocontroller aber komme nicht 
so zurecht. Ich bin Neuling auf dem Gebiet aber möchte dies ändern, da 
ich es als ein sehr interessantes Gebiet finde.

Möchte mir einen USB Programmer selber bauen. Habe einen gefunden der 
relativ leicht aufgebaut ist.
http://www.fundf.net/usbasp/usbasp_schematic.pdf
Ich möchte gerne mit einem ATMEGA 8 anfangen. Habe jetzt im Forum 
gelesen das dieser USB Programmer auf einen ATMEGA64 begrenzt ist. 
http://www.fischl.de/usbasp/

Jetzt weiß ich nicht ob ich mir gleich von vorneherein einen bauen soll 
der mehr kann? (Für die Zukunft gesehen)

Noch eine Grundlegende Frage... Der Mikrocontroller der auf dem USB 
Programmer sitzt wird auf diesem das Programm geladen, anschließend 
rausgezogen und in eine Entwicklungsumgebung gesteckt? Oder wird das 
Programm über USB -> Mikrocontroller auf USB Programmer -> CON2 
Schnittstelle auf den Mikrocontroller der auf einem Entwicklungsboard 
sitzt geladen?

Danke im voraus für Ihre Hilfe

Gruß Dominik
Gast #2102968
Lesenswert?

Der Programmer ist nicht auf den ATM64 begrenzt, der kann eigentlich mit 
allen ATMega und ATTiny umgehen(alle mit SPI ISP)

Der Programmer ist ein Programmer ;)
d.h. der wird an deine Zielschaltung angeschlossen und programmiert den 
Chip der in der Zielschaltung sitzt.

Du hast nur das Problem wie bekommst du das Betriebssystem des 
Programmers in den Programmer ohne schon einen zu besitzen.
OP #2102992
Lesenswert?

Da ich keine Ahnung von Punkt 2 habe werde ich nicht drumherum kommen 
einen zu kaufen, oder ist Punkt 2 leichter zu realisieren als ich denke?

Also wenn ich mir den USB Programmer von Fischl kaufen würde wäre da 
dann ja schon ein Betriebssystem darauf geladen?

Danke für die schnellen Antworten
#2103023
Lesenswert?

Dominik W. schrieb:
> Also wenn ich mir den USB Programmer von Fischl kaufen würde wäre da
> dann ja schon ein Betriebssystem darauf geladen?
Sollte so sein.

> Da ich keine Ahnung von Punkt 2 habe werde ich nicht drumherum kommen
> einen zu kaufen, oder ist Punkt 2 leichter zu realisieren als ich denke?

Serieller Programmer:
http://core.st/projects/Serial_programmer/
(eventuelle Probleme mit USB-Seriellwandlern)


Paralleler Programmer:
STK200
(läuft nur mit echtem Parallelport an ISA-Adresse - jedenfalls bei 
Windows) In ner virtuellen Maschine über VWware sollte das aber auch mit 
ner Parallelport Karte (PCI oder PCIe) funktionieren.

Beide Programmer lassen sich über avrdude ansprechen.

Gruß Skriptkiddy
Gast #2103072
Lesenswert?

>Wenn Du Platz im PC hast kann man eine Serielle PCI Karte reinstecken.

Man kann sich den ganzen Quatsch auch sparen und einen AVRISP MKII
für 38€ kaufen. Dann funktioniert wenigstens der Programmer
von Anfang an. Softwareupdates gibt es vom Hersteller
und nicht von irgendeinem Fuzzi der seine Arbeit von heute
auf morgen einstellen kann. Hat nebenbei auch noch ein schickes
Gehäuse und die Kabel sind dabei.
#2103073
Lesenswert?

Für einaml flashen reicht auch der hier:
http://gopchandani.wordpress.com/2007/01/18/the-atmega32-programmer/

avrdude commandline:
1
avrdude -c stk200 -p <device> -P <port> -U flash:w:<hexfile>

<device> m8 (für ATMega8)

<port>  z.B. lpt1

<hexfile> das hexfile für den usbasp
(avrdude sollte aus dem Ordner aufgerufen werden, indem das hexfile 
liegt)

Irgendwo findest du sicher einen Rechner mit Parallelport.
#2103242
Lesenswert?

holger schrieb:
> Man kann sich den ganzen Quatsch auch sparen und einen AVRISP MKII
> für 38€ kaufen. Dann funktioniert wenigstens der Programmer
> von Anfang an.

Bin genau der selber Meinung, ich denke gerade für den Einstig ist 
besser ein vernünftiges Programmer zu kaufen als jeder Menger Stress mit 
... ... und ... und ... und.

Allerdings kommt auch darauf an was du für Betriebsystem benutzt, wenn 
du Linux hast dann ist ein USBasp vollkomen in Ordnung, wenn du aber 
Windows benutzt dann geht gleich los !!!
Ein USBasp würde dann Problemlos mit XP usw. arbeiten (glaube unter Win7 
auch ohne Probleme) das aber mit 32Bit Windows Betriebsysteme unter 
64Bit muß man 1000 Dinge machen damit er funktioniert.

Gruß
Martin
OP #2103266
Lesenswert?

Ich steh irgendwie komplett auf dem Schlauch :-(
Also hab mir jetzt diese Leitung gelötet.
http://gopchandani.wordpress.com/2007/01/18/the-atmega32-programmer/
Wie wird mein Mikrocontroller angeschlossen?

Habe AVR Studio installiert, AVRDUDE runtergeladen und den USB Treiber 
in Windows->System 32 Ordner kopiert.
Habe gelesen das ich AVRDUDE nur mit einem zusätzlichen Programm wie AVR 
Studio installieren kann.
Wie muss ich weiter machen? Habe leider keinen blaßen Schimmer.


Kurz noch zu meinem Hintergrundwissen:
Habe im Februar 2010 meine Ausbildung zum Mechatroniker abgeschlossen.
Hatte danach 1 Jahr Berufserfahrung wo ich sehr wenig mit Elektrotechnik 
zu tun hatte. Jetzt habe ich vor 3 Wochen mit dem Elektrotechniker 
angefangen.
Hatte mit mikrocontroller oder ähnlichem noch nie zu tun.


Mein System:
Windows 7 64 bit
oder Laptop mit Parallelport Windows xp 32 bit
Gast #2103304
Lesenswert?

>Ich steh irgendwie komplett auf dem Schlauch :-(
>Also hab mir jetzt diese Leitung gelötet.
>http://gopchandani.wordpress.com/2007/01/18/the-at...
>Wie wird mein Mikrocontroller angeschlossen?

Steht im Datenblatt.

>Habe AVR Studio installiert, AVRDUDE runtergeladen und den USB Treiber
>in Windows->System 32 Ordner kopiert.

Kannst du gleich wieder deinstallieren.

>Wie muss ich weiter machen? Habe leider keinen blaßen Schimmer.

Da steht doch dick und fett PONYPROG auf der Seite.
Gast #2103417
Lesenswert?

Hi

>Habe im Februar 2010 meine Ausbildung zum Mechatroniker abgeschlossen.
>Hatte danach 1 Jahr Berufserfahrung wo ich sehr wenig mit Elektrotechnik
>zu tun hatte. Jetzt habe ich vor 3 Wochen mit dem Elektrotechniker
>angefangen.

Dann besorge dir einen AVR ISP MKII. Früher oder später lässt du eh die 
Finger von diesen Second-Hand-Programmern

MfG Spess
#2111613
Lesenswert?

So jetzt bin ich wieder da und habe eine Menge neuer Fragen ich hoffe 
ihr könnt mir wieder helfen. Ich habe jetzt einen Programmer mit einer 
Parallelen Schnittstelle aufgebaut und funktioniert auch :-)

1. Wenn ich mein Programm ändere muss ich den Mikrocontroller zuerst 
löschen oder zurücksetzten bevor ich das neue Programm darauf lade?

2. Warum wird bei einem USB Programmer ein Mikrocontroller benötigt. 
Liegt das an dem weil man bei usb einen treiber benötigt und bei 
Parallel Port nicht? Was muss auf den Mikrocontroller? Betriebssystem?

3. Wenn ich mir ein Entwicklungsboard aufbaue habe ich dann irgendeinen 
Nachteil wennn ich einen USB Programmer gleich mit integriere?

4. Werden Dioden und Schalter immmer über Masse geschalten?

5. Sollte ich einen internen Pullup Widerstand bei Schalter verwenden 
oder externen?

Danke im voraus
#2111697
Lesenswert?

Dominik W. schrieb:
> Aber meiner Meinung nach kann ich viel mehr lernen wenn ich alles selber
>
> aufbaue. Wenn ich das soweit behersche kann das schon sein das ich mir
>
> dann einen kaufe aber bis dahin möchte ich das selber machen.

Nein. Andersrum wird ein Schuh draus.

Sicherlich kannst du dir irgendeinen Bitbanger für Parallelport oder 
RS232 bauen. Flashen musst du gar nichts. Das Programm läuft ja auf dem 
PC.

Dann baust du deine erste Schaltung auf und nichts geht.

Und woran liegt das jetzt?

An deiner Schaltung? An deinem Programmer? An Windows? ( Wird ja immer 
gerne genommen). Oder daran, daß dein Parallelport statt 5V nur 3,3V 
hat?

Bau dir nicht gleich am Anfang mehrere Kriegsschauplätze auf. Da kann 
man schnell dran verzweifeln und noch schneller die Lust verlieren.

Und davon, daß man ein paar Widerstände an einen 25-poligen Stecker 
lötet, lernt man so gut wie gar nichts.

mfg.
#2111698
Lesenswert?

Eher anders herum wird das was. Ein Mechaniker-Lehrling schmiedet sich 
nicht selbst seinen Hammer oder konstruiert die Drehmaschine selbst. Das 
macht man wenn man genügend Erfahrung hat. Ein Programmer ist ein 
Werkzeug, mehr nicht. Sowas baut man selber, wenn einem die Funktionen 
der fertigen nicht reichen, oder man was ganz spezielles vorhat. Zumal 
man dann immer das Henne-Ei Problem hat. Wie kommt die Firmware des 
Programmers ohne Programmer drauf?
#2111711
Lesenswert?

1. Wenn man einen neuen Text an die Tafel schreiben will muss sie erst 
einmal sauber gewischt sein.
2. Uber die USB-Verbidung kommen Kommandos und Daten in Form von 
ASCII-Folgen, mit denen der Zielkontroller (target) nichts anfangen 
kann. Dieser benötigt Befehle in Form von bits, die in Reihenfolge des 
Takts an den ISP-Leitungen ankommen. Die Umsetzung USB-RS232-ISP macht 
der Kontroller.
3. Der einzige Nachteil ist der, dass, wenn man später ein target 
programmieren will, das auf einer eigenen Platine sitzt. Da muss man 
dann beides, Kontoller und Entwicklungsplatine aus der Kiste holen. Der 
Programmer lässt sich in einem Steckergehäuse alleine unterbringen.
4. Nicht immer: Bei den meisten Kontrollern ist das Schalten gegen Masse 
rationeller, denn so ersetzt man einen Widerstand durch den internen 
pullup-Widerstand des Kontrollers. (was ist mit Dioden gegen Masse 
schalten gemeint?)
5. wohl durch 4. beantwortet
Gast #2111734
Lesenswert?

Wie alle anderen auch schreiben, laß die Finger von
dem Bit-Banging-Zeug und ähnlichem Schrott.
Bei ca. 40EUR täte ich es mir nicht an sowas zu bauen.

(Gut, mag bei Serienfertigung anders sein, mit dem Programmer,
da muß dann noch was besseres her, der Bestücker holt sich seine
Investition wieder beim Kunden rein, ich kenne das Spiel nur
zu gut.)

Der Original AVR ISP MKII funktioniert, Firmware wird
von Atmel gepflegt, und nicht von irgend jemand,
neuer µC, Firmwareupdate und das Ding paßt wieder.

Betrachte den Programmer als notwendiges Arbeitgerät wie deinen
Drucker oder die Tastatur, da kämst du doch auch nicht auf die
Idee das selber zu machen.

Wenn du lernen willst gibt es genug interessante Schaltungen
zum Nachbauen und selber entwickeln.
Gast #2111999
Lesenswert?

Hallo Dominik!

> Aber meiner Meinung nach kann ich viel mehr lernen wenn ich
> alles selber aufbaue. Wenn ich das soweit behersche kann das
> schon sein das ich mir dann einen kaufe aber bis dahin möchte
> ich das selber machen.

Also prinzipiell stimme ich den anderen zu, wenn Du Dir einen fertigen 
Programmer kaufst, dann hast Du gleich etwas vernünftiges was auch auf 
Anhieb funktioniert. Wenn Du aber auf Teufel komm raus eigene 
Erfahrungen sammeln möchtest, dann möchte ich Dir hierzu ein paar Infos 
mit auf den Weg geben...

Meiner Meinung nach ist es sehr Sinnvoll einen separaten USB-Chip zu 
verwenden, wie z.B. den FT232R. Der FT232R hat zertifizierte Treiber und 
damit wird er auch von jedem gängigen Betriebsystem erkannt. Des 
Weiteren sollte Dein Programmer mit einen STK500v2 Protokoll arbeiten, 
damit ist er zur original AVR Software kompatibel. Mein Favorit als 
Programmer ist dieser hier:
http://www.pcfilter.de/AVR-Ecke/Page12.html
Oder das Original:
http://www.tuxgraphics.org/electronics/200705/article07052.shtml
Der Programmer funktioniert problemlos unter Win7 (auch x64), ist vom 
Preis her nicht all zu teuer und Du kannst ihn mit der AVR Software 
verwenden (natürlich auch mit AVRdude). Aber wie schon weiter oben 
beschrieben, Du hast hier ein „Henne Ei“ Problem. Du musst erst die 
Firmware in den Programmer laden, damit Du ihn verwenden kannst. Dazu 
kannst Du aber den STK200 Programmer verwenden, den Du Dir bereits 
ausgebaut hast. Ich verwende den Programmer schon seit sehr langer Zeit 
und ich hatte damit noch nie Probleme...

LG Jens
Persönliche Seite #2112041
Lesenswert?

Dominik W. schrieb:
> 1. Wenn ich mein Programm ändere muss ich den Mikrocontroller zuerst
> löschen oder zurücksetzten bevor ich das neue Programm darauf lade?

Ich verwende avrdude, der löscht erstmal das Flash bevor er schreibt. Ob 
das zwingend nötig ist, steht sicher im Datenblatt des MC.

> 2. Warum wird bei einem USB Programmer ein Mikrocontroller benötigt.
> Liegt das an dem weil man bei usb einen treiber benötigt und bei
> Parallel Port nicht? Was muss auf den Mikrocontroller? Betriebssystem?

Die Programmierung eines MC ist zwar nicht sooo zeitkritisch, aber der 
OS Scheduler wird das Brennprogramm (avrdude & co) alle paar ms mal nach 
Gutdünken unterbrechen, um wasweisichalles zu erledigen. Timing ist also 
ziemlich "holprig", zuverlässiges Brennen funzt wahrscheinlich am besten 
mit ultralowspeed... ;)

Deshalb ist der USB Programmer mit eigenem MC viel zuverlässiger. Und 
dank USB kannst du ihn auf jedem halbwegs modernen Rechner mit halbwegs 
modernem OS ohne Probleme verwenden. Du könntest auch einen USB 
Programmer ohne eigenen MC einsetzen, das ist dann wieder ähnlich wie 
das Arbeiten mit dem PP -> bitbang mode.

> 3. Wenn ich mir ein Entwicklungsboard aufbaue habe ich dann irgendeinen
> Nachteil wennn ich einen USB Programmer gleich mit integriere?

Kosten, unnütze Bauteile aufm Board, unter Umständen sind dann auch die 
entsprechenden Pins am MC für nix anderes mehr zu gebrauchen.

Würde eher einen kleinen Bootloader einmalig auf den jungfräulichen MC 
schreiben, der die "Selbstprogrammierung" erlaubt. Wird z.B. bei der 
Arduino Firmware so gemacht.

> 4. Werden Dioden und Schalter immmer über Masse geschalten?

Bei den Schaltern mache ich's gern so, weil's weniger Power benötigt 
(solange Schalter standardmässig auf ist) und weniger Bauteile (ich 
aktiviere den MC-internen "pull-up" Widerstand).

Dioden, äh kommt drauf an, was du mit denen machen willst. ;o)


> 5. Sollte ich einen internen Pullup Widerstand bei Schalter verwenden
> oder externen?

Wie es dir beliebt. Die internen tun es perfekt, wieso also externe 
verbauen?
#2112136
Lesenswert?

Dominik W. schrieb:
> Also mit dioden meinte ich leds.
> Was muss ich dann auf den Controller laden der auf meinem Programmer
> sitzt?
> Danke

LED's werden auch zum Pluspol hin geschaltet, das ist zum Beispiel bei 
7-Segment-Displays mit gemeinsamer Kathode der Fall. Das hängt etwas von 
den Eigenschaften der Ausgänge ab: manche können nur als Stromsenke 
arbeiten, andere in beiden Richtungen.

Der Kontroller des Programmers enthält als sogenante firmware das 
Programm, das die Kommandos und Daten vom PC per USB aufnimmt und sie in 
ISP-Signale umsetzt. Außerdem setzt er die vom target her ans ISP 
gegebene Informationen (Signatur, Stand der fuses...)in Signale für die 
USB-Verbindung um.

Beim selbstgebauten Progger wird im einfachsten Fall kein Kontroller 
verwendet, sondern die Intelligenz wird vom Programm ponyprog 
übernommen.
Im komfortablen Fall baut man eine Baugruppe auf, die einen Kontroller 
z.B.atmega8 enthält. Dieser atmega8 wird entweder programmiert geliefert 
oder man muss die Software vom Internet herunterladen, die zur 
betreffenden Hardware passt und sie auf den atmega8 übertragen.

Davon getrennt ist dann das target, der Kontroller des Anwenders, der 
mit dem Kontroller des Proggers garnichts zu tun hat, also ein ganz 
anderer Kontrollertyp sein kann.
Gast #2113664
Lesenswert?

Hallo Dominik!

> Was ich jetzt verstanden habe ist das ich einen  FT232R verwenden
> kann oder einen Atmega8. Ist das Richtig?

Nein. Der FT232R stellt die Verbindung zwischen PC und ATmega8 her UND 
im ATmega8 läuft die Firmware (das STK500v2 Protokoll). Die Kombination 
beider Chips, mit der bestimmten Firmware, bildet den Programmer. Warum 
verwendest Du nicht den Schaltplan von dem Link, da ist doch alles 
eindeutig beschrieben!!!

LG Jens
Gast #2114466
Lesenswert?

Hallo Dominik!

> Sorry hatte mir bloß den ersten Link angesehen da wo der
> Programmer in Smd Bauweise aufgebaut ist. Werde den
> Schaltplan vom zweiten link aufbauen und mich dann wieder
> melden wenn ich probleme habe.

Dominik, was soll man denn noch alles veröffentlichen??? Hier steht: 
„Wer sich den AVR-USB-STK500v2-Programmer nachbauen möchte, der kann 
sich hier Schaltplan und Layout herunter laden. (Das Layout wurde mit 
Target3001! Erstellt)“. Darunter findest Du einen Link für ein 
ZIP-Archiv, da sind alle erforderlichen Daten drin enthalten, inklusive 
Bestellliste für Reichelt. Hättest Du Dir also die Mühe gemacht das 
ZIP-Archiv herunter zu laden, dann hättest Du da auch den Schaltplan 
gefunden...

LG Jens

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren