Ich blicke nicht durch, kann mir mal jemand helfen bitte.
Ich habe versucht das durch lesen und googeln herauszufinden, aber es ist mir nicht wirklich gelungen. Was genau hat es mit dem Bootloader auf sich, ich werde aus dem, was ich lese, nicht schlau. Da wird von einem "external Programmer" gesprochen. Warum sollte man eine 8MHz-Variante nehmen, wenn man eine 16MHz für fast den gleichen Preis haben kann? Ich finde auch nicht wirklich den Unterschied zwischen dem 168 und dem 328?
Und was ist das mit dem USB-Board? Steckt man das auf den Mini drauf, programmiert ihn und dann behält man das USB-Ding für die Programmierung des nächsten Mini? Wenn ja: Muss man das USB-Board auf den Mini auflöten, um ihn zu programmieren?
Konkret geht es mir um folgendes:
Ich habe einen UNO, und würde gerne eine kostengünstige Variante finden, um den Controller in ein Gerät einzubauen. GHier habe ich einen gefunden, der preislich passt: Klick.
Den gibt es nun nochmal mit diesem USB-Board: Klick
Immer mal langsam... das sind ja gleich 3 Fragen auf einmal
Die 8Mhz variante läuft mit dem Lilipadbootloader und ist für Netzunabhängige Anwendungen vorzuziehen, da der Arduino so weniger Strom verbraucht.
Unterschied des 328 zum 168 ist der Speicher der beim 328 von 16kb auf 32k angehoben wurde. Das macht allerdings nur bei rgrößeren Projekten einen Unterschied.
USB-Board: der Mini hat lediglich eine serielle Schnittstelle - um mit ihm über USB zu quatschen brauchst du ein sogenanntes FTDI-Breakout oder mindestens ein TTL-Kabel. Das breakout muss nicht angelötet werden, du kannst es auch mit stiften und sockeln befestigen, um es bei einem anderen Projekt wieder zu verwenden.
Wenn du einen Arduino mit USB-Schnittstelle suchst und es dir auf die Größe ankommt, würde ich dir zum Nano raten. Der hat den FTDI gleich eingebaut und kostet ds selbe wie der Mini. Auch der Größenunterschied ist zu vernachlässigen.
Wenn du den Pro mini kaufst, brauchst du nur Einmal das USB-Dings. Und zwar, um den zu programmieren.
Hast du mehrere Projekte, brauchst du dazu EIN USB-Bracket, und eben so viele Arduinos wie wie du Projekte hast .
Das mit dem Bootloader, auch "Lilipadbootloader" ist mir noch nicht klar. Okay, das Lilipad ist der runde Controller, aber was ist der Bootloader überhaupt? Wozu ist das? Was ist der "external Programmer"?
Und auch zum USB-Board habe ich noch Fragen: Wenn der eine Mini mit 3,3 und der andere mit 5 Volt läuft, dann mann müsste es ja unterschiedliche USB-Boards geben, oder? USB liefert ja 5Volt, also müsste der eine ja die Spannung ändern? Muss ich, wenn ich mal einen 3,3V und mal einen 5V programmieren will also auch unterschiedliche USB-Boards haben?
Eine USB-Schnittestelle muss am letztendlich Gerät nicht mehr vorhanden sein, ich will ihn nur bequem programmieren können... Du schreibst "mit Stiften und Sockeln" Es sind ja aber auf dem Mini keine Sockel vorhanden!?!
Das mit dem Bootloader, auch "Lilipadbootloader" ist mir noch nicht klar. Okay, das Lilipad ist der runde Controller, aber was ist der Bootloader überhaupt? Wozu ist das? Was ist der "external Programmer"?
Der Bootloader erlaubt es Programme bequem in der Arduino-IDE zu schreiben und per USB oder seriell zu übertragen. Ohne den Bootloader müsstest du den ATmega jedesmal mit einem speziellen AVR-Programmer neu schreiben.
Und auch zum USB-Board habe ich noch Fragen: Wenn der eine Mini mit 3,3 und der andere mit 5 Volt läuft, dann mann müsste es ja unterschiedliche USB-Boards geben, oder? USB liefert ja 5Volt, also müsste der eine ja die Spannung ändern? Muss ich, wenn ich mal einen 3,3V und mal einen 5V programmieren will also auch unterschiedliche USB-Boards haben?
Das Breakout von Watterott z.B. hat an der Unterseite einen Jumper um die Betriebsspannung einzustellen.
Eine USB-Schnittestelle muss am letztendlich Gerät nicht mehr vorhanden sein, ich will ihn nur bequem programmieren können... Du schreibst "mit Stiften und Sockeln" Es sind ja aber auf dem Mini keine Sockel vorhanden!?!
Okay, danke, so langsam klärt sich die Sache für mich auf. Der Bootloader braucht mich also eigentlich nicht interessieren, weil ich ja ganz "normal" über die IDE programmiere...
Bleibt jetzt nur die Stift-Sockel-Sache, da bin ich noch nicht völlig weise. Dass ich das Board anlöten kann ist schon klar, aber ich WILL es ja nach Möglichkeit nicht. Ich will ja, dass ich das Programm aufspiele und dann das Board ohne USB einbaue.
Und da fällt mir jetzt gleich noch eine Frage ein: Wenn es so ist, dass das USB-Board auf den Mini gesteckt oder gelötet wird, dann sind damit ja vermutlich einige Pins des Mini für das USB-Board in Gebrauch. Heißt das, dass ich die frei machen muss, um das USB-Board aufzusetzen? Ist es so gedacht, dass man an einem "großen" Arduino entwickelt und dann, wenn alles getestet ist, das auf den Mini aufspielt?
Halt, Halt, Halt, Halt, Halt!
Der Bootloader muss dich interessieren, wenn du zeitsensitive Anwendungen hast ( ne Stoppuhr z.B. ) - weil wenn du den 8Mhz-Bootloader auf ein 16Mhz gerät bastelst, sind 100ms Delay nur noch 50ms lang.
Beim breakoutboard werden nicht die Ein- / Ausgänge des Arduino benutzt, sondern die Kommunikationspins an der Seite. da kannst du dir ne stiftleiste hinlöten oder eben ne sockelleiste
hier mal ein Bild, dass ich im Internet gefunden hab.
Quelle: Physical Computing AUSTRIA
EDIT:
auch der entsprechende Blog der das Bild zur Verfügung gestellt hat erklärt dir das sehr schön: Link
Und da fällt mir jetzt gleich noch eine Frage ein: Wenn es so ist, dass das USB-Board auf den Mini gesteckt oder gelötet wird, dann sind damit ja vermutlich einige Pins des Mini für das USB-Board in Gebrauch. Heißt das, dass ich die frei machen muss, um das USB-Board aufzusetzen? Ist es so gedacht, dass man an einem "großen" Arduino entwickelt und dann, wenn alles getestet ist, das auf den Mini aufspielt?
Du hast dir die Frage fast selbst beantwortet ! Denke ein bisschen nach ...
Super! Damit ist alles gesagt! Habe ich nicht gefunden... Das ist ja dann echt pillepalle, im Prizip kann man also auch die Mini gut zum entwickeln benutzen... Die I/Os bleiben ja völlig frei...
[quote author=Marcus W link=topic=59266.msg426661#msg426661 date=1303558602]Halt, Halt, Halt, Halt, Halt! Der Bootloader muss dich interessieren, wenn du zeitsensitive Anwendungen hast ( ne Stoppuhr z.B. ) - weil wenn du den 8Mhz-Bootloader auf ein 16Mhz gerät bastelst, sind 100ms Delay nur noch 50ms lang.
[/quote]
Ömmmmm? Also ist der Bootloader ein Gerät? Ich dachte, das sein Software? Wo ist denn so ein Bootloader nochmal zu sehen, verdammt! Und millis() bleibt doch millis(), oder? Und Delay() bleibt auch Delay()? Das ist das einzige, was ich bisher verwende...
Der Bootloader ist die Basissoftware im ATmega, welche Dir das einfache aufspielen der Programme erlaubt. Wenn Du einen fertigen Arduino kaufst (UNO, Mini, ...) ist der Bootloader ja schon aufgespielt und braucht Dich NICHT zu interessieren. Du musst nur in der IDE den richtigen Arduino auswählen, sonst klappt das aufspielen der Programme nicht.
Das hängt nicht vom Bootloader, ab sondern von den Einstellungen im IDE wenn Du den Sketch kompilierst. Kann nicht sagen ob ein 8Mhz Arduino einen anderen Bootloader hat als ein 16Mhz Arduino.
[quote author=Marcus W]
Beim breakoutboard werden nicht die Ein- / Ausgänge des Arduino benutzt, sondern die Kommunikationspins an der Seite. da kannst du dir ne stiftleiste hinlöten oder eben ne sockelleiste [/quote]
Es werden sehr wohl Pins benutzt; Pin0 und Pin1 sind für den internen UART ( serielle Schnittstelle) reserviert. Sie sind nur am Arduino Mini / Mini PRO 2 mal herausgeführt. Falls Du einen Sketch hochladen willst, muß die Schaltung, die an diesen beiden Pins hängt, die Übertragung nicht stören oder die Pins frei sein.
clockdivider:
Warum sollte man eine 8MHz-Variante nehmen, wenn man eine 16MHz für fast den gleichen Preis haben kann?
Wenn der ATmega mit einer geringeren Spannung betrieben wird, muß die Taktfrequenz erniedrigt werden (sie Datenblatt). Deshalb laufn die 3,3V Arduinos mit 8 MHz, Könnten mit 12MHz betrieben werden, aber der Einfachheit halber wurde die halbe Taktfrequenz der 5V Variante gewählt.
clockdivider:
Super! Damit ist alles gesagt! Habe ich nicht gefunden... Das ist ja dann echt pillepalle, im Prizip kann man also auch die Mini gut zum entwickeln benutzen... Die I/Os bleiben ja völlig frei...
Wie schon gesagt, nicht ganz. Pin 0 und 1 braucht es für die serielle Übertragung zum USB-Breakout. Wenn Du die blockierst, bekommst Du keinen Upload zustande.
clockdivider:
Ömmmmm? Also ist der Bootloader ein Gerät? Ich dachte, das sein Software? Wo ist denn so ein Bootloader nochmal zu sehen, verdammt! Und millis() bleibt doch millis(), oder? Und Delay() bleibt auch Delay()? Das ist das einzige, was ich bisher verwende...
Der Bootloader ist eine SW die im oberen bereich des Flash-Speichers des Atmega ist. Es sind dort 2 kByte (alter Bootloader) oder 500 Byte ( Bootloader des Arduino UNO) reserviert und geschützt. Der Bootloader wird nach einem Reset ausgeführt und kontrolliert ob über die Seriele Schnittstelle des ATmega ein Sketch übertragen werden soll. Wenn das der Fall ist schreibt er diesen in den Flash-Speicher und springt anschließend zu diesem. Falls kein Sketch übertragen wird der Bootloader beendet und das gespeicherte Programm abgearbeitet. Nachdem der Bootloader verlassen wurde wird er nicht mehr aufgerufen, ist also keine Art Betriebssystem. Ein Atmega kann auch ohne Bootloader funktionieren, nur mußt Du in diesem Fall den Sketch kompilieren und mit einem ISP-Programmierer übertragen, was etwas arbeitsintensiver ist, als in der IDE den Upload-Knopf zu clicken.
uwefed:
Das hängt nicht vom Bootloader, ab sondern von den Einstellungen im IDE wenn Du den Sketch kompilierst. Kann nicht sagen ob ein 8Mhz Arduino einen anderen Bootloader hat als ein 16Mhz Arduino.
Du Klugscheißer
Klar - der 8Mhz Bootloader ist auf 8Mhz angepasst - Stichwort timings.
Ob du am einen Ende (IDE) die falschen Einstellungen hast, oder am anderen Ende (Arduino) kommt aufs gleiche Raus.
clockdivider:
Seid lieb zueinander! Vielen Dank Euch!
Wieso? Wir streiten ja nicht miteinander.
[quote author=Marcus W link=topic=59266.msg426703#msg426703 date=1303563441]
... Klar - der 8Mhz Bootloader ist auf 8Mhz angepasst - Stichwort timings.
Ob du am einen Ende (IDE) die falschen Einstellungen hast, oder am anderen Ende (Arduino) kommt aufs gleiche Raus. [/quote]
Nicht ganz. Der Bootloader ist nur für das Upload des Sketches verantwortlich und deshalb ist dort das einzige zeitkritische die Übertragungsgeschwindigkeit der Schnittstelle während des Uploads des Sketchs.
Die Parameter mit denen die IDE den Compiler aufruft, sind zuständig für die Anpassung des compilierten Kodes an die Taktfrequenz und somit für alle Funktionen die irgendwie von der Taktfrequenz abhängig sind wie zB. delay(), serial.print(), PWM, millis(), timer. ecc.
Der ist nahezu gleich groß und sollte dein Projekt mal vorbei sein steckst du den Freeduino raus und du kannst weiter machen mit nem anderen Projekt.Ich baue mir dann immer ein "Motherboard" wo ich den Kollegen einstecke und kann dann "im System" Programmieren da für den gleichen Preis die USB geschicht mit dabei ist.
Ist genau gleich Handzuhaben wie der Duemilanove also gleicher Bootloader. Vorteil bei den Nanos grundsätlich du hast 2 Analog In´s (bzw Digitale I/Os) mehr als auf dem Großen Board