Forum: Mikrocontroller und Digitale Elektronik Arduino nano3 in Betrieb nehmen


von Matthias W. (matt007)


Lesenswert?

ich habe bisher mit ATmegas8535 gearbeitet (Assembler, Laden über 
PonyProg) und dann mit dem Butterfly-Datenlogger (GCC, Laden über 
bootloader). Registerprogrammierung ist mir also vertraut und der GCC 
zum Teil auch.

Nun möchte ich den GCC mit dem Arduino nano3 verwenden.

Natürlich kann ich das neueste WinAVR installieren und schrittweise den 
Code aufbauen indem ich Teil für Teil in Betrieb nehme und mich dabei an 
Beispielprogrammen orientiere.

Frage:
Macht es Sinn sich mit der Arduino-Umgebung nebst IDE näher zu befassen? 
Zwingend ist das ja nicht erforderlich. Ein ISP-Stecker ist ja auch 
drauf auf der Platine.

Über den Bootloader müsste ich doch den Code laden können so wie ich das 
mit dem Butterfly gemacht hatte. Dabei hatte ich den Code geladen über 
das AVR-Studio. Ist es sinnvoll so vorzugehen?

: Bearbeitet durch User
von PittyJ (Gast)


Lesenswert?

In der IDE drückt man eine Knopf zum Compilieren, einen zweiten dann zum 
Hochladen. Das ist natürlich viel zu einfach für Leute, die richtige 
Tools kennen.
Von daher würde ich die IDE weglassen, sonst hätte man nichts zu 
prokeln.
Hinter der IDE steckt auch ein Gnu C++. Der verwirrt ja auch weil man ja 
nur C machen möchte.

von Mike (Gast)


Lesenswert?

PittyJ schrieb:
> ... einen zweiten dann zum Hochladen.
Nur dass dieser zweite auch jedesmal den Compiler anstößt - ob nötig 
oder nicht.

Man kann auch Atmel Studio benutzen und sich dazu die Arduino Ide for 
Visual Studio von Visual Micro installieren.

von Matthias W. (matt007)


Lesenswert?

PittyJ schrieb:
> In der IDE drückt man eine Knopf zum Compilieren, einen zweiten dann zum
> Hochladen.

also dann ist die IDE von Arduino empfehlenswert?

> Hinter der IDE steckt auch ein Gnu C++. Der verwirrt ja auch weil man ja
> nur C machen möchte.

Verwirrung brauche ich keine. Ich kam gut mit einem Editor, GCC und Make 
zurecht. Versuche es komfortabler zu machen hatten bei dem 
Datenloggerprojekt damals zur Folge daß der Code nicht mehr rein passte. 
Es war nicht einfach herauszufinden woran das lag. Irgendwann gab ich es 
auf.

von Matthias W. (matt007)


Lesenswert?

Mike schrieb:
> Man kann auch Atmel Studio benutzen

davon hatte ich nur den kleinen Teil benutzt der den Code dann seriell 
in den Butterfly geladen hat. Mehr brauche ich ja nicht. Alternativ geht 
es auch über den ISP-Stecker. Das ist halt etwas unbequemer wenn man oft 
Änderungen hat.

> und sich dazu die Arduino Ide for Visual Studio von Visual Micro installieren.

Macht das Sinn die Arduino IDE zu installieren? Ist da wirklich Nutzen? 
Der Editor zeigt mir ja Zeilennummern an. GCC zeigt in welcher Zeile es 
klemmt. Zeigt die Arduino IDE das komfortabler an?

Macht es Sinn die Bibliotheken von Arduino zu nutzen? Sind die 
transparent, d.h. sieht man welcher C-Code dahintersteckt?

von Wolfgang H. (frickelkram)


Lesenswert?

Hi Matthias,
vor kurzem habe ich auch mit so einem Teil herum gebastelt.
Du brauchst die Arduino-IDE nicht, aber wenn du keine komplizierten 
Projekte hast, kannst Du sie auch benutzen. Wenn Du "richtig" in C 
programmieren möchtest kannst Du den ISP Anschluß nutzen. Du musst aber 
die Flags anpassen damit der Chip nicht in den Bootloader geht sondern 
Deinen Code direkt aufruft.

