Hallo zusammen, Ich, halbwegs fundierte Elektronik-Ausbildung (HTL Nachrichtentechnik) aber seit 20 Jahren fast ausschließlich in der PC-Software-Branche unterwegs, habe vor wenigen Wochen mit Arduino endlich den Einstieg in die Mikrocontroller-Welt gefunden, und habe Blut geleckt :-) meine ersten Projekte habe ich bereits erfolgreich abgeschlossen (u.a. ein Interface von i2c auf ein T6963-Grafikdisplay, also schon nicht mehr ganz anfängermäßig). Allerdings habe ich auch hier schon versucht, einige Arduino-Sachen wegzulassen: ich verwende fast keine Arduino-Bibliotheken, und auch keine Arduino-Boards, sondern entwickle, ätze und löte meine Platinen selbst, momentan mit ATmega 328 (allerdings mit Arduiono-Bootloader drauf) Damit das klar ist: ich finde Arduino grundsätzlich toll, fühle mich aber schon etwas "beengt" (z.B. Compilerflags vpon -Os auf -O3 umstellen geht schlichtweg gar nicht ohne in den .jar-Dateien herumzupatchen...) und möchte "in den nächsten Level aufsteigen". IDE brauch ich keine, ich bin es gewohnt mit meinem emacs, einem Makefile und Subversion auszukommen. Außerdem arbeite ich ausschließlich unter Linux (Debian), ich hab einen Microsoft-freien Haushalt :-) Mit "normalem" C unter Linux bin ich vertraut, auch mit Makefiles grundsätzlich. Allerdings ist das ganze ISP, Fuses usw. natürlich ganz neu für mich, das "versteckt" ja Arduino ganz gut vor einem. Was mir an der Stelle sehr helfen würde, wäre ein kleines, einfaches, aber sauberes und standardkonformes Beispielprojekt inkl. Makefile für eine Linux-Toolchain. Sozusagen das "LED-Blink" von Arduino ohne Arduino :-) Ich wäre für Vorschläge dankbar. Wo mir auch noch etwas der Einblick fehlt, ist der "Upload" des Programmes auf den AVR. Arduino hat das ja ganz nett gelöst, die verwenden einen Bootloader, mit einem Trick wird die serielle Schnittstelle genutzt um einen Reset auszulösen, und das neue Programm seriell übertragen. Das funktioniert schon lässig: ein Mausclick, und Sekunden später läuft der AVR mit dem neuen Programm. Trial and Error bzw. "einfach mal ausprobieren" geht damit wirklich sehr schnell. Gleichzeitig kann diese serielle verbindung dann genutzt werden, um Debug-Ausgaben per Serial.print zurück an den PC zu senden, und in der Arduino-IDE per terminal-Window beobachtet werden. Wie macht "man" das ohne Arduino? Immer per ISP? Nutzt man gar keinen Bootloader mehr? Kann das ISP-Zeugs angesteckt bleiben während des Ausprobierens, oder muss man da immer an- und abstecken? Ich bin durchaus bereit, das ganze etwas "hardcore-mäßig" anzugehen, aber wenns Sachen gibt die einem das leben massiv erleichtern, ohne dabei als allzu "mädchenhaft" zu gelten, will ich mich dem natürlich auch nicht verschließen.... Wäre nett wenn ich den einen oder anderen guten Tipp von euch bekäme! lg Michi
Ersmal das hier installen: http://avr-eclipse.sourceforge.net/wiki/index.php/The_AVR_GCC_Toolchain Dann brauchste nen "ISP" damit krichste das Program aufn AVR. zB der USBasp ist da gut zu gebrauchen. Das flashen übernimmt dann das Programm avrdude, also einlesen wie das per Konsole bedienbar ist und schlieslich diese Befehle ins Makefile stopfen. Fusebitcalculator: http://www.engbedded.com/fusecalc Der ISP kann eingesteckt bleiben, da er tristate ist wenn er nicht proggt. Bootloader kannste natürlich einen raufspielen, gibts sogar für USB direkt oder alle anderen SChnittstellen.
Michael Reinelt schrieb: > IDE brauch ich keine, ich bin es gewohnt mit meinem emacs, einem > Makefile und Subversion auszukommen. Außerdem arbeite ich ausschließlich > unter Linux (Debian), ich hab einen Microsoft-freien Haushalt :-) > > Mit "normalem" C unter Linux bin ich vertraut, auch mit Makefiles > grundsätzlich. Allerdings ist das ganze ISP, Fuses usw. natürlich ganz > neu für mich, das "versteckt" ja Arduino ganz gut vor einem. > > Was mir an der Stelle sehr helfen würde, wäre ein kleines, einfaches, > aber sauberes und standardkonformes Beispielprojekt inkl. Makefile für > eine Linux-Toolchain. Sozusagen das "LED-Blink" von Arduino ohne Arduino > :-) Ich wäre für Vorschläge dankbar. Die Linux Toolchain kenne ich nicht so. Ich weiß aber, dass Eclipse als IDE gerne verwendet wird. Ja ich weiß, ich bin auch ohne IDE's aufgewachsen und hab sie mal für Teufelszeug gehalten. Aber ganz ehrlich: Irgendwann willst du den Komfort einer IDE einfach nicht mehr missen. Sie machen einem das Leben schon um einiges leichter. > Wie macht "man" das ohne Arduino? Immer per ISP? In den meisten Fällen: ja > Nutzt man gar keinen > Bootloader mehr? Doch, kann man immer noch nutzen. Bootloader sind zb dann praktisch, wenn das Zeugs draussen ist und der Aussendienstmitarbeiter eine neue Version einspielen soll. Aber um an die Fuses ranzukommen, musst du über ISP gehen. Dann kann man auch gleich damit seine Programme einspielen. Und ausserdem braucht ein Bootloader dann auch Platz im Flash :-) > Kann das ISP-Zeugs angesteckt bleiben während des > Ausprobierens, oder muss man da immer an- und abstecken? Kommt drauf an, was an den Pins hängt. Ob beim Programmieren ein paar LED im Takt mitflackern oder nicht, ist ja wurscht. WEnn an diesen Pins aber die Relais hängen, die die Herz-Lungen-Maschine ein/ausschalten, dann ist das nicht so toll. Und wenn an den Pins ein paar Taster sitzen: Man muss die ja nicht unbedingt während des Programmiervorgangs drücken. Und der ISP Progammer: Wenn der nicht gerade ein Programm in den AVR einspielt, dann hält er sich von den Pins fern, beeinflusst also deine Schaltung nicht. -> Progammer kann angesteckt bleiben
Warum nicht einfach mal die Toolchain ohne Kuschel-IDE verwenden? Irgendwie haben die Arduinistas seit dem Due (SAM3) wohl auch den Nachteil von in JAR Filen fix einkompilierten Kommandozeilen erkannt, mal schauen was sie draus machen. Irgendwie soll die Compiler Konfigurationin ein externes File wandern ... angesehen hab ich es mir aber auch noch nicht.
Michael Reinelt schrieb: > Was mir an der Stelle sehr helfen würde, wäre ein kleines, einfaches, > aber sauberes und standardkonformes Beispielprojekt inkl. Makefile für > eine Linux-Toolchain. Sozusagen das "LED-Blink" von Arduino ohne Arduino > :-) Ich wäre für Vorschläge dankbar. Bitteschön: https://raw.github.com/RobotGrrl/avr-blinklight/master/blinklight.c https://raw.github.com/RobotGrrl/avr-blinklight/master/makefile Der Artikel dazu: http://www.evilmadscientist.com/2012/blink-an-led-with-an-avr/ HTH. :)
Wenn deine AVR schon einen Arduino-Bootloader haben, dann kannst du sie mit avrdude programmieren. Der Compiler ist avr-gcc, den du unter debian einfacht mit apt-get installieren kannst. Es gibt so viele online Beschreibungen wie man das macht, dass ich einfach mal nur die ersten paar von google verlinke: http://www.rn-wissen.de/index.php/Avr-gcc_und_avrdude_installieren http://www.ladyada.net/library/arduino/bootloader.html http://balau82.wordpress.com/2011/03/29/programming-arduino-uno-in-pure-c/ http://www.javiervalcarce.eu/wiki/Program_Arduino_with_AVR-GCC Falls du nackte MCU hast, dann brauchst einen ISP-Programmierer. Am billigsten sind USBASP Programmierer aus China für $3.60 (bei ebay.com), von denen kann man sich mal zwei bestellen (dann kann man den einen mit den anderen umprogrammierer!).
ok, danke. Die Linux-Toolchain ist eh schon installiert, die bringt arduino als dependencies mit. ich muss halt nur drauf achten dass das Zeugs da bleibt, wenn ich arduino runterwerf. Bezüglich ISP oder Bootloader: hier ist vielleicht noch ein Aspekt wichtig: ich bin es gewohnt, meine Entwicklungen (sobald sie einen gewissen Reifegrad erreicht haben) als Open Source zu veröffentlichen, natürlich inklusive Makefile, und dann macht ISP sicher mehr Sinn als irgendein Bootloader, richtig? Kann das ISP-Zeugs dann auch als "Debug-Schnittstelle" (für Serial.print oder so ähnlich) herhalten? Oder ist dafür der "normale" UART-Ausgang besser geeignet? (rausgeführt auf Stiftleisten hätte ich den eh immer)
Michael Reinelt schrieb: > und dann macht ISP sicher mehr Sinn als > irgendein Bootloader, richtig? Lass den Nutzniesser doch selbst bestimmen, wie er das Binary auf den Controller überträgt. Soll er's doch so machen wie es im genehm ist. Abhängigkeiten gibt's ja ohnehin (fast) keine, ausser das ein allfälliger bootloader etwas Platz im Flash einnimmt. Michael Reinelt schrieb: > Kann das ISP-Zeugs dann auch als "Debug-Schnittstelle" (für Serial.print > oder so ähnlich) herhalten? Ja, das ist möglich, würde ich aber nicht so machen. Die ISP Schnittstelle ist im normalen Betrieb das SPI, das sich viel besser zur Anbindung von Peripherie eignet denn als software uart. > Oder ist dafür der "normale" UART-Ausgang > besser geeignet Ja.
Michael Reinelt schrieb: > Oder ist dafür der "normale" UART-Ausgang > besser geeignet? (rausgeführt auf Stiftleisten hätte ich den eh immer) Es gibt in der Bucht USB -> TTL Adapterkabel, wie sowas hier: http://www.ebay.de/itm/USB-auf-TTL-UART-PL2303-Kabel-Konverter-Modul-/251173925464?pt=DE_Computing_USB_Kabel_Hubs_Adapter&hash=item3a7b21f258&_uhb=1#ht_4425wt_1139 Das ist rech komfortabel.
Karl schrieb: > Michael Reinelt schrieb: >> Oder ist dafür der "normale" UART-Ausgang >> besser geeignet? (rausgeführt auf Stiftleisten hätte ich den eh immer) > > Es gibt in der Bucht USB -> TTL Adapterkabel, wie sowas hier: > http://www.ebay.de/itm/USB-auf-TTL-UART-PL2303-Kabel-Konverter-Modul-/251173925464?pt=DE_Computing_USB_Kabel_Hubs_Adapter&hash=item3a7b21f258&_uhb=1#ht_4425wt_1139 > > Das ist rech komfortabel. Ausgerechnet das Kabel sieht aber wie Mist aus: * Prolific Chipsatz. Die FTDI basierten Wandler haben einen wesentlich besseren Software-Support (D2XX). * Es wird nur TX/RX rausgeführt. Andere Boards/Kabel führen noch DTR, CTS usw. raus. Mit DTR werden z.B. die Arduinos resettet bevor das Programm an den Bootloader gesendet wird. * Kein Vcc rausgeführt und ich auch kein Jumper sichtbar um zwischen 3.3v und 5v umzuschalten. FTDI232* Breakout-Boards die alle Pins des Chipsatz auf Header bringen kosten ca $7 auf der Bucht.
als nächsten Schritt suche ich jetzt einen ISP Programmieradapter. Vernünftig erschiene mir der USBtinyISP oder der µISP-Stick. Leider sind beide momentan bei ehajo nicht lieferbar :-( Sehr schnell bekommen könnte ich den mySmartUSB light (den hätte mein lokaler Conrad sogar lagernd) Frage: ist der zu empfehlen? Danke, Michi
Es ist vollbracht! ich hab einen ISP, ich hab ein Makefile, ich hab endlich wieder die Kontrolle! Und alles funzt.... Danke euch!
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.