Forum: Mikrocontroller und Digitale Elektronik Fragen zum AVR Einstieg


von Peter (Gast)


Lesenswert?

Hallo,

ich habe mich in den letzten Tagen etwas durch die Infos hier gelesen 
und würde mich nun auch mal gerne an einem einfachen Projekt versuchen.

Meine Planung sieht wie folgt aus: ein Breadboard und ein paar Atmegas 
bestellen. Widerstände, Kondensatoren, LEDs, Transistoren und so Sachen 
habe ich hier noch in ein paar Dutzend Boxen rumliegen.

Soweit ich das jetzt verstanden habe, brauche ich einen Programmer. Mein 
Rechner hat zwar noch einen seriellen und parallelen Port, aber ich 
würde doch USB vorziehen, damit man den auch mal an anderen Rechnern 
ohne weiteres nutzen kann. Daher wäre es auch schön, wenn der Programmer 
ohne Sondertreiber auskommt.

Da ich den Selbstbau bevorzuge, würde ich am liebsten den Programmer 
auch selber machen. Nicht aus finanziellen Gründen, sondern weil das 
einfach was ganz anderes ist, als was Fertiges nur auszupacken. 
Lochrasterplatinen habe ich wohl auch noch irgendwo.

Und jetzt stehe ich eben vor dem Berg.

1. Welcher Programmer ist hier die beste Wahl? Ich werde wohl mit WinAVR 
und/oder Ponyprog arbeiten.
2. Muß ich den Programmer auch programmieren? Wenn ja, habe ich ja ein 
Henne-Ei Problem.
3. Anscheinend kann man einen Atmega auch "schrotten", zB falsche Fuses 
setzen. Kann man das via Programmer auch fixen oder geht nur wegwerfen?
4. Gibt's auch einen Simulator? Also, Schaltung zusammenklicken, flashen 
und dann via Maus Taster/Potis o.ä. betätigen, bevor man das Ganze 
aufbaut?

So, das wäre es für's Erste.

Danke schonmal für Anworten.

von Turbo T. (turbotoni)


Lesenswert?

Zu 2. Wenn man einen USB-Programmer selber baut, mus man den AtMega 
natürlich Programmieren.

Ich habe mir zuerst eine Paralellport-Programmer gebaut, mit diesen nen 
atmega8 für den usb-Programmer beswchrieben und damit nen USB-Programmer 
gebaut

Zu 3. Es kommt immer darauf an, welche fuses man falsch gesezt hat.
Am universelsten ist die HV-Programmierung, damit kann man alle falsch 
gesezten fuses wieder rückgängig machen.

von goppe (Gast)


Lesenswert?

Peter schrieb:
> Soweit ich das jetzt verstanden habe, brauche ich einen Programmer.
richtig verstanden.

> ich würde doch USB vorziehen, ... Da ich den Selbstbau bevorzuge, würde
> ich am liebsten den Programmer auch selber machen.
Wenn du ganz am Anfang stehst würde ich davon abraten. Nachher hast du 2 
Baustellen wo es nicht funktioniert, und du weisst nicht warum. Fertig 
und und nahezu unverwüstbar: AVRISP mkII von Atmel.

> 1. Welcher Programmer ist hier die beste Wahl? Ich werde wohl mit WinAVR
> und/oder Ponyprog arbeiten.
> 2. Muß ich den Programmer auch programmieren? Wenn ja, habe ich ja ein
> Henne-Ei Problem.
Bei obigem nichts dergleichen.

> 3. Anscheinend kann man einen Atmega auch "schrotten", zB falsche Fuses
> setzen. Kann man das via Programmer auch fixen oder geht nur wegwerfen?
Ja man kann sich aussperren, so das man auf normalem Weg nicht mehr dran 
kommt (auch wenn manche da schon ihre Wege gefunden haben wollen das zu 
umgehen)
> 4. Gibt's auch einen Simulator? Also, Schaltung zusammenklicken, flashen
> und dann via Maus Taster/Potis o.ä. betätigen, bevor man das Ganze
> aufbaut?
So wie du es dir vorstellst? Nicht das ich wüsste, und ich es würde mich 
auch wundern. Zu komplex.

von Achim M. (minifloat)


Lesenswert?

Peter schrieb:
> Welcher Programmer ist hier die beste Wahl? Ich werde wohl mit WinAVR
> und/oder Ponyprog arbeiten.