Den Bootloader müsstest Du statt des ISP auch ohne die IDE nutzen 
können. Beim Nano ist es etwas kompliziert weil die USB-Schnittstelle 
als Serielle-Schnittstelle für den Bootloader genutzt wird aber auch als 
USB-Schnittstelle im eigenen Programm verwendet werden kann.
Wenn Du den Reset-Knopf drückst steckt der Nano im Bootloader (falls der 
Chip noch original ist) und die LED auf dem Board blinkt. Irgendwann 
geht die LED aus (oder bleibt dauerhaft an) dann befindet sich das Board 
in dem Programm das installiert wurde.

Wenn der Bootloader (zum flashen) verwendet werden soll, muss sich das 
Board auch im Bootloader-Modus befinden, sonst erkennt der PC das 
angeschlossene Board nicht als USB-Serielle Schnittstelle. Darum wird 
empfohlen den Reset Taster zu drücken und fest zu halten, dann den 
"Flash-Vorgang" in der IDE zu starten und den Reset-Taster los zu 
lassen, damit der Bootloader Modus zuverlässig erkannt wird ... ist so 
umständlich wie es klingt.

Ich habe noch nicht ausprobiert was passiert wenn man avrude auf die 
serielle Schnittstelle des Bootloaders los lässt. Eigentlich müsste das 
möglich sein hxxp://ed.am/dev/make/arduino-mk/arduino.mk
(Die Forumsoftware behauptet der Link wäre spam ... ist er aber nicht)

von Thomas L. (thomas_hx)


Lesenswert?

Lad Dir doch einfach mal die IDE runter und schau sie Dir an. Da wird 
nix installiert , sondern das ganze wird einfach in ein Verzeichnis 
entpackt. Die beiliegende .inf Datei für den Virtuellen Com-Port wirst 
du wohl brauchen um den Arduino über USB zu programmieren.
Und ja, AVRDUDE kann auch direkt über den Bootloader das Programm auf 
den AVR schaufeln, und ja, das geht aus allen Umgebungen die AVRDUDE zum 
Upload nutzen.
Das mit dem Reset und den beiden USB-modi gilt für den Leonardo, da der 
keinen externen USB-Seriell Converter benutzt, sondern die USB im 
Microcontroler selbst verbaut hat.

von Matthias W. (matt007)


Lesenswert?

Wolfgang Heinemann schrieb:
> vor kurzem habe ich auch mit so einem Teil herum gebastelt.

prima Wolfgang. Vielen Dank für Deine Hinweise !

> Du brauchst die Arduino-IDE nicht, aber wenn du keine komplizierten
> Projekte hast, kannst Du sie auch benutzen.

da ich diese IDE nicht so gut kenne fällt es mir schwer einzuschätzen ob 
sie eher Ballast für mich ist oder eine gute Hilfe.

> kannst Du den ISP Anschluß nutzen. Du musst aber
> die Flags anpassen damit der Chip nicht in den Bootloader geht sondern
> Deinen Code direkt aufruft.

Du meinst im C-Compiler die Flags anpassen? Vermutlich wird das so 
ähnlich sein wie beim Butterfly. Den Code und die Makefiles habe ich 
noch.

> USB-Schnittstelle als ser Schnittstelle für Bootloader.. auch als
> USB-Schnittstelle im eigenen Programm..

In der Tat habe ich vor über die USB-Buchse und die serielle 
Schnittstelle dahinter - so wie beim Butterfly über Kommandos den 
Speicher auszulesen.

> Wenn Du den Reset-Knopf drückst steckt der Nano im Bootloader (falls der
> Chip noch original ist) und die LED auf dem Board blinkt. Irgendwann
> geht die LED aus (oder bleibt dauerhaft an) dann befindet sich das Board
> in dem Programm das installiert wurde.

Danke für den Hinweis.

> Darum wird
> empfohlen den Reset Taster zu drücken und fest zu halten, dann den
> "Flash-Vorgang" in der IDE zu starten und den Reset-Taster los zu
> lassen, damit der Bootloader Modus zuverlässig erkannt wird ... ist so
> umständlich wie es klingt.

