Hi Leute! Vom Arduino bin ziemlich verwöhnt was das Flashen angeht, nur ein usb kabel ans Board und PC ran und das wars. Seit einiger Zeit beschäftige ich mich mit aber näher mit dem Controller um alles genauer zu verstehen, sozusagen under the hood schauen Ich würde gerne ein universelles Programmierboard für den atmega 168a und 328 haben, es soll breadboardtauglich sein, einen usb anschluss haben und den avr ü er die serielle schnittstelle programmieren, ich will keine Programmierpins aufm Breadboard herausführen müssen. Könnt ihr mir nen Fingerzeig auf was geben?
Arduino Fanboy D. schrieb: > Eigentlich: > Der Nano hat genau das, was du willst! Ok stimmt, aber wie programmiere ich den dann ohne die Arduino ide?
Du benötigst mindestens die AVR-gcc Toolchain und AVRdude. Die Arduino IDE ist nicht nötig. Andererseits, kannst du auch mit der Arduino IDE arbeiten und trotzdem auf das gesamte Framework verzichten. C, C++ und ASM stehen zur Auswahl
Arduino Fanboy D. schrieb: > Andererseits, kannst du auch mit der Arduino IDE arbeiten und trotzdem > auf das gesamte Framework verzichten Wie mache ich das? Einfach setup() und loop() weglassen?
Jimbo schrieb: > Wie mache ich das? Einfach setup() und loop() weglassen? Richtig! Einfach stattdessen eine main() anlegen.
Arduino Fanboy D. schrieb: > Jimbo schrieb: > >> Wie mache ich das? Einfach setup() und loop() weglassen? > > Richtig! > Einfach stattdessen eine main() anlegen. Habe gelesen, dass dann auch der usb-serial programmer nicht mehr nutzbar ist, stimmt das? Es gibt ja dann aber immer noch den ISP Header, über den sollte es gehen hoffe ich.
Arduino Fanboy D. schrieb: > Richtig! > > Einfach stattdessen eine main() anlegen. Hääh? Bei Arduino gibt es genauso ein main(). setup() und loop() sind dort Funktion, die von main() aufgerufen werden.
Jimbo schrieb: > Einfach setup() und loop() weglassen? Dem verwöhnten Arduino User wird das erst mal schwer fallen, denn er wird sich erst mal um eine ganze Menge mehr an Arbeit kümmern müssen. Aber wenn die ersten Schritte aus dem Urschleim gelungen sind ist die Freude gross was man ohne Arduino Framework alles machen kann.
Wolfgang schrieb: > Bei Arduino gibt es genauso ein main(). Im Arduino Framework wird die jedoch dem User vorenthalten.
Jimbo schrieb: > Habe gelesen, dass dann auch der usb-serial programmer nicht mehr > nutzbar ist, stimmt das? Nein! Der hat damit nichts zu tun. Dafür benötigst du den Bootloader. Aber der ist ja auf dem Nano drauf, solange du da nicht mit einem ISP Adapter dran gehst.
Wolfgang schrieb: > Hääh? > Bei Arduino gibt es genauso ein main(). > setup() und loop() sind dort Funktion, die von main() aufgerufen werden. Wenn keine setup() und loop() existieren, erwartet der Builder, dass der Arduino User eine eigene main() erstellt. Und das tut der Builder, egal ob dir das schmeckt, oder auch nicht. Allerdings ist das Framework dann kaum noch nutzbar, da die Timer und das restliche Gedönse nicht mehr vorbereitet wird. Aber das ist hier ja auch das Ziel.
Arduino Fanboy D. schrieb: > Nein! > Der hat damit nichts zu tun. > Dafür benötigst du den Bootloader. > Aber der ist ja auf dem Nano drauf, solange du da nicht mit einem ISP > Adapter dran gehst. Ich kann den AVR also aus der Arduino IDE heraus ohne das Framework in C/C++ programmieren und das auch noch mit der super bequemen USB-Serial Schnittstelle, wie genial ist das denn :-) Demnach könnte ich auch meinen Atmega168a vom UNO stecken lassen und dasselbe tun.
Jimbo schrieb: > Demnach könnte ich auch meinen Atmega168a vom UNO stecken lassen und > dasselbe tun. Gibt zwar keinen UNO mit Atmega168a, aber ja! Du kannst in den UNO jeden Pin kompatiblen AVR reinstecken und betreiben. Einen Bootloader benötigst du dann noch, das Problem ist aber lösbar. Jimbo schrieb: > wie genial ist das denn :-) Sach das nicht! Die Arduino Hasser hier, möchten sowas sicherlich nicht hören.
Arduino Fanboy D. schrieb: > Gibt zwar keinen UNO mit Atmega168a, Stimmt da steckt der 328er drin. Auf alle Fälle habe ich meine Antworten und bin höchst zufrieden damit :-) Vielen Dank!
Arduino Fanboy D. schrieb: > Die Arduino Hasser hier, möchten sowas sicherlich nicht hören. Wer den Vorteil hier nicht sieht dem kann man aber auch nicht helfen :-)
Jimbo schrieb: > aber wie programmiere ich den dann ohne die Arduino ide? https://www.mikrocontroller.net/articles/Umstieg_von_Arduino_auf_AVR
Alexander S. schrieb: > Jimbo schrieb: >> aber wie programmiere ich den dann ohne die Arduino ide? > > https://www.mikrocontroller.net/articles/Umstieg_von_Arduino_auf_AVR Habe ich gerade mal überflogen.... Ein paar Unsauberkeiten sind da ja drin. > (das Arduino-Framework ist in C++ geschrieben). Große Teile sind in C geschrieben. Vieles in C++ Wenige Fragmente in ASM > Die meisten Arduino-Sketches eher in C geschrieben In C++! Alle. > Allen anderen kann ich nur wärmstens empfehlen, ein C-Buch Darum auch eher ein C++ Buch. > Die meisten Arduino-Sketches eher in C geschrieben sind, Falsch! > mit Ausnahme der Arduino-Libraries und derer Objekte Halb richtig. Die meisten Arduino Libraries sind in C++ geschrieben, ja. Aber einige auch in reinem C. Ganz wenige in ASM Einige bestehen aus einer Mischung von *.h, *.c, *.cpp und *.S Dateien. > Zuerst einmal: delays sind so gut wie immer schlecht! Aber danach wird konsequenter Weise _delay_ms(1000); verwendet. Ansonsten geht der Artikels schon....
> super bequemen USB-Serial Schnittstelle
Was Dumpfbacken für bequem halten.
Naja, wer nur Kellerfenster und Holzschemel gewöhnt ist.
Jimbo schrieb: > Ich würde gerne ein universelles Programmierboard für den atmega 168a > und 328 haben, es soll breadboardtauglich sein, einen usb anschluss > haben und den avr ü er die serielle schnittstelle programmieren, ich > will keine Programmierpins aufm Breadboard herausführen müssen. Das nennt sich USB-UART Adapter. Aber dann musst du vorher den Bootloader in den µC laden. Also kannst du vermutlich auch gleich einen ISP-Adapter verwenden, dann brauchst du keinen Bootloader und hast die serielle noch für andere Zwecke frei. Wenn du jetzt meinst, dass dir dann aber drei statt zwei Pins verloren gehen: Nein, die Pins kann man während des Betriebes (mit winzigen Einschränkungen) normal nutzen, denn der ISP Adapter schaltet auf hochohmig, solange er nicht benutzt wird. Also gewinnst du damit sogar Pins. Warum Arduino auf USB-UART setzt, ist mir ein Rätsel. Vielleicht wollten sie zum Ur-Arduino kompatibel bleiben. Das ist nun aber schon 15 Jahre her. Irgendwann sollte man alte gammelige Zöpfe abschneiden. Im übrigen sind Arduino Boards nach meinem Kenntnisstand die einzigen Entwicklungsbaords, die über UART programmiert werden. Alle anderen enthalten entweder einen vollwertigen Programmieradapter mit Debugger (!) oder einen USB-Bootloader der schon ab Werk im Chip drin ist.
Jimbo schrieb: > sozusagen under the hood schauen Dieser Wahnsinn ist anscheinend nicht mehr aufzuhalten.
Jimbo schrieb: > Ich kann den AVR also aus der Arduino IDE heraus ohne das Framework in > C/C++ programmieren und das auch noch mit der super bequemen USB-Serial > Schnittstelle, wie genial ist das denn :-) > Demnach könnte ich auch meinen Atmega168a vom UNO stecken lassen und > dasselbe tun. Ja Und wenn du dich doch mal von der Arduino IDE lösen willst, geht auch das ohne Hardwarewechsel. Siehe dazu: http://stefanfrings.de/avr_hello_world/index.html http://stefanfrings.de/avr_tools/index.html
Stefan ⛄ F. schrieb: > Im übrigen sind Arduino Boards nach meinem Kenntnisstand die einzigen > Entwicklungsbaords, die über UART programmiert werden. Alle anderen > enthalten entweder einen vollwertigen Programmieradapter mit Debugger > (!) oder einen USB-Bootloader der schon ab Werk im Chip drin ist. Vielleicht deshalb, weil ein ATmega328 nativ keine USB Hardware beherbergt, ein Arduino UNO in all seinen Entwicklungsstufen (Gehäusebauform) immer ein ATmega328 ist und eine UART-USB Bridge die preiswerteste Möglichkeit ist, eine USB-Verbindung herzustellen? Außerdem: Never touch a running system! Das Flashen eines Arduino UNO funktioniert absolut problemlos und bei einer Speicherkapazität von 32k sind auch die Flashzeiten absolut gering. Für den Anfang ist die Hardware eines Arduino-UNO doch super. Letztendlich ist es vollkommen egal, wie ein Binary in den Controller kommt. Einzig die Debugmöglichkeit fehlt, aber dafür gibt es externe Programmer.
Ausgerechnet beim Arduino UNO ist der USB Adapter ein zweiter (AVR) Mikrocontroller. Da hätte man ohne Aufpreis sowohl den USB-UART als auch einen ISP Programmer unterbringen können. In diesem Thread reden wir aber primär vom Arduino Nano, der ist tatsächlich etwas billiger aufgebaut.
> tatsächlich etwas billiger aufgebaut Noch viel billiger schafft es ein Controller ohne irgendwelches Gedöhns. Seltene Ausnahme sind vom Hersteller gesponsorte FPGAs. > Never touch a running system! Dann wären wir heute noch beim Flipflop mit einer ECC962 bzw. einigen Tausend davon.
Stefan ⛄ F. schrieb: > Da hätte man ohne Aufpreis sowohl den USB-UART als auch > einen ISP Programmer unterbringen können. Hat man doch! Der ATMega16U2 des UNO lässt sich recht problemlos, auch ohne ISP Adapter, zu einem ISP Adapter machen. Der UNO kann also ohne Zusatzhardware seinen Bootloader selber brennen.
Arduino Fanboy D. schrieb: > Der ATMega16U2 des UNO lässt sich recht problemlos, auch ohne ISP > Adapter, zu einem ISP Adapter machen. Schade, dass Arduino keine solche Firmware enthält.
Stefan ⛄ F. schrieb: > Schade, dass Arduino keine solche Firmware enthält. Schade, dass Arduino keine Flügel hat, dass es nicht schwimmen und nicht radieren kann. Es hat auch keine roten Tupfer auf verspiegelter Oberfläche. So gut wie nie, braucht man einen ISP Adapter, in der Arduino Welt. Außer, man möchte nackte AVR vorbereiten. Oder eine andere Extrawurst backen.(z.B. die Fuses anfassen) Und dann gibts genau dafür "Arduino as ISP". Die ISP Firmware befindet sich also doch im Lieferumfang. Entgegen deiner Ansage! Merke: Arduino stellt Grundfunktionalität zur Verfügung. Extrawürste bastelt man sich selber, oder lädt die passenden/nötigen Boardefinitionen/Libraries von extern dazu.
Arduino Fanboy D. schrieb: > Und dann gibts genau dafür "Arduino as ISP". > Die ISP Firmware befindet sich also doch im Lieferumfang. Ja schon, aber damit machst du nicht den Atmega16U2 zum ISP Adapter, sondern den ATmega328.
Stefan ⛄ F. schrieb: > aber damit machst du nicht Falsch! Du kannst das nicht. Ich schon.... (und viele andere könnten das auch, wenn sie wollten/müssten) Da sind wir wieder bei der Projektion/Fantasie..... Du hast ein fertiges Bild/Urteil von/über Arduino. Und das projizierst du auf Arduino, genau so wie ein Diaprojektor es tut. Dann siehst du natürlich das Bild, welches du selber darauf wirfst. Dummerweise, hat das nur bedingt was mit der Realität zu tun. Auch wenn es für dich kaum/nicht vorstellbar ist, dass "Arduino as ISP" auf einem ATMega16U2 lauffähig ist. Es ist. So wie es auch auf allen(?) anderen Mikrokontrollern (mit UART oder USB) lauffähig ist, für die es eine Gcc Toolchain gibt. Wie kommst du nur auf die lustige Fantasie, dass der ATMega16U2 da so was besonders ist, dass das nicht geht?
Es ist nicht nötig, mich in diesem Tonfall zu beschimpfen. Habe ich dir etwas böses angetan? Das war jedenfalls nicht beabsichtigt. Ich habe durchaus Interesse, mir eine entsprechende Anleitung anzuschauen. Kennst du eine? Was mit diesem "Arduino as ISP" Sketch dann aber wiederum fehlt ist die USB-UART Funktion. Es ging doch gerade darum, diesen einen Chip für beide Funktionen (ISP und UART) zu nutzen. Das das irgendwie technisch möglich ist, muss mir niemand erklären. Das weiß ich, deswegen habe ich es ja auch oben als Wunsch geäußert. Ich finde nur schade, dass das so nicht bereits im Lieferumfang bzw. mit ein paar Klicks in der IDE enthalten ist.
Stefan ⛄ F. schrieb: > Ich finde nur schade, dass das so > nicht bereits im Lieferumfang bzw. mit ein paar Klicks in der IDE > enthalten ist. Dazu sagte ich schon: > Arduino stellt Grundfunktionalität zur Verfügung. > Extrawürste bastelt man sich selber, oder lädt die passenden/nötigen > Boardefinitionen/Libraries von extern dazu. Leider kann es nicht alle Wünsche, dieser Welt, "Out of the Box" befriedigen. Es ist ein Bastelapparat und bleibt ein Apparat zum basteln. Stefan ⛄ F. schrieb: > Ich habe durchaus Interesse, mir eine entsprechende Anleitung > anzuschauen. Kennst du eine? Hier rate ich dir zu "Nico Hood" bzw zum "Hoodloader". Der hat sich ausgiebig mit dem ATMega16U2 (und anderen) beschäftigt.
Jimbo schrieb: > Vom Arduino bin ziemlich verwöhnt was das Flashen angeht, nur > ein usb kabel ans Board und PC ran und das wars. ... > Ich würde gerne ein universelles Programmierboard für den atmega 168a > und 328 haben, es soll breadboardtauglich sein, einen usb anschluss > haben und den avr ü er die serielle schnittstelle programmieren Wozu? Ab Werk können die ATMega168 und 328 nur mit ISP programmiert werden. Durch die Festlegung auf die serielle Schnittstelle geht es nur mit einem Bootloader. Den mußt du aber per ISP aufspielen. Du brauchst also ISP und USB-serial Converter. Da kannst du auch gleich bei Arduino bleiben. > will keine Programmierpins aufm Breadboard herausführen müssen Warum? Ich nutze einen Adapter um die 2x5 Stiftleiste auf die Breite eines IC zu bringen und stecke den ins Breadboard. Dann verkabele ich ihn mit Steckbrücken mit dem µC. Danach kann ich einfach irgendeinen ISP-Adapter drauf stecken. Meist den usbasp, der kann den Krempel auch gleich versorgen.
Arduino Fanboy D. schrieb: > Hier rate ich dir zu "Nico Hood" bzw zum "Hoodloader". Das ist offenbar auch kein kombinierter ISP+UART Adapter. Aber lass gut sein, das Thema ist nicht so wichtig. Wenn ich das brauche kann ich STM32 Nucleo Boards verwenden, die haben das gewünschte ab Werk drauf.
Stefan ⛄ F. schrieb: > Das ist offenbar auch kein kombinierter ISP+UART Adapter. Alles klar.... Er macht den 16U2 zu einem vollwertigen nutzbaren USB zu ISP Adapter. Aber es ist kein "ISP+UART Adapter"? Man macht den 16U2 zu dem, was man gerade braucht! Soll er USB Serial Adapter spielen, dann gut, dann die originale Firmware drauf. (ist im Lieferumfang) Soll er ISP spielen, dann eben "Arduino as ISP" Bei einem Auto kannst du doch auch nicht aus 2 Türen gleichzeitig aussteigen. Oder? Stefan ⛄ F. schrieb: > Aber lass gut sein, das Thema ist nicht so wichtig. Vielleicht nicht. Aber vielleicht poppt es hier wieder auf, und dann wäre es doch gut, wenn deine Aussagen etwas realitätsnäher wären. Oder?
Arduino Fanboy D. schrieb: > Bei einem Auto kannst du doch auch nicht aus 2 Türen gleichzeitig > aussteigen. Oder? Mein Auto hat auf beiden Seiten Türen, damit ich es nicht jedes mal umbauen lassen muss, wenn jemand auf der anderen Seite aussteigen möchte. > Aber vielleicht poppt es hier wieder auf, und dann wäre es doch gut, > wenn deine Aussagen etwas realitätsnäher wären. Das ist absolut realitätsnah, sonst würde ST nicht alle Entwicklungsboards mit so einem Kombi-Adapter (namens ST-Link) ausstatten. Ich glaube dir, dass du damit nichts anfangen kannst. Dann glaube du mir bitte auch, dass ich es aber gebrauchen kann. Man ist nicht automatisch blöde, bloß weil man andere Bedürfnisse hat als du.
Das Thema war AVR und Arduino, nicht irgendwelche STM32 Entwicklerboards vom Hersteller selber. Ach, dein ST Geblubber ist doch nur eine Nebelkerze, die verdecken soll, dass ich dich wieder mal bei lustig falschen Argumenten erwischt habe. Stimmt es, oder habe ich recht?
Arduino Fanboy D. schrieb: > dass ich dich wieder mal bei lustig falschen Argumenten erwischt habe. Jaja, du hast mich "erwischt". Glaube das mal ruhig, wenn du dich dann besser fühlst. tssssss
Deine Arbeitskollegen tun mir leid. Mit denen gehst du doch auch so um, oder? Stefan ⛄ F. schrieb: > Arduino Fanboy D. schrieb: >> Hier rate ich dir zu "Nico Hood" bzw zum "Hoodloader". > > Das ist offenbar auch kein kombinierter ISP+UART Adapter. Drei Minuten hast du gebraucht, um das bei Google ein zu tippen, alles zu lesen, ein veritables Vorurteil aus zu bilden und sofort ins Forum zu blasen. Das ist eine Leistung, die ihres gleichen sucht. Quasi: Eine Glanzleistung.
Arduino Fanboy D. schrieb: > Drei Minuten hast du gebraucht Na und? Willst du mir damit sagen, dass ich mich irre und dieses Projekt tatsächlich Firmware für einen kombinierten ISP+UART Adapter enthält? Zeige mal, wo das steht!
Arduino Fanboy D. schrieb: >> https://www.mikrocontroller.net/articles/Umstieg_von_Arduino_auf_AVR > > Habe ich gerade mal überflogen.... > Ein paar Unsauberkeiten sind da ja drin. Hallo Fanboy, das ist ein Wiki-Artikel, der von jedem (angemeldeten) Nutzer editiert, erweitert oder verbessert werden kann.
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.