habe eine Software auf einem UNO projektiert, und dann final auf einen NANO geladen (wegen der kleineren Baugröße)
Beim UNO sagt die IDE:
Binäre Sketchgröße: 25.392 Bytes (von einem Maximum von 32.256 Bytes)
Beim NANO:
Binäre Sketchgröße: 25.392 Bytes (von einem Maximum von 30.720 Bytes)
Da bei beiden ein ATMega328 drauf ist versteh ich das nicht.
Eigentlich sinds ja bei beiden 32K. Also 32768 Byte.
Dann noch den Bootloader weg...
Ist der beim NANO anders?
Edit: OK...die Werte hat er aus der "boards.txt" Aber wieso sind die unterschiedlich? Hat der NANO einen anderen Bootloader?
Chip ist gleich. Der einzige Unterschied der mir einfällt ist, dass der UNO einen kleinen ATMega als USB-seriell Wandler hat, und der Nano einen FTDI (oder auch schon mal eine CH340) Chip benutzt.
hk007:
die Werte hat er aus der "boards.txt" Aber wieso sind die unterschiedlich? Hat der NANO einen anderen Bootloader?
Ja.
Und nicht nur die unterschiedliche Größe, sondern auch der jeweilige Bootloader steht in der "boards.txt".
Und unterschiedlich groß ist nicht der RAM-Speicher, sondern der für Sketche frei verfügbare Flash-Speicher.
Du kannst Dir sogar einen eigenen neuen Board-Eintrag in der "boards.txt" machen, für den Arduino Nano mit Optiboot und kannst dann über "Bootloader installieren" auch den Optiboot-Bootloader auf dem Nano verwenden.
jurs:
Und nicht nur die unterschiedliche Größe, sondern auch der jeweilige Bootloader steht in der "boards.txt".
Du kannst Dir sogar einen eigenen neuen Board-Eintrag in der "boards.txt" machen, für den Arduino Nano mit Optiboot und kannst dann über "Bootloader installieren" auch den Optiboot-Bootloader auf dem Nano verwenden.
Und auch unterschiedliche Fuses stehen da drin Obwohl der gleiche Chip.
Und den UNO kann ich mit 115200 und den NANO nur mit 57600 flashen. komisch....
Kann ich wirklich den Opti-Bootloader auf dem Nano verwenden? Wären ca. 1,5k mehr Platz für Code
Wie könnte man eigentlich rausfinden, welcher Bootloader auf dem Chip drauf ist? Also jetzt nicht mit ISP-Programmierer drauf, den Bootloaderbereich runterladen, und dann mit dem HEX-Editor vergleichen.
Habe mir mal die detaillierte Ausgabe beim Upload angeschaut. In der Hoffnung, dass sich der Bootloader da outet. Aber da find ich nichts.
Edit:
Vergesst das mit den Fuses. Der Unterschied ist nur in der High-Fuse bei der Startadresse. Und die ist natürlich bei 2k Bootloader bei 3C00h und beim Optiboot mit 512 bei 3F00h
Chip ist gleich. Der einzige Unterschied der mir einfällt ist, dass der UNO einen kleinen ATMega als USB-seriell Wandler hat, und der Nano einen FTDI (oder auch schon mal eine CH340) Chip benutzt.
Wenn die Platine einen CH340 hat, dann ist es kein orginaler Arduino sondern ein Nachbau oder eine Fälschung..
Der Arduino Nano mit ATmega328 (war anfangs auch mit ATmega168 bestückt) ist die kleine Version des Arduino 2009. Dieser hatte als USB-Serial Adapter einen FT232RL und einen Bootlader der 2kByte groß war und mit 57600 uploadete.
Mit dem Aruino UNO kam ein programmierter ATmega8U2 bzw später mit R3 ein Atmega16U2 als USB-Serial Adapter auf's Board. Gleichzeitig ein Bootloader mit 0,5Kbyte und 115200 Übertragunggeschwindigkeit. Das Resetieren beim Upload wurde nicht mehr durch die DTR-Leitung aktiviert sondern durch eine 1200 Baudrate.
Der Arduino NANO der von Gravitech produziert wird, hat immernoch die Hardware-Konfiguration und Bootloader wie das Vorgängermodell des Arduino UNO.
Wenn Du Not an Flashspeicher hast, dann lösche den Bootloader und schreibe den Sketch mit einem ISP-Programmierer drauf. So hast Du den vollen Flashspeicher zur Verfügung.
uwefed:
Wenn die Platine einen CH340 hat, dann ist es kein orginaler Arduino sondern ein Nachbau oder eine Fälschung..
Ja stimmt. Hab mir mal so einen China-Clone zum Vergleich geschossen.
uwefed:
Wenn Du Not an Flashspeicher hast, dann lösche den Bootloader und schreibe den Sketch mit einem ISP-Programmierer drauf. So hast Du den vollen Flashspeicher zur Verfügung.
OK, auch ne Möglichkeit.
USB ist aber irgendwie bequemer. V.a. während der Entwicklung.
Momentan reicht der Flash noch einigermassen. Geht mir aktuell um technische Hintergründe.
Aber noch mal meine Frage:
Kann ich den Opti-Bootloader auch auf den Nano verwenden? Dazu natürlich dann die boards.txt umändern.
Also den hier: optiboot_atmega328.hex
Wobei ich gerade gesehen habe, dass es noch einen anderen gibt: optiboot_atmega328-Mini.hex. Wohl eine abgespeckte Variante?
hk007:
OK, auch ne Möglichkeit.
USB ist aber irgendwie bequemer. V.a. während der Entwicklung.
Momentan reicht der Flash noch einigermassen. Geht mir aktuell um technische Hintergründe.
Der USBasp wird ebenfalls per USB angeschlossen und seinerseits dann per ISP und er wird von der IDE ebenfalls unterstützt. Wo ist das Problem?
Ich sehe darin nur Vorteile.
Ich kann mir den Bootloader nicht zersägen, weil ich ihn garnicht brauche.
Ich habe die serielle Schnittstelle, bzw. 2 Pins mehr zur Verfügung.
Und wenn's eng wird, spare ich noch Platz.
Da ich den Uno nur "zum Spielen" und für Testaufbauten nutze und für ernsthafte Projekte sowieso den ATMEGA standalone mit ein paar Bauelementen auf Lochraster verwende und dort eh einen ISP Header habe, macht das für mich keinen Unterschied.
Den Bootloader mit meinem USBasp draufgenagelt.
Nach Auslesen des Flash beginnt der Bootloader nun bei 7E00h.
Konnte meinen Sketch ganz normal laden. Mit 32256 Bytes, und double-speed
Sieht gut aus.