so ist es auch beim Butterfly. Damit kam ich klar.

> Ich habe noch nicht ausprobiert was passiert wenn man avrude auf die
> serielle Schnittstelle des Bootloaders los lässt.

prima wenn es auch komfortablere Möglichkeiten gibt. Momentan reicht mir 
die Lösung mit der Taste.

Schade fand ich daß ich das sehr große Studio damals laden musste um zu 
flashen. Vielleicht gibts da ja auch ein schlankeres Programm für diesen 
Zweck? Zum Debuggen hatte ich gerne Text über die serielle Schnittstelle 
geschickt. Wie schnell geht das denn maximal beim nano3?

von Matthias W. (matt007)


Lesenswert?

Thomas Lembke schrieb:
> Lad Dir doch einfach mal die IDE runter und schau sie Dir an.

ok. Danke Thomas. Du meinst http://arduino.cc/de/Guide/Environment
http://arduino.cc/en/Main/Software

> Da wird nix installiert , sondern das ganze wird einfach in ein Verzeichnis 
entpackt.

also nicht Windows Installer? Stattdessen Windows (ZIP file)?

> Die beiliegende .inf Datei für den Virtuellen Com-Port wirst
> du wohl brauchen um den Arduino über USB zu programmieren.

der Treiber für den FTDI chip?

> Und ja, AVRDUDE kann auch direkt über den Bootloader das Programm auf
> den AVR schaufeln, und ja, das geht aus allen Umgebungen die AVRDUDE zum
> Upload nutzen.

bisher hatte ich AVRDUDE nicht genutzt.

> Das mit dem Reset und den beiden USB-modi gilt für den Leonardo, da der
> keinen externen USB-Seriell Converter benutzt, sondern die USB im
> Microcontroler selbst verbaut hat.

ich habe noch ein kleines board mit einem ATmega32u4 den ich 
nachgerüstet hatte. Keine Ahnung welcher Bootloader auf diesem chip 
drauf ist. Dieses board stelle ich erst mal zurück.

von PittyJ (Gast)


Lesenswert?

>> Da wird nix installiert , sondern das ganze wird einfach in ein >>Verzeichnis 
entpackt.

>also nicht Windows Installer? Stattdessen Windows (ZIP file)?

gehe zu www.arduino.cc, weiter zu Download und klicke an.
Da gibt es wahlweise ein exe oder ein zip.
Das heraus zu finden ging schneller, als deine Frage zu formulieren.

Probiere es doch einfach aus. Da hättest du einen entspannten Abend 
gehabt. Statt dessen nur Fragen, die du hättest selber durch 
herunterladen ausprobieren können.

von Wolfgang H. (frickelkram)


Angehängte Dateien:

Lesenswert?

Also, ich habe noch mal nach geschaut. Ich habe keinen Nano sondern 
einen Micro und der verwendet einen ATmega32u4. In der Arduino-IDE wird 
das Board wie ein Leonardo behandelt. Es kann sein das sich Dein Board 
anders verhält.

Ich habe mit dem Board einen Kabeltester gebaut und hatte zu wenig Pins, 
weil ich gleichzeitig eine LCD-Anzeige benutzt habe. Da ich zum ersten 
mal mit der IDE gearbeitet habe und mit den Pins nicht auskam habe ich 
mit dem Gedanken gespielt das Board ohne IDE direkt in C zu 
programmieren. Am Ende habe ich es dann aber doch hin bekommen die 
Ausgabepins vom LCD gleichzeitig für den Kabeltester zu verwenden, darum 
habe ich meine Tests mit der direkten Programmierung in C wieder 
abgebrochen.

Allerdings habe ich schon einige Zeit darauf verwendet die 
Pin-Bezeichnungen heraus zu finden. Für den von mir verwendeten Micro 
habe ich keine vernünftige Beschreibung gefunden auf der alle Pins drauf 
waren. Ich habe die Pins letztendlich ausprobiert ...

von Albert M. (Firma: Bastler aus Mönchengladbach) (albertm) Benutzerseite


