Guten Morgen! Ich wollte mal langsam in die µC-Programmierung einsteigen. Da ich einigermaßen mit dem Lötkolben umgehen kann und inzwischen auch mit C/C++-Erfahrungen gesammelt habe, ist das wohl der nächste logische Schritt. ..Wer möchte schon gerne für ein simples Lauflicht oder LED-Geblinke extra seinen PC hergeben, oder es in Analog-Elektronik realisieren.. Mir fehlt da etwas der Überblick, was Programmieradapter und IDEs für µCs angeht. Sehe ich das richtig, dass sich die Anzahl der Adapter hauptsächlich aus vielen Klonen weniger Originale ergibt?! Falls ja welche Originale gibt es und welches ist "das beste"?? Gelesen habe ich z.B. von diversen "AVRISP MK2" oder "STK500 Emulatoren". Reicht es, sich darauf zu konzentrieren und wenn ja, welcher der Beiden ist besser? Jetzt suche ich also, kurz gesagt, nach dem einen Programmieradapter unter vielen. Und vielleicht finde ich auch einen, da ich wenigstens schon einige Vorstellungen habe: - "wenig teuer" (falls mir auffällt, dass er ausreicht, oder eben nicht der richtige ist); ca. 5€ (?!) , -> 20€ <- , wenn es sich lohnt 40€ - möglichst universell und zukunftssicher, sofern das überhaupt nötig ist - ohne "Testboard" - dafür nehme ich einfach ein Breadboard + Bauteile - via USB an den PC - möglichst ohne Extras mit allen IDEs lauffähig (wenns geht sogar ohne Treiber), und das auch noch simpel.. ... Ich aber bislang immer CodeBlocks benutzt, wo es auch AVR-Projekte gibt (via winAVR, wenn ich das richtig sehe). Dabei würde ich auch bleiben, wenn der Rest nur Gleiches in Grün ist. * Einen Programmieradapter kann man da aber nicht direkt einbinden, oder??? Falls nein, was müsste ich dann machen, damit es mit CodeBlocks geht? - Nur zum Verständnis, wie die Toolchain überhaupt aussieht.. - weiter Programmier-Frequenzbereich (evtl gegen falsch gefuste µCs, oder für schnelles Programmieren etc., unnötig?) - eigene Spannungsversorgung, oder µC-Spannungserkennung? Man kann wohl nicht alles haben, besonders wenns "wenig teuer" sein soll.. Vielleicht kann mir jemand seine Erfahrungen mitteilen und mich auf Vor- und Nachteile hinweisen, oder ein neueres/besseres Modell. Hier mal eine kleine Auswahl an Adaptern: 1. Extra günstig: https://www.ebay.de/itm/USBASP-USBISP-USB-ASP-Programmierer-blau-fuer-KK2-SimonK-Arduino-AVR-Atmel-PIC-/182513591822? 2. Offenbar überall erhältlich: https://www.diamex.de/dxshop/DIAMEX-USB-ISP-Programmer-Stick-fuer-AVR https://www.conrad.de/de/programmieradapter-diamex-7200-usb-isp-stick-avr-842379.html ..beim Hersteller etwas günstiger?? 3. Wo ist der Unterschied zu 2.? https://www.pollin.de/p/programmer-olimex-avr-isp-mk2-702437 https://www.olimex.com/Products/AVR/Programmers/AVR-ISP-MK2/open-source-hardware ...beim Hersteller viel günstiger?? 4. Veraltet, oder? https://www.pollin.de/p/atmel-evaluations-board-v2-0-1-fertigmodul-810074 * Statt CodeBlocks könnte man wohl auch noch AVRStudio, ArduinoIDE, AVRDUDE,... nehmen. Was davon würdet ihr mir empfehlen? Ist AVRDude überhaupt eine IDE? Danke an alle, die nen Tipp für mich übrig haben! Gruß Karl
Mit diesen Programmieradapter: https://www.ehajo.de/baus%c3%a4tze/programmieradapter.html programmiere ich die Atmel 8Bit MC's. AVRStudio oder Arduino IDE sind OK. Gruß Kurt
Hi, Du scheinst Dich ja schon mal mit den AVRs auf eine Prozessorfamilie festgelegt zu haben. Gut, denn dafür gibt es schon mal einen kostenlosen C(++)-Compiler. Bei der Verbindung von PC zur Zielhardware gibt es dabei 2 lass es mich Klasssen nennen : 2. Klasse -> nur Programmieren 1. Klasse -> Programmieren und Debuggen In beiden Klassen bekommt man Adapter mit oder ohne Gehäuse. Wie Du schon bemerkt hast, gibt es dabei Originale von Microchip und Nachbauten. Da es die AVRs schon eine Zeit lang gibt, auch noch Modelle für den parallelen Druckerport, welche für den Anschluss an eine RS232 Schnittstelle (manche davon machen Bitbanging) und die aktuellen mit USB. Für gelegentliche Projekte und zum Erfahrungen sammeln auf die harte Tour geht's auch ohne Debugger. Mit einer Led kann man man schon viele Infos raus geben. Bekommt man aber schon das "eine Led blinken lassen" - Programm nicht zum Laufen wird's übel. Aufbauten ohne Gehäuse sind immer empfindlicher. Es soll Leute geben, die schon mehrere Dragons auf dem Gewissen haben. Für Hobby ist aber eine nackte Platine meist ausreichend. Ich würde mir nur noch was mit USB-Anschluss besorgen. Alles Andere ist auf die ein oder andere Weise veraltet und wird schon jetzt oder bald nicht mehr unterstützt. Bitbanging über einen USB auf RS232 Umsetzer, muss auch nicht unbedingt (zügig) funktionieren. Ich habe mal mit WinAvr angefangen. Als Paket wird das glaube ich auch nicht mehr weiter entwickelt. Du müsstest Dir dann halt die enthaltenen Programme einzeln updaten. Mittlerweile nutze ich AVR-Studio. Das ist natürlich ein Monsterpaket. Da ist MS-Visual-Studio als IDE drin versteckt. AVR Studio erkennt von sich aus nur USB-Adapter zur Hardware. Dann gibt es da noch die Arduinos. Die haben meist schon einen USB-Anschluss an ihren Platinen und einen Bootloader, damit Du die Software ohne ein zusätzliches Stück Hardware auf das Board bekommst. Ausserdem gibt es dafür viel im Netz. Wobei da auch viel dabei ist, was meist funktioniert, aber dann doch nicht 100%ig ausgereift ist. Vor allem, wenn mehrere Sachen zusammen in einem Programm arbeiten sollen.
Der AVRISP MkII ist abgekündigt, kann kein Debugging, aber dafür sämtliche bis jetzt vorhandenen Spielarten der Programmieralgorithmen, die sich Atmel bis dato ausgedacht hatte, also ISP, TPI und PDI - nur bei JTAG muss er passen. Das reicht also vom Tiny10 bis zum XMega. Ach noch was. Die neuere IDE heisst 'Atmel Studio', die ältere heisst 'AVR Studio' (bis zur Version 4). Nicht verwechseln.
:
Bearbeitet durch User
Karl Ium schrieb: > Mir fehlt da etwas der Überblick, was Programmieradapter und IDEs für > µCs angeht. Sehe ich das richtig, dass sich die Anzahl der Adapter > hauptsächlich aus vielen Klonen weniger Originale ergibt?! Nein. Schau dir bei avrdude die Liste der Programmieradapter an. Das sind alles "Originale". > Falls ja welche Originale gibt es und welches ist "das beste"?? Diese Frage ist in etwa so sinnvoll wie "welches Auto ist das beste?" > Gelesen habe ich z.B. von diversen "AVRISP MK2" oder "STK500 > Emulatoren". Reicht es, sich darauf zu konzentrieren und wenn ja, > welcher der Beiden ist besser? Das läßt mich vermuten, daß deine Zielplattform µC der AVR8 Familie sind (ehemals Atmel, jetzt Microchip). Das wäre eine wesentliche Information gewesen. Andererseits findest du alles (bzw. mehr als das) zu diesem Thema im hiesigen Artikel AVR In System Programmer > - "wenig teuer" (falls mir auffällt, dass er ausreicht, oder eben nicht > der richtige ist); ca. 5€ (?!) , -> 20€ <- , wenn es sich lohnt 40€ Am teuersten sind die "Originale" von Atmel (bzw. jetzt Microchip). > - möglichst universell und zukunftssicher, sofern das überhaupt nötig > ist "Universell" ist zu unspezifisch. Es gibt jetzt schon mindestens 4 Programmierverfahren für µC der AVR8 Familie: ISP (die meisten "alten"), PDI (xMega), TPI (kleine Tinies) und UPDI (ganz neue Tinies). Zusätzlich noch zwei Debug-Schnittstellen: Debugwire und JTAG. Wobei PDI und UPDI jeweils auch zum Debuggen verwendet werden können. Welches Schweinderl hättens denn gern? Halbwegs zukunftssicher sind die Original-Adapter, weil da der Hersteller sich um die Firmware kümmert und neue Verfahren implementiert. Oder auch nicht. Z.B. UPDI gibt es nur für die neuesten Adapter. > - möglichst ohne Extras mit allen IDEs lauffähig (wenns geht sogar ohne > Treiber), und das auch noch simpel.. Das schränkt dich dann automatisch auf die Originale ein. Denn die IDE vom Hersteller (AVR-Studio etc.) können von Haus aus nur mit den Adaptern eben jener Hersteller. > * Statt CodeBlocks könnte man wohl auch noch AVRStudio, ArduinoIDE, > AVRDUDE,... nehmen. Was davon würdet ihr mir empfehlen? Gar keine IDE. Such dir einen Editor aus und lern Makefiles zu schreiben. > Ist AVRDude überhaupt eine IDE? Nein. Avrdude ist ein Programm, das mit nahezu allen Programmieradaptern am Markt sprechen kann. Es ist ein weiteres Tool der Toolchain. Andere wären der bereits genannte Editor, Compiler und Linker, sowie make.
:
Bearbeitet durch User
>Das schränkt dich dann automatisch auf die Originale ein. Denn die IDE >vom Hersteller (AVR-Studio etc.) können von Haus aus nur mit den >Adaptern eben jener Hersteller. Das ist nicht wahr.
Ich bin nicht sicher, ob du dich bereits auf AVR festgelegt hast. Die sind sicher nicht schlecht, ich benutze sie selbst seit vielen Jahren gerne. Allerdings kann man heute wesentlich leistungsfähigere STM32 Controller (und auch Boards) für weniger Geld bekommen. Einfache Programmieradapter kosten für beide Chip Familien etwa gleich viel, nämlich ab 5 Euro. Ein Debugger für AVR (Atmel-ICE) kostet mindestens 50 Euro. Mit Kabel und Gehäuse eher ab 70 Euro. Andererseits sind das langlebige Werkzeuge, deren einmaliger Kaufpreis nicht überbewertet werden sollte. Der Programmieradapter für STM32 (ST-Link) kostet nur 5 Euro und kann auch debuggen. Wenn du debuggen willst, ist STM32 also erheblich billiger als AVR. Für beide Familien bekommst du kostenlose IDE's. Bei AVR wäre das Atmel Studio aktuell, ich bevorzuge jedoch Netbeans (leider ohne Debugging). Bei STM empfiehlt der Hersteller die "System Workbench for STM32", sie basiert auf Eclipse und unterstützt Debugging. Was man bedenken sollte ist, dass vor allem Anfänger für AVR viel mehr einfache Beispielprojekte und Hilfestellungen im Internet finden können, als bei STM32. Das Informationsangebot für STM32 würde ich für Anfänger als gerade eben ausreichend bezeichnen. Im AVR Umfeld würde ich Einsteigern zwei Modelle empfehlen: Den kleinen ATtiny13A als "nackten" IC und einen mittelgroßen ATtiny328P als Modul mit USB-UART Schnittstelle (bekannt als Arduino Nano). Im STM32 Umfeld empfehle ich für den Anfang ein STM32F103C8T6 Board. Das ist zur Zeit sehr billig und bei Bedarf kann man sich später sowohl kleinere als auch größere Modelle anschauen.
Nur zur info: Du kannst meistens weiterhin Codeblocks verwenden. Fürs programmieren auf alle fälle. Falls du etwas automatisieren willst (z.B. das Programmieren auf einen Menu Eintrag legen) fragst du am besten im Forum. Die helfen meistens schnell. Beim debuggen wird es bei den AVR schwierig. Da ist eigentlich nur das Atmel studio einfach, da atmel nicht gdb unterstützt (den quasi Standard fürs debuggen). Es gibt auch AvrICE um zu debuggen, scheint aber seit 2016 kein code update mehr bekommen zu haben. Mit avrice ist es möglich in codeblocks zu debuggen. Wenn du wirklich Zukunft sicher sein willst besorgst du dir einen SWD Programer und benutzt ARM Controller wie z.B. den schon erwähnten SMT32, welcher z.B. billiger ist als so mancher AVR. Am Anfang sind sie evt ein bisschen schwieriger zu programmieren, aber sobald du etwas komplizierter wirst, z.B. floating point benutzen willst, oder mit einer vernünftigen geschwindigkeit debuggen willst bist du mit SMT32 viel besser dran als mit AVR (und das sage ich als absoluter AVR Jünger (zumindest bis Microchip sie gekauft hat))
Danke für alle Antworten. Das hat mir schon viel weiter geholfen. Ich werd hier mal zusammenfassend antworten.. Sehe ich das richtig, dass der Bausatz von ehajo relativ abgespeckt ist und etwas spezielle Treiber besitzt? ..Z.B. relativ langsam ist, oder beschränkt, was die Spannungen angeht..?! Also ich habe mich nicht wirklich auf AVR festgelegt. Dass ich z.B. gar nicht mit float arbeiten können würde, war mir nicht bewusst. Ist das in der Praxis schlimm? Wie sieht es z.B. mit Audio-Anwendugen, wie einem eigenen mp3-Player aus - braucht es dafür nicht floats? Auf einen Debugger lege ich erstmal nicht so viel Wert (was bestimmt ein Fehler sein wird..). Solange ich den µC am PC simulieren und dadurch debuggen kann, müsste das doch reichen, oder? Arduinos will ich eigentlich umgehen (aber evtl nicht die Arduino IDE) und mir lieber selbst ein Arduino zusammenbauen. Wer braucht schon einen Bootloader, wenn er keinen braucht;).. Ich habe gelesen, dass die AVRISP MKII-Klone unterschiedliche Firmware brauchen, je nachdem, welche IDE/Software man nutzt (ATMEL Studio/AVRDude/Arduino Studio / AVR Studio?). Stimmt das so und ist das nicht eher lästig bzw. hacky..?! Sonst wär ich eigentlich dabei, denn damit könnte ich noch die ~5 zusätzlichen Tiny-s und die neueren (wobei ich mich frage, ob ich jemals dazu kommen werde) programmieren. Angenommen, ich bleibe wirklich bei CodeBlocks als IDE - verpasse ich da irgendwelche super-duper Vorteile der speziellen IDEs, z.B. soetwas wie ein "GUI-Designer"-Äquivalent. Bei Bascom habe ich z.B. in einem Tutorial gesehen, dass man einfach einen Pixel-Editor für LCDs nutzen kann. Würde ich mir dadurch nur alles unnötig verkomplizieren, oder ist das nur viel Zuckerguss? - bin ich dann auf ARVDude angewiesen?? Kann man STM32-Controller genau so "frei" programmieren? Wenn sie besser und günstiger sind UND float können - warum nicht (auch).. Hab dafür auch einen Programmieradapter gesehen, allerdings braucht es dazu wohl einen Bootloader seitens des STM32.. Ist das normal so? Es handelt sich dabei genauer gesagt um einen Hybriden, der alle Hersteller programmieren können soll. 5 € hätte ich für einen separaten aber noch übrig, wenns sein muss.. Hat zufällig jemand den direkten Download-Link zu der Weiterentwicklung von winAVR?? Oder ist Stand 2010 der aktuellste? Ohne den kann ich CodeBlocks wohl direkt knicken.. Aaalso... 1. Wenn ich das richtig sehe, lassen sich die Programmer auf STK500-Basis mit emuliertem COM-Port wesentlich leichter überall betreiben (auch AVRDude??)..ohne unsignierte Treiber oder evtl riskante Firmware-Updates - wenn ich da falsch liege, bitte nicht zurückhalten... Der kleine Nachteil wäre, dass ich nur mit ISP kommunizieren könnte. Sind die neuen Tiny-s und Megas es wert auf STK500 zu verzichten? 2. AVRISP-MKII kann mehr, aber nicht überall "gleichzeitig". Ist das ein Problem?! 3. Andere Programmer brauchen, wie es aussieht, oft irgendwelche Treiber von irgendwem. ..unsigniert, oder was ist z.B. wenn die Person plötzlich keine Lust mehr hat, weiter daran zu werkeln?! Dafür kosten sie quasi nichts. Ich würd fast schon zu 1. tendieren, aber nur, wenn ich das alles so richtig sehe.. Danach 2., dann 3. Und ihr so?! Jetzt noch eine kleine Linksammlung zu den Programmern (so wie ich das verstehe), die man überall/beim Hersteller bekommt. Vielleicht hat ja jemand dazu noch ein Wort zu verlieren.. STK500er / kann var. Spannung bereit stellen: https://www.diamex.de/dxshop/DIAMEX-USB-ISP-Programmer-Stick-fuer-AVR der Nachfolger, oder nicht?? Steht ja nichts zum Funktionsumfang etc.: https://www.diamex.de/dxshop/USB-ISP-Programmer-fuer-Atmel-AVR-Rev2 Kann der jetzt mehr, oder werden irgendwo Abstriche gemacht? - Nutzt jedenfalls ne andere INF.. AVRISP-MKIIer: https://www.diamex.de/dxshop/Diamex-ALL-AVR-ISP-Programmer Oder finde ich den jetzt doch besser...?!? DIESER Hersteller schreibt es funktioniert immer und überall, der andere (unten) verlangt Firmwareupdates wenn ich ihn richtig verstehe.. Programmer für "alle" µC-Hersteller: https://www.diamex.de/dxshop/USB-ISP-Programmer-fuer-AVR-STM32-LPC-Cortex-Prog-S2 Ist das gut so, oder nichts Halbes und nichts Ganzes? Wundert mich nämlich, dass er quasi ein AVRISP-MKII beinhaltet, aber günstiger ist, als obiges Modell Mal angenommen, ich lege mich auf diesen Hersteller fest, welcher der obigen wäre die 1. Wahl? ..Preislich tun die sich ja nicht viel.. Mit diesem Hersteller hier geht das ganze wieder von vorne los.. Sieht mir aber nicht so "neu" aus und umständlicher (und der Versand dauert bestimmt länger als direkt aus D): https://www.olimex.com/Products/AVR/Programmers/ Wobei dieser mit seinem Massstorage-Mode ganz interessant klingt - macht z.B. AVRDude überflüssig: https://www.olimex.com/Products/AVR/Programmers/AVR-ISP500-TINY/ Hat jemand noch ne Empfehlung zu Herstellern?! Sooo, das wars auch schon...:) Bin, dank eurer Hilfe, schon kurz davor mir was anzuschaffen - Weihnachten kommt dieses Jahr wohl etwas früher, wenn das so weiter geht.
> Sooo, das wars auch schon...:) ..Fast.. Hab hier im Subforum gerade gesehen, dass es für ARMs ne extra IDE auf CodeBocks-Basis gibt Also habe mich gefragt, wie die Toolchain bei ARMs wohl aussieht, bzw. was an Stelle des AVRDudes tritt (Arduino IDE z.B. soll wohl eine AVRDude-Version beinhalten und AVR/Atmel Studio muss wohl auch sowas in der Art benutzen..) Für AVR müsste es doch immer so sein: Texteditor -> Compiler -> Hex-File -> "AVRDude" (wie nennt sich dieser Softwaretyp??) -> Treiber -> Programmer -> µC Großartig anders kann es ja nicht sein, oder? ...Soooooooo, jetzt wars das aber erstmal.....
Karl Ium schrieb: > Kann man STM32-Controller genau so "frei" programmieren? Ja. Und das macht richtig Spaß. Nucleo + STM32CubeMX + SW4STM32 = ungeahnte Möglichkeiten :)
> Dass ich z.B. gar nicht mit float arbeiten können würde, war mir nicht > bewusst. Doch kannst du. Die Fließkomma-Operationen werden durch die C Bibliothek in Integer Operationen zerlegt, quasi so wie man das in der 5. klasse in der Schule lernt. Das geht, ist aber sehr viel langsamer, als wenn man eine CPU verwendet, die Fließkomma-Funktionen enthält. Die STM32F1 Serie hat auch keine Fließkomma-Einheit. > der Bausatz von ehajo Welcher? > Auf einen Debugger lege ich erstmal nicht so viel Wert > (was bestimmt ein Fehler sein wird..). Nein, das ist kein Fehler. Ich hatte mir nach ein paar Monaten erst einen gekauft und am Ende liegt er doch nur in der Kiste herum. Denn das Debuggen von AVR's ist ätzend lahmarschig und stört den Ablauf des Programms. Mein erster Anwendungsfall war ein Roboter, dessen gesamte Fahr-Steuerung bei Debuggen völlig versagte. Eine Waschmaschine kannst du auch nur bedingt debuggen, wenn die die Wohnung nicht unter Wasser setzen willst. So ein Gerät zu haben beruhigt und ab und zu ist es nützlich. Aber die meiste Zeit eher nicht. Mit Log-meldungen komme ich besser zurecht (http://stefanfrings.de/avr_hello_world/index.html). Ich schätze, die Macher von Arduino sehen das ganz ähnlich. > Arduinos will ich eigentlich umgehen (aber evtl nicht die Arduino IDE) Aber die Arduino IDE und das Software Framework sind ja gerade die schlechten Komponenten! Die Hardware ist brauchbar und billig. > Wer braucht schon einen Bootloader, wenn er keinen braucht;) Denn kannst du löschen. Vergleiche mal preise. Du wirst seehn, daß so manches Arduino Board aus China komplett samt Bootloader weniger kostet, als der Mikrochip einzeln. Das trifft auf STM32F103 Module ebenso zu. > Ich habe gelesen, dass die AVRISP MKII-Klone unterschiedliche > Firmware brauchen Ja leider. Aber avrdude läuft mit jeder Firmware und lässt sich wunderbar in ein Build Script (oder Makefile) einbauen. Außerdem ist avrdude flexibler, da es quasi alle Programmieradapter der Welt unterstützt. nach den ersten Klicki-Bunti Experimenten würde ich dringend empfehlen, avrdude zu benutzen. Dazu gibt es auch GUI's. Siehe meine Programm_Sammlung: http://stefanfrings.de/avr_tools/index.html Spannen wird es bei Batteriebetrieb (ohne Spannungsregler). Dann brauchst du einen programmieradapter, dessen Ausgangsspannung sich an die Zielschaltung anpasst. Und das können nur wenige (Dragon, ICE und MkII können es). Andererseits bricht man sich in der Regel auch keinen Zacken aus der Krone, die batteriebetriebene Schaltung zum Programmieren provisorisch an ein Netzteil mit geregelten 3,3 oder 5V zu hängen. > Wenn ich das richtig sehe, lassen sich die Programmer auf > STK500-Basis mit emuliertem COM-Port wesentlich leichter überall > betreiben Ja, weil sie einen ordentlichen USB-UART Chip drauf haben. Andererseits würde ich nicht lange heulen, wenn mein billiger USBASP beim nächsten Windows Upgrade nicht mehr funktionieren würde. Wir reden hier von weniger als 5 Euro Verlust. Bei STK500 Geräten musst du auf die Liste der unterstützten Mikrocontroller achten. Wenn da dein Lieblings-Chip nicht mit drin ist wird es ärgerlich. Die USBASP basierten Geräte sind flexibler, sie unterstützten generell ALLE AVR's - sofern sie denn eine ISP Schnittstelle haben. Die ganz kleinen mit weniger als 8 Pins und die großen Xmega Modelle haben keine ISP Schnittstelle. Sie sind für's Hobby allerdings ohnehin weniger attraktiv. > AVRISP-MKII kann mehr, aber nicht überall "gleichzeitig". Ist das > ein Problem?! Gleichzeitig mehrere Chips programmieren ist wohl eher etwas für die Massenfertigung. Oder was meinst du mit "gleichzeitig"? Ich empfehle die Programmer von Diamex über den USBASP Geräten, weil Diamex nicht nur 5V sondern auch 3,3V unterstüzt. Die meisten USBASP Geräte unterstützen nur 5V. Viele haben einen Schalter und Jumper für 3,3/5V, aber damit schaltet man nur die Versorgungsspannung für die Zielschaltung um. Die Signale haben idiotischerweise trotzem 5V. Daher ist dieser Schalter eigentlich totaler Quatsch. Siehe https://www.mikrocontroller.net/attachment/226803/AC-PG-USBASP_03_LRG_1_.jpg > funktioniert immer und überall Inwiefern das Produkt von Diamex damit überein stimmt, kann ich nicht beurteilen. Für den originalen stimmt die Aussage "funktioniert immer und überall" jedenfalls. Über Firmware Versionen würde ich mir (beim Original) keinen Kopf machen, denn die kann man jederzeit austauschen. Im AVR Studio ist die dazu passende Firmware integriert und mit wenigen Klicks hochgeladen. Der MkII ist wirklich die beste Wahl, wenn der Preis nicht so wichtig ist. Die Produkte von Olimex sehen vielleicht ugly aus, aber wenn man mal ernsthaft drüber nachdenkt muss man zugeben, dass deren Gehäuse durchaus praktisch sind. > Wobei dieser mit seinem Massstorage-Mode ganz interessant klingt - > macht z.B. AVRDude überflüssig Da wäre ich nicht so sicher. Kann der denn im Massstorage-Mode die Fuses umstellen? kann man damit Fuses kontrollieren? Kann er defekten (verschlissenen) Programmspeicher erkennen? Ich denke, diesen Modus haben sie von mbed und ST-Link v2.1 abgeguckt. Doch selbst bei diesen Produkten, die das schon lange können, nutze ich diesen Modus nicht. Das ist nur ein cooles Gimmik ohne viel Nutzen für den Entwickler. Es ist eher für die Endverbraucher gedacht. Doch denen wirst du diesen Programmieradapter wohl kaum in die Hand drücken, oder? > Hat jemand noch ne Empfehlung zu Herstellern?! Ich schreibe hier mal auf, durch was sich die mir bekannten Geräte hervor tun: 1) Atmel ISP MKii: teuer aber trotzdem sehr empfehlenswert. Funktioniert immer und überall. Unterszützt den gesamten Versorgungsspannungsbereich abber AVR's. Unterstüttz auch die "fetten" Xmega Modelle. Sinnvollerweise hat er ein Gehäuse und normal große robuste Anschlüsse. 6 poliger ISP Anschluss. Leider wird er nicht mehr produziert. Wie gut die nachbauten sind, weiß ich nicht. 2) USBASP: Unterstützt nur 5V Targets. Hat keinerlei Schutzschaltung, deswegen habe ich 180 Ohm Widerstände in das Flachkabel eingeschleift. Da ich einen 6 Poligen ISP Anschluss brauche, musste ich das 10 polige Kabel umfrickeln. Kein Gehäuse und die Sicherung wurde ienfach weg gespart. Man riskiert damit, den USB Port des Laptops zu killen, wenn man keine weitere Schutzmaßnahmen hinzufügt. Der USBASP ist zickig. Ich denke, das liegt unter anderem daran, dass er keine echte USB Schnittstelle hat. Manche funktionieren tadellos, andere tun es nicht - ist reine Glücks-Sache. 3) Diamex ISP Stick: Ist Ok, sofern man sich mit 3,3V und 5V zufrieden gibt. 4) Atmel Dragon: Soll sehr empfindlich sein, meiner ist noch heile (juhuu). Ich habe ihn zu Debuggen gekauft. Damals hatte man die Wahl zwischen der nackten Dragon Platine für 60 Euro und dem Atmel Debugger für 500 Euro. Da ich ihn letztendlich aber nur sehr selten benutze würde ich keinen Anfänger dazu drängen, einen zu kaufen. Er unterstützt Debugging nur bis 32kB. Einige neue AVR Chips unterstützt er nicht. Manche Leute schätzen seinen High-Voltage parallel Programming Modus. Damit kann man AVR's retten, die man verfused hat. Verfused heisst: Man stellt die Fuses (Konfigurations-Bits) so ein, das die ISP Schnittstelle nicht mehr funktioniert. Zum beispiel indem man ISP oder abschaltet oder den reset Pin als I/O Pin umkonfiguriert. Das wird hier immer wieder als das ultimative Manko der AVR Serie moniert. Aber ganz ehrlich: Den Fehler machst du höchstens zwei mal. Danach hast du es entweder gelernt oder erkennst, dass du ein andere Hobby brauchst. Mein Tipp: Fange mit einem Diamex ISP Stick an. Der ist unkompliziert. Falls er Dir irgendwann mal nicht genügen sollte, wirst du konkrete Vorstellungen haben, was der neue Programmer denn können soll. Egal welchen Programmer du kaufst, achte darauf, dass er eine echte USB Schnitsttelle hat. Erkennbar an einem Atmel Chip mit "U" in der Nummer, oder einem separaten Chip mit der Nummer FT3232, CP2201, CH34x oder PL2303 Chip hat. STM32 Mikrocontroller programmierst du wahlweise mit einem ST-Link Adapter oder einen USB-UART Kabel. Die großen Chips können auch per USB bespielt werden. Der ST-Link Adapter kann auch debuggen. Die preisgünstigen und hochwertigen Nucleo-64 Evaluation Boards enthalten einen Abtrennbaren ST-Link Adapter. Ich empfehDer USBASP ist zickig. Ich denke, das liegt unter anderem daran, dass er schon Hardwaremäßig nicht ganz der USB Spezifikation entspricht. Manche funktionieren tadellos, andere tun es nicht - ist reine Glücks-Sache. Wenn du keine Angst vor vielen Seiten langen Datenblättern hast, dann würde ich Dir empfehlen, mit STM32 anzufangen. Die sind billiger und können mehr als AVR's. Hier sind meine Notitzen zu STM32, damit Du Dir ein Bild davon machen kannst, wie aufwändig bzw einfach sie zu benutzen sind: http://stefanfrings.de/stm32/index.html Ich habe da auch ein cooles Anfänger-Projekt zum nachbauen: http://stefanfrings.de/binaeruhr/index.html
> Also habe mich gefragt, wie die Toolchain bei ARMs wohl aussieht, > bzw. was an Stelle des AVRDudes tritt Eigentlich nicht viel anders als bei AVR. Auch ARM Programme kannst du mit dem gcc Compiler übersetzen. Aber natürlich in einer anderen (neueren) Version. Er wird mit der "newlib" C Library geliefert, die auch unter Linux zum Einsatz kommt. Dazu gibt es auch eine abgespeckte Version für Mikrocontroller. Das ist am Ende weniger speziell, als die C Library für AVR's. Statt avrdude verwendest du das ST-Link Tool vom Hersteller oder für serielle Übertragung den "Flash Loader Demonstrator". Die IDE's betten häufig Open-OCD ein, damit kann man sowohl flashen als auch debuggen.
Karl Ium schrieb: > Sehe ich das richtig, dass der Bausatz von ehajo relativ abgespeckt ist > und etwas spezielle Treiber besitzt? ..Z.B. relativ langsam ist, oder > beschränkt, was die Spannungen angeht..?! Nicht "abgespeckt", sondern "auf das Notwendige reduziert" und daher viel billiger als z.B. das AVR ISP MkII. Treiber braucht man eigentlich gar nicht, außer vielleicht bei Windows einen generischen Treiber a'la libusb. Und was meinst du mit "langsam"? Spielt es wirklich eine Rolle, ob das Programm nach 20 oder 30 Sekunden im ATMega328 ist? > Also ich habe mich nicht wirklich auf AVR festgelegt. Dass ich z.B. gar > nicht mit float arbeiten können würde, war mir nicht bewusst. Das ist nicht so. Selbstverständlich kann avr-gcc auch float. > Arduinos will ich eigentlich umgehen (aber evtl nicht die Arduino IDE) Die IDE und die Libraries sind der Teil an Arduino, der fragwürdig ist. > Wer braucht schon einen Bootloader, wenn er keinen braucht;).. Ein Bootloader frißt kein Brot. Und im Zweifel ist er beim Upload des nächsten Programms per ISP überschrieben. > Ich habe gelesen, dass die AVRISP MKII-Klone unterschiedliche Firmware > brauchen, je nachdem, welche IDE/Software man nutzt (ATMEL > Studio/AVRDude/Arduino Studio / AVR Studio?). Wäre mir nicht bekannt. Richtig ist, daß Atmel-Studio & Co. immer erstmal die Firmware eines angeschlossenen Geräts prüfen und wenn es eine neuere gibt, mehr oder weniger penetrant darauf bestehen, sie updaten zu dürfen. > Angenommen, ich bleibe wirklich bei CodeBlocks als IDE > - verpasse ich da irgendwelche super-duper Vorteile der speziellen IDEs, > z.B. soetwas wie ein "GUI-Designer"-Äquivalent. Mir wäre nicht bekannt, daß es so etwas gäbe. Die IDE von Atmel/MCP enthalten halt auch Tools zum Debuggen und Simulieren, wo es Open Source Alternativen entweder gar nicht oder nur mit eingeschränktem Funktionsumfang gibt. Aber viele Tools kann man auch unabhängig von einer IDE nutzen. In der Open Source Welt ist das auch Konsens, daß man Tools möglichst unabhängig von irgendwelchen grafischen Aufsätzen (nichts anderes ist eine IDE) programmiert. > - bin ich dann auf ARVDude angewiesen?? Eigentlich alle IDE von Drittherstellern verwenden avrdude als Programmiersoftware. Zum einen, weil es halt da ist und funktioniert. Zum anderen aber auch, weil es deutlich flexibler ist (mehr Adapter unterstützt) als die Programmier-Komponente, die Atmel ihrer IDE beilegt. > Kann man STM32-Controller genau so "frei" programmieren? Sehr ähnlich. Code::Blocks und andere IDE kann man auch so konfigurieren, daß sie Projekte für AVR und ARM können. > Hab dafür auch einen Programmieradapter gesehen > allerdings braucht es dazu wohl einen Bootloader seitens des STM32 Nein. > Es handelt sich dabei genauer gesagt um einen Hybriden, der alle > Hersteller programmieren können soll. Wird wohl ein SWD-Adapter sein. Das ist das schöne an den Cortex-M (eine ARM Variante) Controllern. Die haben praktisch alle die SWD-Schnittstelle zum Programmieren und Debuggen. Dann geht ein Adapter für alle. Karl Ium schrieb: > Hab hier im Subforum gerade gesehen, dass es für ARMs ne extra IDE auf > CodeBocks-Basis gibt > Also habe mich gefragt, wie die Toolchain bei ARMs wohl aussieht, bzw. > was an Stelle des AVRDudes tritt Typischerweise openocd. Oder halt ein herstellerspezifisches Tool, z.B. stlink für STM32. > (Arduino IDE z.B. soll wohl eine AVRDude-Version beinhalten Die Arduino-IDE setzt auf avrdude. Sowohl für ISP-Programmierung als auch für den Upload via Bootloader. > AVR/Atmel Studio muss wohl auch sowas in der Art benutzen..) Die haben ihr eigenes Programm dafür. > Für AVR müsste es doch immer so sein: > Texteditor -> Compiler -> Hex-File -> "AVRDude" (wie nennt sich dieser > Softwaretyp??) -> Treiber -> Programmer -> µC Hier fehlen mindestens noch der Linker und Bibliotheken. "Hexfile" sollte besser "ausführbare Datei" heißen. Die Umwandlung in ein Hexfile (eigentlich: ein Flash-Dump) ist für avrdude nicht mehr zwingend. Und der "Treiber" ist eigentlich keiner. Der Programmieradapter und die Programmiersoftware (z.B. avrdude) reden entweder direkt miteinander (USB HID Klasse) oder verwenden eine Standard-Geräteklasse wie etwa einen seriellen Port. > Großartig anders kann es ja nicht sein, oder? Bis zum ausführbaren Programm ist es für alle µC (ja: alle Computer) der gleiche Weg, obwohl die verwendeten Komponenten (Compiler, Bibliotheken) natürlich verschieden sind. Die Unterschiede kommen danach, weil es da hardwarespezifisch wird.
Karl Ium schrieb: > ...Soooooooo, jetzt wars das aber erstmal..... Nannooo... Fragen über Fragen.... Das ist doch der falsche Ansatz! Frei nach Douglas Adams: Wir kennen die Antwort! Wir wissen welcher der billigste Programmieradapter ist. Wir wissen, welcher der haltbarste ist. Welcher die meisten Möglichkeiten bietet. Wir wissen welcher zu welchen µC passt. Die Antwort lautet 42! Aber irgendwie ist die Frage nach dem Sinn verloren gegangen... Der Sinn des ganzen, des Universums, und des ganzen Restes. z.B: Was willst du wirklich erreichen? In der Regel hat man ein Problem, eine Aufgabe. Und sei es auch eine selbst gewählte Aufgabe. Du allerdings beschreibst Schritte, wovon jeder einzelne gangbar erscheint. Aber es gibt so viele nahezu gleichwertige Schritte, dass dir die Auswahl schwer fällt. Hunderte von verschiedenen µC, welche allesamt kleine Aufgaben erledigen können. Der tiefe Sinn bleibt aber verborgen. Also: Beschreibe das Problem! Beschreibe das Ziel! Dann kann man sich über die Wege unterhalten. ----------- Ja ich weiß, oben hast du es beschrieben: Karl Ium schrieb: > Ich wollte mal langsam in die µC-Programmierung einsteigen. Da ich > einigermaßen mit dem Lötkolben umgehen kann und inzwischen auch mit > C/C++-Erfahrungen gesammelt habe, ist das wohl der nächste logische > Schritt. ..Wer möchte schon gerne für ein simples Lauflicht oder > LED-Geblinke extra seinen PC hergeben, oder es in Analog-Elektronik > realisieren.. Aber das sind eben kein exakten Ziele, anhand dessen man einen µC oder Programmieradapter auswählen kann. Aus meiner Sicht ist es völlig egal, womit du anfängst! Mein Tipp: (bin ja Arduino Fan) Fange mit einem Arduino UNO an. Preiswert, einfach, breite Codebasis. Je sattelfester du wirst, desto klarer wirst du auch dann deine Bedürfnisse ausformulieren können. Und anhand dieser Bedürfnisse klären sich deine obigen Fragen fast von selber. Immer im Hinterkopf behalten: Wenn du IDE und µC irgendwann gegen andere Komponenten austauscht, das zwischendurch gelernte Wissen kannst du mitnehmen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.