Forum: Mikrocontroller und Digitale Elektronik Einstieg USB Programmer


von Dominik W. (woidl)


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

von snowfly (Gast)


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.

von Dominik W. (woidl)


Lesenswert?

> Du hast nur das Problem wie bekommst du das Betriebssystem des
> Programmers in den Programmer ohne schon einen zu besitzen.

Gibt es hier eine Möglichkeit dieses Problem zu umgehen?

von Oliver J. (skriptkiddy)


Lesenswert?

Dominik W. schrieb:
> Gibt es hier eine Möglichkeit dieses Problem zu umgehen?
Ja.
(1) Einen USBasp kaufen.
(2) Mit nem parallen oder seriellen Bitbanging-Adapter flashen.


Gruß skriptkiddy

von Dominik W. (woidl)


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

von -_- (Gast)


Lesenswert?

Punkt 2 ist einfach ein serielles / paralleles Kabel mit ein bissle 
Hühnerfutter. Beim parallelen reichen 4-5 Widerstände fertig. Hab ich am 
Anfang lange genutzt

von Oliver J. (skriptkiddy)


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

von MarioT (Gast)


Lesenswert?

Wenn Du Platz im PC hast kann man eine Serielle PCI Karte reinstecken.
z.B. http://www.amazon.de/SERIELL-KARTE-PORTS-CARD-RS232/dp/B000T7L9MW
Dann kann man einen Programmer auf dem Steckbrett aufbauen.

von holger (Gast)


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.

von Oliver J. (skriptkiddy)


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.

von bingo (Gast)


Lesenswert?

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

Das Teil ist STK200 kompatibel, geht bei mir wunderbar, hat nich NIE 
Probleme gegeben.

von Martin e. C. (eduardo)


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

von Dominik W. (woidl)


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

von holger (Gast)


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.

von spess53 (Gast)


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

von M. W. (hobbyloet)


Lesenswert?

holger schrieb:
> Da steht doch dick und fett PONYPROG auf der Seite.

....und diesen Kram Ignorieren! ):

von Dominik W. (woidl)


Angehängte Dateien:

Lesenswert?

Erstmal danke für die Infos. Aber eine Frage hätt ich fürs erste noch:
Muss ich so meinen ATMEGA8 anschließen wie auf dem Schaltplan?

von Peter R. (pnu)


Lesenswert?

Ja, so scheints zu stimmen. Erst bei Verwendung des A/D-Wandlers steigen 
dann die Ansprüche.

von Oliver J. (skriptkiddy)


Lesenswert?

Passt.

von Dominik W. (dominik_w)


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

von Thomas E. (thomase)


Lesenswert?

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

Richtig. Kauf dir gleich was Vernünftiges.

mfg.

von Dominik W. (dominik_w)


Lesenswert?

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.

von Thomas E. (thomase)


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.

von Christian R. (supachris)


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?

von Peter R. (pnu)


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

von Dominik W. (dominik_w)


Lesenswert?

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

von Toni (Gast)


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.

von Jens (Gast)


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

von Tom M. (tomm) Benutzerseite


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?

von Peter R. (pnu)


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.

von Dominik W. (dominik_w)


Angehängte Dateien:

Lesenswert?

Was ich jetzt verstanden habe ist das ich einen  FT232R verwenden kann 
oder einen Atmega8. Ist das Richtig?
Der Schaltplan für so einen Programmer mit Usb und seperaten USB Chip 
FT232R würde so aussehen, oder?

Danke für eure Antworten

von Jens (Gast)


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

von Dominik W. (dominik_w)


Lesenswert?

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.

Danke für eure Hilfe

von Jens (Gast)


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

von Dominik W. (dominik_w)


Lesenswert?

Ja habe ich schon gefunden. Danke trotzdem.

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
Noch kein Account? Hier anmelden.