WinAVR ist bloß die für Windoof kompilierte version des avr-gcc. Die 
wird auch von AVR-Studio benutzt, allerdings Benutzen die eine eigene, 
in der IDE integrierte Brennsoftware.

Ponyprog ist eine Alternative, zumal es mit einem echten Druckerport 
oder einem echten Comport und einem Minimalaufwand an Zusatzschaltung 
auskommt(BitBanging).

Dann gibt es noch avrdude, das ist eine Brennsoftware, die aus der 
Linux-Ecke stammt. Mehr Funktionalität als Ponyprog, da auch eine gute 
Latte von Selbstbau-Brenngeräten unterstützt werden.

Warum sage ich "Brennen"? Programmieren, das ist dein Job, du hackst 
Codezeilen in einen Editor deiner Wahl. Brennen ist die fertige Software 
auf den Chip zu laden. Früher hat man das mit (E)Eproms machen müssen.

Peter schrieb:
> 2. Muß ich den Programmer auch programmieren? Wenn ja, habe ich ja ein
> Henne-Ei Problem.

Ich hab mir einen SIPROG-Adapter gebaut und einen mega48 mit der USBASP 
Firmware gebrannt. Der Siprog-Adapter muss dazu nur kurz auf dem 
Steckbrett existieren. Danach wird der USBASP gebaut é voila: du hast 
ein USB-Brenngerät. ein AVRISP von atmel selbst ist aber auch für unter 
30€ in der Bucht zu haben.

Peter schrieb:
> 3. Anscheinend kann man einen Atmega auch "schrotten", zB falsche Fuses
> setzen. Kann man das via Programmer auch fixen oder geht nur wegwerfen?

Das alte Fues-Problem. Du hast recht, allerdings kann dir ein 
HV-Programmer da aus der Patsche helfen(Wenn man Resetdisable gesetzt 
hat z.b.). Einen externen Takt zu erzeugen(CLOCK falsch eingestellt) ist 
nicht weiter schwer. Schlachte aus einer alten Platine einen 
Qaurzoszillator aus, oder programmiere einen anderen mega, dass er dir 
einen Port beständig toggelt. Außerdem ist so ein Mega nicht teuer, also 
auf halde, anderen nehmen, nochmal probieren. Beste Absicherung gegen 
verfusen ist immer ein genauer Blick ins Datenblatt und vielleicht eine 
GUI die dir beim Fusen hilft.

Peter schrieb:
> 4. Gibt's auch einen Simulator? Also, Schaltung zusammenklicken, flashen
> und dann via Maus Taster/Potis o.ä. betätigen, bevor man das Ganze
> aufbaut?

SIMULAVR gibt es zum Beispiel, im AVR-Studio selbst kann man auch 
simulieren. Man kann breakpoints setzen und register verändern. D.h. 
deine Schaltergeschichte geht indirekt.
Aber es ist ohnehin spannender, den Chip zu bebrennen und an der realen 
Schaltung Messwerte zu nehmen. Ein Oszilloskop hilft manchmal was, macht 
aber nix wenn du keines hast. Ein Frequenzzähler-Schätzeisen im 
Multimeter ist manchmal nützlich. Externe LEDs und eine 
RS232-Quasselstrippe zum debuggen solltest du auf jeden fall da haben. 
Vielleicht baust du dir Debugging-Werkzeuge bald selbst, z.B. einen 
Twowire-Sniffer, einen SPI-Sniffer oder so?

Viel Spaß beim Basteln!
mfg mf

von Heinrichs, Oliver (Gast)


Lesenswert?

Peter schrieb:
> 4. Gibt's auch einen Simulator? Also, Schaltung zusammenklicken, flashen
> und dann via Maus Taster/Potis o.ä. betätigen, bevor man das Ganze
> aufbaut?

Gibt es. Nennt sich Proteus.

von Achim M. (minifloat)


Lesenswert?

Peter schrieb:
> Daher wäre es auch schön, wenn der Programmer
> ohne Sondertreiber auskommt.

Leider benötigen die meisten Selbstbaubrenner unter Windows einen libusb 
Filtertreiber. Den kannst du als inf-Datei aber auch immer auf einem 
USB-Stick dabeihaben. Oder deinem Brenngerät eine alte 32MB SD-Karte 
beilegen, wo du den drauf ablegst. Und die passende Brennsoftware auch!
So hast du sie immer dabei. Einen Cardreader hat wohl jeder irgendwo.
mfg mf

von Mike (Gast)


