Forum: Mikrocontroller und Digitale Elektronik Programmerwahl


von Elektro—Starter (Gast)


Lesenswert?

Hallo,

ich suche den richtigen Programmer für mich.
Dieser soll mit möglichst vielen Mikrocontrollern der AVR-Reihe 
kompatibel sein.
Mögliche Programmer scheinen derzeit folgende zu sein:
https://www.amazon.de/Programmer-herunterladen-Netzteil-Atmel-ATMega/dp/B00R4QKN0A/ref=sr_1_14?s=ce-de&ie=UTF8&qid=1509390323&sr=1-14&keywords=usbasp+Programmer 
(3€)
https://www.amazon.de/ISP-Programmer-ATMEL-STK500-ATmega-ATtiny/dp/B0068M158K/ref=sr_1_fkmr0_2?s=ce-de&ie=UTF8&qid=1509390388&sr=1-2-fkmr0&keywords=Programmer+diametral 
(20€)
https://www.amazon.de/Diamex-7200-USB-ISP-Stick-AVR-Programmieradapter/dp/B0068K0D4O/ref=sr_1_2?s=computers&ie=UTF8&qid=1509390480&sr=1-2&keywords=diamex+isp 
(20€)


Über 25€ sollte der nach Möglichkeit nicht kosten.
In dem Forum hier 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.
Einen originalen AVR ISP-Programmer finde ich irgendwie nirgendwo.
Ist der hier ein Original?
https://www.ebay.de/i/253053412360?chn=ps&var=552123280351&dispItem=1&ul_ref=http%253A%252F%252Frover.ebay.com%252Frover%252F1%252F707-134425-41852-0%252F2%253Fmpre%253Dhttps%25253A%25252F%25252Fwww.ebay.de%25252Fi%25252F253053412360%25253Fchn%25253Dps%252526var%25253D552123280351%252526dispItem%25253D1%2526itemid%253D552123280351_253053412360%2526targetid%253D345224066610%2526device%253Dt%2526adtype%253Dpla%2526googleloc%253D1003968%2526poi%253D%2526campaignid%253D906015726%2526adgroupid%253D43537549885%2526rlsatarget%253Dpla-345224066610%2526abcId%253D1129336%2526merchantid%253D111344169%2526gclid%253DEAIaIQobChMIv_S0_oaZ1wIVSbcbCh1NDAWnEAkYBSABEgJhFvD_BwE%2526srcrot%253D707-134425-41852-0%2526rvr_id%253D1350161270548

Ansonsten finde ich nur welche für 36€ von Waveshare. Sind die wenigsten 
Originle?

Vielen Dank!

von Lothar (Gast)


Lesenswert?

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.

von Felix U. (ubfx)


Lesenswert?

Hallo,

vom Ersten kann ich dir abraten. Wenn das der ist, der ich denke, dann 
funktioniert der nur mit älteren AVR Studio Versionen.


Lothar schrieb:
> Und für 25 EUR schon einen Debugger bekommen.

Oder für 3€

https://www.ebay.de/itm/ST-Link-V2-New-STM32-Downloader-Programmierung-STM8-Unit-Emulator-Mini-HOT/322683610655

: Bearbeitet durch User
von Karl M. (Gast)


Lesenswert?

Hallo,
Du musst dich fragen, welcher deiner AVRs wie programmiert wird.
Da gibt es heute doch einige...

Wenn ISP, dann schaue mal hier:

https://www.ehajo.de/baus%C3%A4tze/programmieradapter.html

Das aTeVaL (Microchip AVR Evaluationsboard) ist ein sehr guter Start,
da ist auch eine AVR MKII Clone drauf und mann kann unterschiedlichste 
AVR nutzen.

Mit 
https://www.ehajo.de/baus%C3%A4tze/bedrahtete-baus%C3%A4tze/adapter-raspberry-pi-b-pi2-zu-breadboard.html 
kannst Du dann alle Ports auf ein Breadboard legen.

von Philipp K. (philipp_k59)


Lesenswert?

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)

von Stefan F. (Gast)


Lesenswert?

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.

von Elektro—Starter (Gast)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

> 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.

von c-hater (Gast)


Lesenswert?

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...

von --- (Gast)


Lesenswert?

Gerüchteweise kann ein PICKit2 auch AVRs programmieren.

von Klaus I. (klauspi)


Lesenswert?

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.

von c-hater (Gast)


Lesenswert?

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...

von Chr. M. (snowfly)


Lesenswert?

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.

: Bearbeitet durch User
von Elektro—Starter (Gast)


Lesenswert?

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.

von Chr. M. (snowfly)


Lesenswert?

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.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

> 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 :-)

von Lothar (Gast)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

> Die billigsten ARM Controller sind nämlich auch erst ab min. 3€ zu bekommen

1,50€ als Modul mit 2 Quarze, USB Buchse, Spannungsregler und Reset 
Taster:
https://www.aliexpress.com/item/Free-Shipping-1pcs-lot-STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-For-Arduin0/32498344057.html

1,00€ einzeln als Chip
https://www.aliexpress.com/item/Original-10pcs-STM32F103C8T6-STM32F103-LQFP48-ic/32641687060.html

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.