Lesenswert?

Wolfgang Heinemann schrieb:
> Ich habe mit dem Board einen Kabeltester gebaut und hatte zu wenig Pins,
> weil ich gleichzeitig eine LCD-Anzeige benutzt habe. Da ich zum ersten
> mal mit der IDE gearbeitet habe und mit den Pins nicht auskam habe ich
> mit dem Gedanken gespielt das Board ohne IDE direkt in C zu
> programmieren.

Wenn Du so ein zweizeiliges 1602 Display hast, kannst Du für 1 Euro mit 
dem "IIC/I2C/TWI/SPI Serial Interface Board" viele Pins sparen:

http://www.ebay.de/itm/Good-IIC-I2C-TWI-SPI-Serial-Interface-Board-Module-Port-For-Arduino-1602LCD-ESY1-/121217779761?pt=LH_DefaultDomain_0&hash=item1c39248831

: Bearbeitet durch User
von Wolfgang H. (frickelkram)


Lesenswert?

Hi Albert,


> Wenn Du so ein zweizeiliges 1602 Display hast, kannst Du für 1 Euro mit
> dem "IIC/I2C/TWI/SPI Serial Interface Board" viele Pins sparen:
>
> 
http://www.ebay.de/itm/Good-IIC-I2C-TWI-SPI-Serial-Interface-Board-Module-Port-For-Arduino-1602LCD-ESY1-/121217779761?pt=LH_DefaultDomain_0&hash=item1c39248831

Danke für den Hinweis, aber es ging mal wieder darum schnell mit 
vorhandenen Mitteln den Kabeltester zu bauen. Im Prinzip war das auch 
kein Problem.

Für den Tester brauchte ich eh Ausgabe-Pins und die Datenleitungen + RS 
der LCD-Anzeige lassen sich da wunderbar verwenden. Wichtig ist nur die 
Testpins mit Serienwiderständen zu entkoppeln, sonst kann es bei 
Kurzschlüsseln im Testkabel zu seltsamen Zeichen auf dem Display kommen 
... ;-) Lediglich den EN der LCD-Anzeige konnte ich nicht doppelt 
verwenden.

Eine I2C-Schnittstelle hätte darum auch nicht weniger Pins gekostet ...

: Bearbeitet durch User
von Matthias W. (matt007)


Lesenswert?

Wolfgang Heinemann schrieb:
> Also, ich habe noch mal nach geschaut. Ich habe keinen Nano sondern
> einen Micro und der verwendet einen ATmega32u4.

Danke Wolfgang. Meins ist so ein Teensy-Board. Da habe ich die CPU 
hochgerüstet.

von Matthias W. (matt007)


Lesenswert?

Albert M. schrieb:
> Wenn Du so ein zweizeiliges 1602 Display hast, kannst Du für 1 Euro mit
> dem "IIC/I2C/TWI/SPI Serial Interface Board" viele Pins sparen

Danke für den Hinweis Albert. Das Board setzt also I2C auf parallel um. 
Die Adresse kann man einstellen. Gibts da auch eine extra SPI-Version? 
Oder wie geht das dann damit?

von Matthias W. (matt007)


Lesenswert?

der letzte Tag des Jahres. Gerne möchte ich ohne große Softwarepakete 
außer dem bereits installierten WINAVR zu installieren ein kleines 
Projekt machen: Beschreiben serielles SRAM. Der Baustein ist weitgehend 
angeklemmt.

Dazu suche ich erst mal ein Dummyprojekt für den ATmega328P und WINAVR. 
Ich habe so ein Projekt für den Butterfly-Datenlogger. Dabei wird jedoch 
ein anderer AVR programmiert. Ich kann das umschreiben. Wäre mir jedoch 
lieber wenn ich als Basis etwas für den ATmega328P nutzen könnte.

Wo kann ich hier etwas Passendes finden? Vielen Dank für Hinweise.

von F. F. (foldi)


Lesenswert?

Würde mich auch interessieren wie man ein Make file für den Nano 
anpasst, sodass man über usb das hex file schicken 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
Noch kein Account? Hier anmelden.