Lesenswert?

Bei Pollin gibt es ein preiswertes AVR-Board: 810 038

Ein serieller Programmer ist eingebaut und für erste Schritte reicht das 
auf jeden Fall aus. Den USB-Programmer solltest du damit auch 
programmiert bekommen.

Du brauchst zum Board noch ein Netzteil und ein serielles Kabel. AVRs 
und vielleicht noch 1-2 LCDs bekommst du auch bei Pollin.

Zur Entwicklung kannst du z.B. AVR-Studio oder Eclipse (z.B. mit 
avr-eclipse Plugin) verwenden.

von Achim M. (minifloat)


Lesenswert?

Mike schrieb:
> Ein serieller Programmer ist eingebaut

Vorsicht: das ist ein Siprog, also kein AVR910(man korrigiere mich, wenn 
die Appnote anders heißt). Funktioniert also mit USB-COM-Adapter nicht 
gut.
Quelle: Beitrag "Mac OS X, Keyspan USB-Serial Adapter, SI Prog ->  probleme"

Also nur gut Verwendbar, wenn ein echter ComPort da ist. Ansonsten kann 
man sich damit notfalls einen Mega mit USB-Brenner-Firmware beschreiben, 
den dann auf Lochraster aufbauen und damit weitermachen.

Ich habe hier einen USBasp auf Lochraster und bin vollends zufrieden 
damit.
mfg mf

von Peter (Gast)


Lesenswert?

Also erstmal Danke für die vielen Antworten!

@Turbo Toni
>Ich habe mir zuerst eine Paralellport-Programmer gebaut, mit diesen nen
>atmega8 für den usb-Programmer beswchrieben und damit nen USB-Programmer
>gebaut
Das klingt doch nach einer Lösung.

@goppe
>Wenn du ganz am Anfang stehst würde ich davon abraten. Nachher hast du 2
>Baustellen wo es nicht funktioniert, und du weisst nicht warum.
Wenn Du mit Anfang sowas wie Löten meinst, dann kann ich Dich beruhigen: 
das kann ich ganz gut. Also Schaltungen, und sogar Dachrinnen :)

@Mini Float
>WinAVR ist bloß die für Windoof kompilierte version des avr-gcc.
Nun, ich nutze ja Windows. Linux habe ich in einer virtuellen Maschine, 
wäre also auch eine Möglichkeit.

>Vielleicht baust du dir Debugging-Werkzeuge bald selbst, z.B. einen
>Twowire-Sniffer, einen SPI-Sniffer oder so?
Wenn meine Spielereien mich nicht vergraulen wird es wohl so enden :)

@Heinrichs, Oliver
>Gibt es. Nennt sich Proteus.
Sieht ja gut aus. Mal sehen, ob's davon eine Demo gibt.

@Mike
>Du brauchst zum Board noch ein Netzteil und ein serielles Kabel.
Netzteile hab ich ein paar rumliegen; eines müßte sogar regelbar sein.

von Karl H. (kbuchegg)


Lesenswert?

Peter schrieb:
> Also erstmal Danke für die vielen Antworten!
>
> @Turbo Toni
>>Ich habe mir zuerst eine Paralellport-Programmer gebaut, mit diesen nen
>>atmega8 für den usb-Programmer beswchrieben und damit nen USB-Programmer
>>gebaut
> Das klingt doch nach einer Lösung.

Nicht wirklich.
Ob der Parallelport Brenner bei dir funktioniert, weiß niemand so genau.
Wenn du noch gar nichts hast, solltest du den Brenner kaufen. Der kostet 
nicht die Welt und du hast eine Fehlerquelle weniger.
Tob dich lieber bei deinen Zielschaltungen aus. Da hast du mehr davon.

Wenigstens irgendein verlässlich funktionierendes Teil sollte man am 
Anfang haben. Mit deiner ersten µC Schaltung wirst du noch genug zu tun 
bekommen. Da brauchst du dir nicht auch noch mit einem Brenner einen 
2-Fronten-Krieg aufmachen.

Sieh den Brenner als dein Werkzeug an. Du baust dir ja auch nicht deinen 
Lötkolben selber.

>>Wenn du ganz am Anfang stehst würde ich davon abraten. Nachher hast du 2
>>Baustellen wo es nicht funktioniert, und du weisst nicht warum.
> Wenn Du mit Anfang sowas wie Löten meinst,

Gemeint war: Am Anfang deiner µC Karriere.

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.