Unterschied beim Speicher bei Uno oder Nano ???

Hallo, wer kann mir mal weiter helfen, ich habe hier einen Sketch den ich mit der Version 1.61 kompiliere.Wenn ich als Prozessor in der IDE den Nano verwende, kommt die Fehlermeldung, das der Code zu groß ist und nicht in den Speicher passt. Verwende ich aber versuchsweise einen Arduino UNO, so gibt es kein Problem, und das Programm läuft fehlerfrei.....
Upps?? :confused: habe ich da etwas falsch verstanden ? ich dachte bei beiden ist der Flash Memory 32 k groß
oder liegt das am Bootloader. Was ist zu tun, ich habe gerade eine Platine in der Entwicklung auf der ein Arduino Nano montiert werden soll. Vielleicht kann mir ja da mal einer weiter helfen mit einer kurzen aussagefähigen Antwort
Christian

Sie können auch problemlos der (kleinere) Optibootloader in einem Nano benutzen.
z.B. Installing the Optiboot Loader on an Arudino Nano to Fix the Watch Dog Timer (WDT) Issue | Big Dan the Blogging Man
Die Uno und Nano Chips sind übrigens gleich (ATMEGA328P).

Beim Uno liegt der Code für den USB Port in einem weiteren Controller. Der Nano hat keinen solchen zusätzlichen Controller, deshalb muß auch dieser Code in seinem Speicher liegen.

DrDiettrich:
Beim Uno liegt der Code für den USB Port in einem weiteren Controller. Der Nano hat keinen solchen zusätzlichen Controller, deshalb muß auch dieser Code in seinem Speicher liegen.

Das ist leider falsch ::slight_smile: :wink:

Der orginale NANO hat einen FT232 als USB-serial interface und einen alten Bootloader der 1kByte Flash beansprucht.
Der Arduino/Genuino UNO hat einen 0,5 kByte großen Bootloader.

Du verwechselst den NANO mit dem MICRO

Grüße Uwe

Die Kontroller auf den UNO und NANO sind nicht gleich.
Die SMD Variante des ATmega328 hat eine andere Signatur und 2 analoge Eingänge mehr.

Grüße Uwe

@dd7lp

Es gab den NANO auch mit ATmega168 der halbsoviel Speicher hat als der ATmega328. Hast Du den falschen NANO ausgewählt?

Grüße Uwe

Sorry, ich hatte übersehen daß der USB chip auf der Unterseite des Nano Boards sitzt. Danke für die Korrektur :slight_smile:

Hallo und danke für die Antworten. Ne, es ist so das der Nano hier einen 328p als Prozessor hat. Was ich herausgefunden habe, ist, dass er Bootloader recht lang ist und das es mitunter probleme gibt wenn der Speicher knapp ist beim Nano. Mit dem Bootloader Optiboot sollte es gehen. Der ist wesentlich kleiner. Der Opti-Bootloader ist auch in der IDE der letzten Version 1.6.12 mit drin, ich weiss allerdings nicht, wie ich den ansprechen soll. Ich benutze einen Arduino Uno als Programmieradapter für den Nano, also am ISP Anschluss, das ist auch kein Problem, den herkömmlichen Bootloader bekomme ich auch programmiert, leider aber nicht den von Opti-boot, da fehlen mir einige Kenntnisse, ich bin nicht der große Programmierer, Vieleicht hilft mir da ja noch einmal einer weiter und erzählt, wie ich den Opti-Bootloader für den 328p Prozessor über die Entwicklungsumgebung in den Nano reinschießen kann, dann hätte ich Platz genug für die Software, die ich verwenden möchte, ansonsten bliebe mir nur einen Atmega 328p direkt in meiner Schaltung zu verwenden und den direkt per ISP zu programmieren, leider hätte ich dann Hardwäremaßig nicht sofort einen USP -Port und müßte den extra aufbauen, wa sich beim kleinen Preis vom Nano als alternativeinbau nicht rechnet.
)Ich warte mal auf eure Antworten
Gruß christian

Kann man nicht einfach auf den Nano den Bootloader vom Uno aufspielen?

Wenn dir der Speicherplatz nicht reicht, warum nimmst du nicht gleich ISP und flasht mit einem USBASP, den gibt es doch sehr preiswert.
Da hast du den Platz des Bootloader auch für deinen Sketch.

hi,

wenn Du den uno als programmieradapter nimmst, verwendest Du doch gar keinen bootloader. oder verstehe ich da was falsch?

gruß stefan

Ich verstehe die ganze Aufregung nicht. Wenn 1/2KB Flash ein Problem darstellt, bei 32KB verfügbarem Flash, dann ist entweder der Controller überfordert, oder der Code selbst bedarf dringend einer Überarbeitung. Aus langjähriger Erfahrung tippe ich auf letzteres :-]

Wer sich die Mühe einer ordentlichen Programmierung sparen möchte, oder riesige Tabellen braucht, der kann ja auf einen Mega umsteigen, mit bis zu 256KB Flash. Davon gibt's auch Boards die kaum größer sind als die Mini/Micro/Nano, falls die Größe eine Rolle spielt. Tabellen lassen sich auch in externe EEPROMs oder auf SD Card auslagern, falls die Zugriffszeiten nicht kritisch sind, also z.B. bei Mustern für LED Cubes oder Menüs für TFT Displays.

Also, die Frage mit dem Uno als programmiergerät, ich habe den nur verwendet, um einen neuen Bootloader raufzuspielen.Un ich wollte als Bootloader den optiboot verwenden, weiss aber nich wie das geht. Das ist alles, den Programmcode werde ich nicht komplett umstricken, dann könnte ich gleich ein neues Gerät a7ufbauen ohne auf uno oder nano zurückzugreifen. also lediglich möchte ich wissen wie man den optiboot in den nano reinbekommt, in der ide ist der ja schon drin, aber verwendet wird der standart und das ist nicht optiboot

hi,

dann verstehe ich nicht, warum Du den uno nicht auch gleich verwendest, um den code raufzuspielen. damit löscht Du den bootloader und hast den ganzen platz zur verfügung. USB verwendest Du dann halt nur zur kommunikation.

gruß stefan

EDIT: zu Deiner frage: Du mußt als board etwas wie "arduino nano mit optiboot" oder so ähnlich haben. ist das nicht der fall, hast Du die erweiterung nicht richtig drauf.

aber wie gesagt, verzichte auf den bootloader, bietet bis auf's sketch per USB aufspielen keinen mehrwert.

dd7lp:
Un ich wollte als Bootloader den optiboot verwenden, weiss aber nich wie das geht.

Du solltest einen Eintrag wie diesen auswählen:

Optiboot.png

Bildquelle