Für einen ARM oder 8051 würdest Du gar keinen Programmer brauchen da
seriell programmierbar. Und für 25 EUR schon einen Debugger bekommen.
Warum also am veralteten AVR festhalten. Oder wenn es unbedingt AVR sein
Muss nimm ein Arduino als Programmer.
Elektro—Starter schrieb:> habe ich viel negatives über Diamex gelesen, ansonsten sieht der Diamex> ja nicht schlecht aus. Die USBASP-Programmer sind ja angeblich schon> sehr unzuverlässig.
Usbasp hat eher in speziellen Bereichen Nachteile, bisher hatte ich
keine Zeichen von unzuverlässigkeit.. bei 2€ war der schneller da als
ich drüber nachdenken konnte und habe bisher keinen anderen gebraucht.
Einziger Vorteil diamex und original ist halt saubere Einbindung im
avrstudio. (hab ich gelesen)
Für mich ist Unterstützung unterschiedlicher Versorgungsspannungen ein
wichtiges Kriterium. Fast alle USBASP geräte haben zwar einen Umschalter
für die Versorgungsspannung des Targets, unterstützen aber trotzdem nur
5V Signale.
Wenn du auch die ganz kleinen ohne ISP Schnittstelle prigrammieren
willst, brauchst du TPI.
Wenn du die ganz großen Xmega Controller programmieren willst, brauchst
du PDI.
Für die unter Hobbyelektronikern häufiger verwendeten ATmega und ATtiny
brauchst du ISP, das können alle Programmieradapter.
Willst du auch debuggen? Dann kommt eigentlich nur noch ein Atmel ICE in
Frage.
Willst du High-Voltage programmieren (z.B. weil du Fuses falsch
eingestellt hast)? Dann wäre der Atmel Dragon eine preisgünstige Lösung.
Debuggen kann der auch, aber nur bis zu 32kB.
Über den Diamex liest man hier häufiger, weil er sehr beliebt ist.
Bei der großen Auswahl und den erheblichen Preisunterschieden würde ich
erstmal mit dem billigsten USBASP anfangen. Bis der Dir nicht mehr
reicht, hast du konkrete Anforderungen, die die Auswahl deutlich
einfacher machen.
Bei dem Preis kann man damit nicht viel falsch machen.
Wenn es nur um die Integration in einer IDE geht, dann reicht mir
vermutlich auch der billigste erst einmal. Wenn der es nicht tut, dann
werde ich einfach umsteigen.
Tatsächlich bin ich am Überlegen, ob ich nicht doch lieber ARM
Controller verwenden soll. Ein großer Nachteil ist für mich vor allem,
dass es die fast nur als SMD Variante gibt und ich durch mangelnde
Erfahrung bisher mich noch nicht so richtig daran getraut habe. Aber ich
kann dann ja auch einfach nur den Controller SMD auflöten und den Rest
als DIP, oder? Die ganzen ARM Typen unterscheiden sich ja, glaube ich
auch mehr untereinander, sodass diese nicht so flexibel nutzbar sind wie
die AVR Reihe.
Deshalb würde ich für den Anfang vielleicht, um ein Gefühl dafür zu
bekommen, einen billigen 2€ ATmega8 verwenden und anschließend auf
teurere AMR Controller umsteigen. Diese sind ja wohl auch
Zukunftssicherung.
Ich bin nur derzeit noch sehr schaltungsunerfahren und möchte mir da am
Anfang nicht schon teurere Controller zerstießen. Die billigsten ARM
Controller sind nämlich auch erst ab min. 3€ zu bekommen. Und davon
braucht man ja nicht nur einen, vor allem, wenn man erst wenig
Löterfahrung im Bereich SMD hat.
Aber wenn wir schon beim Thema sind, wie kann man denn dann einen ARM
Controller programmieren, wenn nicht über einen Programmer?
Danke auf jeden Fall für eure Mühe.
> Wenn es nur um die Integration in einer IDE geht, dann reicht mir> vermutlich auch der billigste erst einmal
Nein eben nicht. QT Creator, Netbeans und Eclipse sind alles IDEs, aber
Programmieradapter steuern sie nicht an.
Die IDEs von Atmel steuern eigentlich nur originale Programmer von Atmel
an, sowie ein paar wenige gut gemachte Clones.
Das ist aber eigentlich Scheiß egal, denn ob du das Programm zum
Bedienen des Programmieradapters aus dem Menü der IDE heraus oder aus
dem Windows Startmenü heraus startest, macht doch keinen großen
Unterschied.
Die zu übertragende Datei musst du ohnehin manuell auswählen, auch bei
der integrierten Variante. Dies zu vergessen ist übrigens ein häufiger
Anfängerfehler zu dem die IDE von Atmel verleitet.
Ich halte es für vorteilhaft, den ganzen Build Vorgang mitsamt
Ansteuerung des Programmieradapters in ein (wie auch immer geartetes)
Script zu verpacken. Dabei hilft Dir die IDE nicht, da musst du sowieso
Kommandozeilentools wie avrdude verwenden.
Elektro—Starter schrieb:> In dem Forum hier habe ich viel negatives über Diamex gelesen
Alles Unsinn. Der tut, was er soll (und kann).
Er spricht SPI Richtung Controller und STK500v2 Richtung
Programmiersoftware. Nicht weniger, aber auch nicht mehr. Das bedeutet:
*Er genügt zum Programmieren der allermeisten AVR8 in den dafür heute
üblichsten Programmierumgebungen.*
Was damit nicht geht: Die ganz kleinen AVR8 (Tiny<13) und die ganz
großen (XMega).
Das ist aber für dich kein großer Nachteil. Die ganz kleinen kann man
nur in Assembler sinnvoll programmieren, das kannst du sowieso nicht.
Und die ganz großen gibt's nur in SMD-Gehäusen, da kannst du dann auch
gleich ARMs nehmen.
Was ausserdem nicht geht: On-Chip-Debugging. Aber das wird völlig
überbewertet. Das braucht man nur in seltenen Ausnahmefällen wirklich.
Naja, für totale Anfänger mag es vielleicht auch ausserhalb dieser
Ausnahmefälle nützlich sein...
> Einen originalen AVR ISP-Programmer finde ich irgendwie nirgendwo.
Selbst wenn du in der Lage wärst, einen zu finden: Er würde deinen
Preisrahmen massiv sprengen. Und außerdem: wenn du nichtmal in der Lage
bist, eine Bezugsquelle für einen AVR-Originalprogrammer zu ermitteln,
ist dir sowieso keine großartige Zukunft auf dem Gebiet der
µC-Programmierung bestimmt. Soviel ist mal sicher.
D.h.: halt die Kosten lieber klein, denn dein Ausstieg aus deinem neuen
Hobby ist wohl näher als du denkst...
Elektro—Starter schrieb:> Die USBASP-Programmer sind ja> angeblich schon sehr unzuverlässig.
Liest man als Behauptung hier sehr häufig, irgendwie stichhaltig
erläutert hat das hier (auch auf Nachfrage) noch keiner - Stichwort:
Selbsterfüllende Prophezeiung?
Ich habe mir das im mc.net mal näher angesehen: Letztendlich liest man
hier genauso viel über "Problemen" mit anderen Programmer. Aber das sind
naturgemäß meistens die Fragen von Anfängern und das Problem liegt
praktisch nie am Programmer an sich (egal welcher Typ).
Falls Du Dich für usbasp entscheidest, nimm einen mit Umschaltung
zwischen 5V und 3,3V. Auch wenn es einige Leute hier noch immer nicht
glauben wollen, bei mir und ganz vielen anderen Menschen funktionieren
die Dinger wirklich.
Stefan U. schrieb:> Die IDEs von Atmel steuern eigentlich nur originale Programmer von Atmel> an, sowie ein paar wenige gut gemachte Clones.
Ach watt. Die steuern alles an, was STK500v2 spricht und über einen
(virtuellen) COM-Port kommuniziert. Z.B. halt den Diamex.
> Das ist aber eigentlich Scheiß egal, denn ob du das Programm zum> Bedienen des Programmieradapters aus dem Menü der IDE heraus oder aus> dem Windows Startmenü heraus startest, macht doch keinen großen> Unterschied.
Das allerdings ist wahr. Zumal man die Programmer-Integration in die
Atmel-IDEs als eher, naja suboptimal, bezeichnen könnte...
> Die zu übertragende Datei musst du ohnehin manuell auswählen
Z.B. auch deswegen. Aber immerhin: die IDE merkt sich wenigstens die
zuletzt programmmierte Datei. Das ist gut, solange man nur an einem
Projekt arbeitet, verkehrt sich aber schnell in's Gegenteil, wenn man an
mehreren unterschiedlichen arbeitet. Ich habe deswegen schon einmal
Hardware für einige hundert Euro zu Rauch mit dem typischen intensiven
Geruch verbrannter Elektronik verarbeitet...
Das fand ich nicht lustig. Mein Cheffe schon garnicht...
> Dies zu vergessen ist übrigens ein häufiger> Anfängerfehler zu dem die IDE von Atmel verleitet.
Nicht nur der von Anfängern ;o)
Aber das liegt nicht daran, dass das ein grundsätzlicher Nachteil von
IDEs wäre, sondern nur daran, dass die Atmel-IDEs diebezüglich einfach
mal völlig schwachsinnig umgesetzt sind. Dabei wäre es nicht schwer,
hier was Sinnvolles zu programmieren. Das können maximal ein paar
Dutzend Codezeilen sein, die nötig wären, um die Sache sinnvoll zu
integrieren.
Lustigerweise zeigt ausgerechnet Microsoft, wie sowas richtig geht
(z.B., wenn man WindowsPhone oder WindowsCE-Geräte mit VS programmiert).
Die Infrastruktur dafür steckt also schon im VS, Atmels Praktikanten
waren nur zu blöd, sie richtig zu benutzen. Die hätten vielleicht mal
richtige Programmierer einstellen sollen...
> Ich halte es für vorteilhaft, den ganzen Build Vorgang mitsamt> Ansteuerung des Programmieradapters in ein (wie auch immer geartetes)> Script zu verpacken.
Ich nicht. Die Güte einer IDE zeigt sich nicht zuletzt darin, dass sie
diesen Kram schlicht überflüssig macht. Denn genau das ist eigentlich
ihr Job...
Wenn ich scripten muss, brauch' ich keine IDE, die dient genau dafür,
das nicht tun zu müssen. Denn dann kann ich mich auf's Programmieren
konzentrieren. Das ist, was ich eigentlich tun will. Nicht noch ein
weiteres Programm schreiben, um den Build des eigentlichen Programms zu
ermöglichen...
Um es dir nicht zu einfach zu machen hier auch noch mein Senf:)
Was soll es denn werden?
Hobby
Berufsvorbereitung
Lehre
Studium(welches)
Hast du dich schon auf eine Sprache festgelegt?
C
Arduino(C++)
Exot
> Aber ich kann dann ja auch einfach nur den Controller SMD> auflöten und den Rest als DIP, oder?
Ja, kann man mischen wie man will, manchmal ist es auch sinvoll
einen THT Widerstand zu benutzen statt eines SMD+Brücke.
Ich würde nicht den nackten IC bestellen sondern einen
auf einem Breakout/Evaluation Board.
Soviel ich herauslese bist du recht ahnungslos und willst mal
in die magische Welt der Wundermaschinen hineinschnuppern.
Dann kauf dir:
so ein 42-Sensoren-Arduino-starter-Set für 40€
2 Steckbretter
3 Arduino nano
2 Node MCU Board mit esp8266(oder whitty cloud oder Wemos D1)*1
Da bist du dann bei ca. 50-60€, hast Komponenten die erstmal
funktionieren und wenn du damit ein bisschen gespielt hast
weisst du auch selbst was du eigentlich willst.
> Aber wenn wir schon beim Thema sind, wie kann man denn dann einen ARM> Controller programmieren, wenn nicht über einen Programmer?
Über eine UART Schnittstelle, gibt es als USB-Adapter.
(könnte man auch Programmer nennen und ist bei den Arduinos schon
auf dem Board.)
*1 optional, aber WLAN im µC ist einfach super.:)
EDIT: da es ja eigentlich um Programmer für AVR ging: aus jedem Arduino
lässt sich mittels Programmierung einer machen.
Chr. M. schrieb:> Um es dir nicht zu einfach zu machen hier auch noch mein Senf:)>> Was soll es denn werden?> Hobby> Berufsvorbereitung> Lehre> Studium(welches)
Hauptsächlich Hobby, vielleicht Beruf.
> Hast du dich schon auf eine Sprache festgelegt?> C> Arduino(C++)> Exot
C. Besitze auch schon genug Erfahrung, zumindest im Desktop-Bereich.
>> Aber ich kann dann ja auch einfach nur den Controller SMD>> auflöten und den Rest als DIP, oder?> Ja, kann man mischen wie man will, manchmal ist es auch sinvoll> einen THT Widerstand zu benutzen statt eines SMD+Brücke.> Ich würde nicht den nackten IC bestellen sondern einen> auf einem Breakout/Evaluation Board.
Ich persönlich bevorzuge es eigentlich, alles selbst zu löten. Aber
danke für den Tipp, werde ich überdenken, wenn es soweit ist.
> Soviel ich herauslese bist du recht ahnungslos und willst du> willt mal in die magische Welt der Wundermaschinen hineinschnuppern.
Ich bin im Bereich der Microcontroller ahnungslos. Schaltungen und
Programmierung sind kein Problem. Ich möchte nun in die Welt
hineinschlüpfen, die Beides verbindet.
> Dann kauf dir:> so ein 42-Sensoren-Arduino-starter-Set für 40€> 2 Steckbretter> 3 Arduino nano> 2 Node MCU Board mit esp8266(oder whitty cloud oder Wemos D1)*1
Für einen tieferen Einstieg würde ich es vorziehen, die Platinen
zumindest am Anfang selbst aufzubauen.
Materialien habe ich die meisten bereits da, also Standardteile der
Elektronik + 3 ATmega8. Nur den Programmer habe ich ehrlich gesagt beim
Bestellvorgang vergessen.
Ob es etwas für mich ist, werde ich noch sehen.
Elektro—Starter schrieb:> Schaltungen und Programmierung sind kein Problem.
[quatsch gelöscht]
> Nur den Programmer habe ich ehrlich gesagt beim Bestellvorgang vergessen.
Mein erster Programmer war am Parallelport des PCs.(2 Dioden+2
Widerstände)
Wenn du noch so eine alte Kiste hast könntest du dir aus einem Mega8
einen Programmer schnitzen.
> Für einen tieferen Einstieg würde ich es vorziehen, die Platinen> zumindest am Anfang selbst aufzubauen.
Wenn es dir Spass macht.
Viel ist aber eh nicht drauf, neben eventueller Schnittstelle noch
Spannungsregelung, Abblock Cs und PullUp/Downs nach Datenblatt, fertig.
Die Peripherie musst du eh selbst bauen.
> On-Chip-Debugging. Aber das wird völlig überbewertet.
Sehe ich auch so. Vor ein paar Monaten hatte ich mich wie Bolle gefreut,
dass man bei STM32 fast zum Nulltarif debuggen kann. Wirklich benutzt
hatte ich Feature dann bis heute doch nicht.
Ich habe mich da eher an Logmeldungen gewöhnt, kommt vielleicht daher,
dass ich beruflich Webserver programmiere.
Wenn diese Funktion so wichtig wäre, wie sie einem erscheint, dann hätte
man sie bei Arduino nicht weg gelassen.
Da du am Anfang alles selbst löten möchtest, könnte Dir mein Buch
gefallen (http://stefanfrings.de/mikrocontroller_buch/index.html). Da
gehe ich genau so vor. Zwei Leute schrieben, dass ich das Buch noch
nicht oft genug verlinkt habe :-)
Elektro—Starter schrieb:> Die billigsten ARM> Controller sind nämlich auch erst ab min. 3€ zu bekommen. Und davon> braucht man ja nicht nur einen, vor allem, wenn man erst wenig> Löterfahrung im Bereich SMD hat.LPC800 gibt es bereits ab 1 EUR nur im DIP sind die unverschämt teuer
aktuell 3.50 EUR
> Aber wenn wir schon beim Thema sind, wie kann man denn dann einen ARM> Controller programmieren, wenn nicht über einen Programmer?ARM und 8051 z.B EFM8 haben vorinstallierte Bootloader. Einfach
USB-seriell Kabel für 3 EUR anschließen: RX, TX, 3.3V, Masse und geht.
Es gibt freie Tools um das HEX File zu flashen.